Kernel-Modules

確定哪個模組被 HID 設備綁定?

  • November 3, 2015

我有一個奇怪的問題。我已經根據另一個人的工作進行了一些黑客攻擊,以便將 MacBook Pro 11,5 上的內部鍵盤支持反向移植到核心 3.19 中。我的 GitHub 原始碼可以在這裡找到

我已盡我所能確保它盡可能接近核心 4.2,同時仍然能夠在 3.19 上按預期編譯和工作。

然而,雖然啟動到 4.2 為我提供了按預期工作的完美功能,但我的模組似乎沒有做任何事情。現有的 Apple 設備按預期工作,但我的內置鍵盤仍然存在同樣的問題。

這些問題是基於功能鍵不起作用的事實,因此我不能使用我的媒體鍵。我還進行了健全性測試,以確保其他 Apple 鍵盤可以正常工作(使用 Apple 有線和無線鍵盤進行了測試,並且都可以正常工作)。

有沒有辦法驗證我的鍵盤是否綁定到正確的驅動程序?

設備的 USB id 是,可以在hid-ids.h:147hid-apple.c:05ac:0274 553-554中找到該設備的配置行。我確信它只是沒有拿起設備,因為即使移除了 hid-apple 模組,我的內置鍵盤也可以工作,而其他鍵盤則不能。

如何調試正在發生的事情以及為什麼我的內置鍵盤沒有綁定到hid-apple模組?


編輯:我能夠使用以下方法將我的鍵盤綁定到正確的驅動程序:

# unbind everything matching 05AC:0274 from hid-generic
for dev in `ls /sys/bus/hid/drivers/hid-generic/ | egrep 05AC\:0274`; do
   echo -n $dev | sudo tee /sys/bus/hid/drivers/hid-generic/unbind
done
# bind everything matching 05AC:0274 to hid-apple
for dev in `ls /sys/bus/hid/devices/ | egrep 05AC:0274` ; do
   echo -n $dev | sudo tee /sys/bus/hid/drivers/hid-apple/bind
done

問題仍然存在:如何強制給定 USB id 與給定驅動程序關聯?我會接受下面給出的答案,但我仍在尋找解決方案……

這裡有一個很好的答案。簡短的回答是命令usb-devices(適用於大多數發行版中的一個名為usbutils或類似的包)應該為您提供每個 USB 設備正在使用的目前驅動程序所需的資訊。

引用自:https://unix.stackexchange.com/questions/240573