阻止USB设备索取设备

时间:2018-08-15 01:35:36

标签: linux drivers usb packaging

为了调用我的USB驱动程序的_probe函数,我需要防止usbhid首先声明它。为此,我编写了一个UDEV规则来解除设备绑定。

  

SUBSYSTEM ==“ usb”,DRIVER ==“ usbhid”,ATTRS {idVendor} ==“ ffff”,   ATTRS {idProduct} ==“ ffff”,RUN =“ / bin / sh -c'echo -n $ id:1.0>   / sys / bus / usb / drivers / usbhid / unbind'“

虽然可行,但分发驱动程序的标准做法是什么?我也必须打包此规则吗?我自己的驱动程序有什么办法可以优先于usbhid?

1 个答案:

答案 0 :(得分:0)

内核根据MODULE_DEVICE_TABLE为每个设备选择驱动程序。 HID设备表被认为比通用USB设备表更具体,因此,如果您的设备声明USB HID设备类,则您的驱动程序也可能也应包括HID类MODULE_DEVICE_TABLE。

与一般的基于类的匹配算法相比,匹配算法更倾向于进行特定的匹配,因此,如果您的设备表条目包含一些唯一的USB或HID设备属性,则驱动程序应优先于一般的usbhid驱动程序。

如果您的idVendor和idProduct标识符实际上都是0xffff,那么我猜您正在处理的原型设备尚不具有正确的USB供应商/设备标识符。您将要解决该问题。