Pi Zero作为HID:如何通过USB从Pi Zero控制PC鼠标?


10

我问这个问题是因为经过几天的搜索,我仍然没有找到关于该主题的任何明确信息。因此,对不起,如果问题已经存在。

我在一个项目中工作,只是为了娱乐,我想从Raspberry Pi控制PC鼠标。用户输入将通过连接到RP的任何类型的硬件完成,我的主要疑问是如何控制通过USB通过RP将运动指令从RP发送到PC。

我知道我必须启用OTG模式才能使PC识别为USB设备,但是我不知道如何通过USB将鼠标移动发送到PC并使Windows / Linux理解它。我发现存在“ Linux-USB Gadget API框架”,但是没有使用它的示例,而且我实际上不知道这是否是最佳方法。

您能给我一些提示或资源来帮助我吗?

非常感谢你。

usb  pi-zero 

这里有一个地方开始,我想:kernel.org/doc/Documentation/usb/gadget_hid.txt有一个hid_gadget_test节目提到那里,我没有得心应手PI,但你可以检查apt-file search hid_gadget_test(和apt install apt-file第一如有必要)。
goldilocks

@goldilocks不,您的链接看起来很整齐,绝对是栅栏的右侧。在另一边住普通HID驱动程序一样usbkbd.ko
梅德格里戈里耶夫

@goldilocks不,在Linux中,“小工具”始终表示以从设备而不是主机身份运行。
hobbs

@hobbs你是对的-我第二次在那儿猜测是因为我不记得g_ether将零拴系到以太网小工具时使用了哪一端(但它是从属端,主机端驱动程序更为通用usbnet)。
goldilocks

Answers:


5

尝试使用g_hid@goldilocks提到的模块:

  1. 添加一条线dtoverlay=dwc2到您的config.txt并且重新启动
  2. 插入驱动程序 modprobe g_hid
  3. 运行hid_gadget_test /dev/hidg0 keyboard。您可能需要首先使用此处提供的示例代码来构建程序。

实现所需的另一种更灵活的方法(无需编写自定义驱动程序)是使用gadgetfs。我知道至少有一个项目使用这种方法将一台小型ARM计算机变成了USB /蓝牙键盘/鼠标/游戏手柄。

不幸的是,不确定Rapsberry Pi上gadgetfs的状态。该线程表明它行不通,但尚不清楚作者尝试确切地做什么。我还是建议尝试一下:

  1. 添加一条线dtoverlay=dwc2到您的config.txt并且重新启动
  2. 将小工具FS驱动程序插入 modprobe gadgetfs
  3. 使用以下命令挂载用户空间文件系统 mkdir /dev/gadget; mount -t gadgetfs none /dev/gadget/

如果此时没有出现错误,则可以使用类似此类的 gadgetfs库来对自定义USB设备进行编程。


1
非常感谢您的回答!我会尝试两种方式,并尽快通知您。

1
@Desproposito您曾经做过这个工作吗?我喜欢的更新
警报器

@Sirens,对不起,我买无法得到它的工作:(但我会尝试新的方法,只要我有时间去尝试另一种方式。

@Desproposito你能告诉你你到底无法工作吗?你能modprobe开车吗?你能坐gadgetfs吗?您可以构建和运行hid_gadget_test吗?
德米特里·格里戈里耶夫
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.