1. 运行linux的设备作为hid设备,需要连接的usb为从属设备,常见的可使用usb otg
2. 可以使用configfs + gadget,挂载及配置后,即可通过读写文件描述符实现设备功能,gadget提供的一些功能举例可以在官方文档里查看
3. gadget提供的设备配置在内核驱动里实现,官方版本中开放了部分参数,可通过挂载后读写文件描述符配置,hid驱动为 kernel/drivers/usb/gadget/hid.c,配置可以参考Linux USB HID gadget driver — The Linux Kernel documentation
4. 如果需要多个设备共用,目前找到的方法都是修改内核驱动,例如:DM816X 实现 USB HID Gadget 鼠标键盘功能【转】 - Sky&Zhang - 博客园 (cnblogs.com)
Linux3.x——USB Gadget HID keyboard + Mass storage_gadget masstorage-优快云博客
5. 挂载操作参考Linux USB gadget configured through configfs — The Linux Kernel documentation
【精选】LINUX嵌入式模拟键盘 2022-05-21_linux usb gadget configfs 键盘-优快云博客