如何使用raspberry Pi或任何其他Linux PC或设备创建虚拟/模拟USB鼠标

NIR*_*T M 1 embedded usb linux-device-driver embedded-linux raspberry-pi

我需要创建一个模拟的USB设备.插入PC或平板电脑时,设备应该像USB鼠标一样.动机是检查系统的鼠标驱动程序.我想让其中一个Raspberry Pi USB端口像鼠标一样.

当我将Raspberry Pi USB端口连接到我的PC时,它应该显示鼠标已连接.

如何制作这种虚拟/模拟设备?

此外,我需要监控并向PC发送点击消息.

RBe*_*eig 5

要模拟USB鼠标,您需要充当USB HID设备.HID易于实现,许多具有简单USB设备端口的微控制器都有足够的资源来实现.甚至在AVR ATTiny上使用bit-banged IO实现了低速USB HID ,根本没有USB硬件.

问题是在典型的基于Linux的主板中,您只有USB主机端口.即使RPi核心的Broadcom SOC支持USB OTG,并且原则上可以用作USB设备,RPi的大多数型号都有此限制.

根据这个答案RPI堆栈交易所,新的RPI模型零板有两个端口都连接为USB OTG,可以用作设备.

USB连接只是第一个障碍.其次,您需要对OTG的Linux内核支持,以及实现USB设备的内核支持.这在Linux中称为"小工具模式",并且由Broadcom SOC的内核支持,并且可以根据Adafruit的教程在 RPi0中使用.请参阅上面链接答案以获取更多链接和讨论.

有了所有这些基础架构,您就需要使用小工具API充当HID并发出将被理解为鼠标移动的HID报告.