linux usb驱动程序:探测已经插入的设备

时间:2010-06-13 14:49:42

标签: usb linux-kernel linux-device-driver probe

我正在写一个Usb驱动程序,我有一个问题。 当我手动插入已插入设备的驱动程序时,不会调用探测功能。只有在断开设备并重新插入设备后才会调用它。 我希望这样做,以便当我使用已经插入的设备启动电脑时它可以工作。

有人可以帮助我吗?

3 个答案:

答案 0 :(得分:0)

来自Documentation / driver-model / binding.txt:

  

添加新设备时,将迭代总线的驱动程序列表   找到一个支持它的人。为了确定,该设备   设备的ID必须与驱动程序的设备ID之一匹配   支持。比较ID的格式和语义是特定于总线的。

来自同一来源:

  

添加新驱动程序时,该过程几乎完全相同。   迭代总线的设备列表以找到匹配。设备   已经有一个驱动程序被跳过。所有设备都是迭代的   结束,将尽可能多的设备绑定到驱动程序。

所以看起来你在ID匹配方面有问题,在你的情况下特定于USB总线,请参阅drivers / usb / core / driver.c中的usb_device_match函数。

或者可能是您的设备已经绑定到设备被拔出时卸载的设备(您可以通过控制相应的/ sys / bus / usb / xxxxx中的驱动程序是否存在符号链接来检查目录)

答案 1 :(得分:0)

“或者可能是您的设备已经绑定到设备被拔出时卸载的设备(您可以通过控制相应的/ sys / bus / usb /中的驱动程序是否有符号链接来检查) xxxxx目录)“

如果有符号链接?

答案 2 :(得分:0)

这可以通过为您的设备编写适当的udev规则来解决。在/etc/udev/rules.d /

中查找示例