为什么使用libusb需要分离内核驱动程序?

时间:2016-05-31 12:42:11

标签: linux libusb

为什么使用libusb需要分离内核驱动程序?为什么不能与内核驱动程序一起执行某些USB IO?

2 个答案:

答案 0 :(得分:1)

主要是为了避免混淆USB设备的状态。每个界面在任何给定时间只能有一个“用户”。

许多USB设备可以进入不同的执行域,缓存状态,DMA传输等。这些类型的设备将在驱动程序中具有状态机跟踪器,并且很容易失去同步或其他类型的冲突。并非所有设备都是简单的HID接口(可以通过其他API的btw进行操作)

答案 1 :(得分:0)

为了进行通信,每个USB设备都有端点。这些端点就像管道一样,在这些管道中,所有数据都是通过管道传输的。

一个端点只有一个方向,只能由1个驱动程序使用。

因此,您需要分离内核驱动程序才能使这些端点可用。

如果需要,您可以随时检测并停用使用该设备的驱动程序,以避免使用分离内核驱动程序。