强制驱动程序与设备匹配

时间:2009-01-14 12:50:31

标签: linux usb kernel

我有一块USB硬件,我知道它的驱动程序。 但是,供应商ID和产品ID与驱动程序中注册的VID,PID对不匹配。在linux中是否有办法强制驱动程序与已知设备关联,而不涉及内核模块重新编译以添加PID / VID对?

3 个答案:

答案 0 :(得分:21)

在sysfs树中查找模块。在这种情况下,它在

  

/sys/bus/usb-serial/drivers/cp2101

在此目录中,有一个new_id文件条目可用于动态添加VID PID对,如下所示:

  

echo VID PID >new_id

以下是关于此功能的LWN entry

答案 1 :(得分:1)

您不需要实际重新编译整个内核,仅使用更新的匹配表重新编译相关内核模块就足够了,以防this回答,对您的内核无效。

答案 2 :(得分:0)

如果要永久保留此更改并将特定的驱动程序分配给设备(VID,PID),您可能会发现this答案很有用。

例如,创建包含内容的新文件/etc/udev/rules.d/98-joystick.rules

  

ACTION ==“ add”,ATTRS {idVendor} ==“ 1345”,ATTRS {idProduct} ==“ 6005”,RUN + =“ / sbin / modprobe xpad” RUN + =“ / bin / sh -c'echo 1345 6005> / sys / bus / usb / drivers / xpad / new_id'“

用您的VID替换1345,用PID替换6005

用适当的驱动程序替换xpad

运行以下命令:

  

$ sudo udevadm控件--reload

拔下设备插头,然后检查是否已加载新的驱动程序。

此处显示的示例用于解决Speedlink Strike FX Gamepad (SL-6537-BK)的驱动程序问题