最近在了解USB方面的知识,要实现一个ip KVM的功能,简单来说,就是用arm板接上鼠标键盘通过TCP网络协议来远程控制电脑。首先第一步,接收端要实现usb device。这个需要修改内核驱动。在linux内核的devices/USB/gadget/hid.c.。修改设备描述符(这里是参照http://blog.csdn.net/luckywang1103/article/details/41282551做的,写的很详细,当然,也可以参照内核文档),我实现的是鼠标键盘复合设备的描述符。识别完这个后,写相应的应用层接口,应用层接口我也是参照上文博客,做了相应的修改。将字符串键值修改为,ps2值对hid键值,接收触发信号改为tcp通信收到的信号,进行转化。按照usb 标准报文对设备发送数据。由于是鼠标键盘复合设备,这里在报文前面加上设备号进行区分。然后第二步是客户端,接收ps2键盘鼠标的数据,对input子系统进行监控,一触发数据就进行接收发送。这里需要热插拔,就要对设备一直进行监听,我这里使用了select和intify进行监听。达到并行的目的。
ip KVM
最新推荐文章于 2024-09-07 09:06:58 发布