我必须模拟USB设备以实现自动化和测试(在Linux中)。此设备的原始驱动程序/应用程序使用“libusb”与之通信。
我在Linux和Simulation方面没有太多经验,经过一些搜索我已经明白我需要在用户空间编写内核级驱动程序和应用程序来模拟该设备。这是正确的吗?如果是,如何做到这一点?
先谢谢。
答案 0 :(得分:2)
最后通过修改“libusb”来实现它,修改它以发送和接收来自消息队列而不是usbfs的usb传输。编程我的模拟器以创建libsub类型传输并使用消息队列发送/接收它们。
Simulator现在解释传入的传输并将其发送到命令解析器,命令解析器使用特定格式的套接字向自动化系统发送请求/消息。自动化系统通过使用套接字发送到命令解析器来发送它的指令。此套接字调用特定于模拟器中每个请求的方法,现在模拟器形成一个适当的传输结构,并通过消息队列传递给设备插件(通过libusb)。
答案 1 :(得分:0)
我认为你所寻找的东西将被称为虚拟USB设备。目前标准内核中没有任何内容。一些虚拟机提供USB仿真。 KVM提供USB仿真。框架gadget可能会寻找您的解决方案。 或者在Linux USB project
中找到一些内容谢谢, Abhijeet
答案 2 :(得分:0)
如果您希望以与真实硬件相同的方式将设备呈现给内核,那么usb-vhci项目可能会有用。