我正在为linux编写USB设备驱动器。这是一个操纵杆。 每次插入时,linux都会加载一个hid驱动程序。有什么方法可以告诉Linux在我插入时加载我的?或者至少不加载默认值?
我可以在默认驱动程序的unbind中回显id,并在我的驱动程序绑定中回显它;但我想要一些更自动的东西.. 感谢
答案 0 :(得分:11)
如果要阻止绑定到usbhid
驱动程序,可以使用其HID_QUIRK_IGNORE
(= 4)设置。要坚持使用Karl Bielefeldt的例子,添加
options usbhid quirks=0x15c2:0x0043:0x04
到某个/etc/modprobe.d/*.conf
文件(也许重新创建你的initramfs)。这将告诉hid-core
忽略该设备。所以usbhid
会看一下它,但是留给其他司机代替。
但是,如果您的其他驱动程序是HID驱动程序而不是USB驱动程序,那么您需要 usbhid
绑定到USB级别的驱动程序,并且您需要自己的HID驱动程序优先于hid-generic
。这是我面临的问题,我还没有找到解决方案,缺少解绑和重新绑定设备。
答案 1 :(得分:4)
Here's一个针对类似问题修复的线程。总而言之,您可以在/etc/udev/rules.d
个文件中添加以下内容:
SYSFS{idVendor}=="15c2", SYSFS{idProduct}=="0043", MODE="0666", PROGRAM="/bin/sh -c 'echo -n $id:1.0 >/sys/bus/usb/drivers/usbhid/unbind;\
echo -n $id:1.1 >/sys/bus/usb/drivers/usbhid/unbind'"
答案 2 :(得分:1)
http://lwn.net/Articles/143397/与上述答案非常相似,可能还有一些细节。