Linux虚拟USB设备驱动程序

7
我的目标是创建一个虚拟的USB字符设备(非块设备),用于Linux 2.6.32及以上版本(我使用debian squeeze),并被系统识别。我希望这个设备在lsusb列表中列出,每个应用程序都可以使用libusb打开设备,并发送控制消息和进行批量读/写操作。但在这个虚拟设备背后,它的行为将由我的应用程序设置。我想设置它的产品ID、供应商ID、回答USB状态和批量读取。我已经阅读了一些关于如何使用USB/IP创建虚拟USB设备的帖子,这正是我想做的事情。 安装和模拟虚拟USB设备 http://breaking-the-system.blogspot.fr/2014/08/emulating-usb-devices-in-python-with-no.html 但不幸的是,当我尝试使用2.6.32内核及以上版本时,我没有成功使其工作。因此,我研究了如何创建一个内核模块来创建虚拟设备: http://pete.akeo.ie/2011/08/writing-linux-device-driver-for-kernels.html 这个方法看起来也很好,但提供的示例并没有说明如何将其变成USB设备。我看到一些帖子谈论在Windows下如何实现,但没有一个能帮助我在Linux下实现。
我希望在不购买USB可编程卡的情况下完成,只用软件就行。
有人知道如何使第一种方法在新内核下工作,或者将第二种方法的示例代码转换为制作USB设备的代码吗?
2个回答

3

请参见[答案]。链接作为答案是不可持久的。 - Martin Serrano

1
我猜你需要的是 raw-gadget 内核模块?
你可以查看该仓库中的 dummy_hcdtests 目录,它们会指导你如何创建一个虚拟 USB 设备。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接