如何将USB驱动程序自动绑定或自动分配给USB设备?

时间:2019-01-16 16:00:52

标签: linux-kernel

我正在为操纵杆编写一个非常基本的USB设备驱动程序。 LKM运作良好,只是一堆带有注册和注销功能的印刷品。 当我加载模块并插入USB设备(游戏杆)时,它不会自动与我的driver绑定。它仅由usbhid驱动程序使用。 因此,我必须编写一条规则以将该设备与该驱动程序解除绑定并将其与我的驱动程序绑定。这是我的规则:

SUBSYSTEM=="usb", ATTRS{idVendor}=="0079", ATTRS{idProduct}=="0006", RUN="/bin/sh -c 'if [ -d /sys/bus/usb/drivers/usbhid/$id:1.0 ]; then echo -n $id:1.0 > /sys/bus/usb/drivers/usbhid/unbind; fi && echo -n $id:1.0 > /sys/bus/usb/drivers/joystick_driver/bind'"

这很好用。它只是看设备是否在usbhid子系统中。如果是,请解除绑定,然后将我的驱动程序与此设备绑定。 但是我不确定我在做什么是否正确。 我想知道它们是否是内核模块(驱动程序代码)中一种无需编写任何规则即可将驱动程序分配或绑定至操纵杆设备的方式。因为据我的研究人员发现,绑定或分配设备到自身不是由内核模块(设备驱动程序)决定,它只是告诉系统他可以支持该设备但不能与该设备绑定。我希望我清楚自己在寻找什么。

0 个答案:

没有答案