我有一个奇怪的问题。我根据另一个人的工作进行了一些黑客攻击,将对 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 设备正在使用的当前驱动程序的所需信息。