![解除 usbhid 设备的绑定并绑定到您自己的驱动程序](https://linux22.com/image/1510254/%E8%A7%A3%E9%99%A4%20usbhid%20%E8%AE%BE%E5%A4%87%E7%9A%84%E7%BB%91%E5%AE%9A%E5%B9%B6%E7%BB%91%E5%AE%9A%E5%88%B0%E6%82%A8%E8%87%AA%E5%B7%B1%E7%9A%84%E9%A9%B1%E5%8A%A8%E7%A8%8B%E5%BA%8F.png)
操作系统:Debian 8
问题:我正在为我的微控制器编写 USB 驱动程序模块,自定义 USB HID,但当我将其插入笔记本电脑时,它会绑定到 USBHID 驱动程序,如果我这样做,rmmod usbhid
它也会断开鼠标连接,这不是很好)我可以通过以下方式解除绑定
sudo sh -c 'echo -n "1-3:1.0" > /sys/bus/usb/drivers/usbhid/unbind'
,但是每次插入设备时都这样做并不有趣。即使在我编写了脚本之后,我也发现一遍又一遍地运行它并不有趣。是否可以自动解除我的设备与 usbhid 驱动程序的绑定?
答案1
找到真正酷的解决方案并不容易,但我已经做到了。该解决方案不处理 udev。我们需要告诉 hid core 它不应该接触我们的设备。可以通过两种方式做到这一点,具体取决于 usbhid 是否编译为模块。看看这个:
https://unix.stackexchange.com/questions/55495/prevent-usbhid-from-claiming-usb-device
PS “GRUB_CMDLINE_LINUX_DEFAULT 包含 Linux 内核的命令行参数。您可以根据需要在其中输入任意数量的参数,只要它们用空格隔开“”。
希望它能够节省某人的时间,因为我花了大量的时间来寻找这个我认为非常好的解决方案。
谨致问候,匿名
答案2
您可以将驱动程序列入黑名单,这样它就不会在启动时加载并绑定到设备。如果其他模块依赖于它,它们将无法加载。
https://askubuntu.com/questions/110341/how-to-blacklist-kernel-modules