确定 HID 设备绑定了哪个模块?

确定 HID 设备绑定了哪个模块?

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

相关内容