将Linux内核驱动程序移植到libusb

时间:2014-03-12 02:19:31

标签: linux-kernel driver kernel-module libusb libusb-1.0

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

我知道它可能需要重写驱动程序,但你认为可以写一个"虚拟内核"依赖于libusb来访问设备并将现有的驱动程序链接到那个?基本上在libusb和内核模块之间编写一个层,用于将内核USB命令转换为libusb命令。

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

1 个答案:

答案 0 :(得分:0)

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

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