模拟USB设备的自动化

为了自动化和testing目的,我必须模拟一个USB设备(在Linux中)。 此设备的原始驱动程序/应用程序使用“libusb”与它通信。

我在Linux和仿真方面没有太多的经验,经过一番search之后,我明白我需要在用户空间编写一个内核级驱动程序和一个应用程序来模拟这个设备。 这是正确的吗? 如果是,那怎么办?

提前致谢。

最后通过修改“libusb”来实现它,修改它从消息队列而不是usbfs发送和接收usb传输。 编程我的模拟器来创建libsub类型的传输,并使用消息队列发送/接收它们。

模拟器现在解释传入的传输并将其发送到命令解析器,命令解析器使用特定格式的套接字向自动化系统发送请求/消息。 自动化系统通过使用套接字发送给命令解析器来发送它的指令。 这个套接字调用模拟器中每个请求所特有的方法,现在模拟器形成一个合适的传输结构,并通过消息队列传递给设备插件(通过libusb)。

我想你正在寻找什么将被称为虚拟USB设备。 目前在标准内核中没有任何东西。有些虚拟机提供USB仿真。例如KVM提供USB仿真。 有框架小工具可能会寻找您的解决方案。 或者在Linux USB项目中找到一些东西

谢谢,Abhijeet

如果您希望设备以与真实硬件相同的方式呈现给内核,则可以使用usb-vhci项目。