2

所以我想知道:由于 libusb 提供对 USB 的用户空间访问,是否可以将现有的内核驱动程序移植到 libusb?

我确实理解它可能需要重写驱动程序,但是您认为可以编写一个依赖 libusb 来访问设备并将现有驱动程序链接到该设备的“虚拟内核”吗?本质上是在 libusb 和内核模块之间编写一个层,将内核 USB 命令转换为 libusb 命令。

何苦?例如,如果你想在 Android 上运行内核驱动程序,你需要确保它是为特定的内核版本/设备模型编译的。因此,应用程序将无法在所有设备上运行。另一方面,libusb 与大多数最新的 Android 设备完全兼容。

4

1 回答 1

0

AFAIK,libusb 是一个与内核 USB 层的更高级别通信的库。USB 子系统的最低部分必须写入内核空间,因为它们需要访问 USB 主机控制器的物理地址空间并使用中断和其他无法在用户空间中实现的低级功能.

所以我认为不可能在用户空间中移植 USB 子系统的低级部分。

于 2014-03-12T05:29:05.193 回答