【发布时间】:2012-01-13 13:36:32
【问题描述】:
这个问题有两个方面:
1- 如何手动从 USB 设备中分离驱动程序并连接不同的驱动程序?例如,我有一个设备在连接时会自动使用 usb-storage 驱动程序。
//usbview 输出
Vendor Id: xxxx
Product Id: xxxx
...
Number of Interfaces: 2
Interface Number: 0
Name: usb-storage
Number of Endpoints: 2
...
Interface Number: 1
Name: (none)
Number of Endpoints: 2
...
我不想使用 usb-storage 驱动程序,所以我在主机上运行了一个应用程序,我在其中使用 libusb 库来分离 usb-storage 驱动程序,然后我声明了接口。然后,我可以在我的 USB 设备和主机 Linux 系统上运行的应用程序之间发送数据。
如何在应用程序之外手动分离驱动程序?
2- 如何自动分配驱动程序以附加到设备插件上。我目前有一个 udev 规则设置来自动设置设备权限。
SUBSYSTEM=="usb", ATTR{idVendor}=="xxxx", MODE="0666"
我可以使用 udev 规则将驱动程序分配给 USB 设备上的特定接口吗?例如,如果我希望在接口 0 上自动使用 usbnet 模块而不是 usb-storage,那么在 udev 中可以吗?
谢谢,
(我对 StackExchange 如何与它的不同站点一起工作或者它们是否都相同感到有点困惑。这是一个 Linux 问题,所以它也发布在 Unix 和 Linux 上。如果它不应该的话,请原谅我也不会在这里发布,但 StackOverflow 也处理 Linux,所以...)
【问题讨论】:
-
关于 Unix 和 Linux 的类似问题 unix.stackexchange.com/questions/13964/…
-
@AlessandroPezzato,我读过那篇文章,这很相似,但不是我的问题的解决方案。正如我在问题中所说,我有一个可以运行的应用程序,它使用 libusb API 分离并声明接口。但我需要知道如何从命令提示符或通过应用程序空间之外的 udev 自动分离和附加 LKM。
标签: linux linux-kernel usb kernel-module udev