我有一個奇怪的問題。我根據另一個人的工作進行了一些駭客攻擊,將對 MacBook Pro 11,5 上的內部鍵盤的支援向後移植到核心 3.19 中。我的 GitHub 原始碼可以在這裡找到。
我已盡一切努力確保它盡可能接近內核 4.2,同時仍能夠在 3.19 上按預期進行編譯和工作。
然而,雖然啟動到 4.2 為我提供了按預期工作的完美功能,但我的模組似乎沒有執行任何操作。現有的 Apple 裝置可以按預期工作,但我的內建鍵盤仍然遇到相同的問題。
問題是由於功能鍵不起作用,因此我無法使用媒體鍵。我還進行了健全性測試,以確保其他 Apple 鍵盤能夠正常工作(使用 Apple 有線和無線鍵盤進行測試,並且兩者都能正常工作)。
有沒有辦法讓我驗證我的鍵盤是否已綁定到正確的驅動程式?
該裝置的 USB id 是05ac:0274
,並且可以在以下位置找到該裝置的配置行:hid-ids.h:147並在hid-apple.c: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 與給定的驅動程式關聯?我會接受下面給出的答案,但我仍在尋找解決方案...
答案1
有一個很好的答案這裡。簡短的答案是命令usb-devices
(可用於大多數發行版,在名為或類似的包中usbutils
)應該為您提供有關每個 USB 設備正在使用的當前驅動程式的所需資訊。