如何查usb hid设备的厂商号?急

发布于 2022-09-07 20:22:29 字数 111 浏览 7 评论 4

比如鼠标,操纵杆 在/dev/usb下 和插拔顺序有关 分别是hid0和hid1 那在不知插拔顺序时 我如何知道0对应的是鼠标还是杆?我需要open我的操纵杆 read数据去分析啊 如何知道?急啊 有劳大家了 手机发贴真累

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

陌上芳菲 2022-09-11 00:24:24

现在有了些进展
1、在网上看到solaris支持libusb无驱式的库
于是先跑了个例子,遍历usb设备的例子
就是usb_init 、usb_find_busses、usb_find_devices
然后循环遍历总线和设备
但是找不到HID设备,但U盘设备却可以
于是用libusb通过HID的VID/PID查找设备,然后读写的想法暂时失败了
网上那个人也是找不到HID设备

2、然后,仔细看了下libusb.txt文档
里面说到,Solaris要通过libusb访问USB设备,必须用ugen来绑定设备啥的
不是太明白
man ugen查看文档,看了半天,瞎捣腾了会
利用updated_drv -a -i '"usbxxxx,yyyy"' ugen 命令后
发现/dev/usb下就多了xxxx.yyyy的目录,里面放着好多子设备
这些设备有USB控制、传输端点、还有设备状态devstat等等设备文件

此时,再跑libusb的遍历设备的例子,就可以定位到我的hid设备了
然后,就可以用libusb的一系列API函数,来定位我的操作杆了
比如我的操作杆VID、PID分别为xxxx、yyyy
然后,通过遍历总线和设备,查找到对应的libusb的设备结构体
然后通过它就可以读写设备了

3、实际上、ugen创建的设备alias别名目录下的设备,都可以open进行read、write
man ugen手册讲的很细
比如open("/dev/usb/xxxx.yyyy/if0in1",O_RDONLY)就是打开设备的0接口的1号端点用于read
然后就能read数据了
详细的我也没时间看了

分享下我的经验

4、实际上linux可以通过遍历hid设备目录下的所有hid0~hidx
每打开一个,通过ioctl的HIDIOCGDEVINFO来获取hid节点的VID/PID,然后比较你自己的设备
就能知道hidx是你要的设备了
而且,hid设备节点打开后,还支持select
但if0in1形式的端点设备节点,open后,不支持select操作

贱贱哒 2022-09-11 00:24:23

汗了 真没研究这个

俏︾媚 2022-09-10 21:31:12

自己再顶

若水微香 2022-09-08 12:25:38

居然是手机发帖,顶。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文