日期:2014-05-16  浏览次数:21265 次

linux 下 HID 设备 节点文件 访问 查找 VID PID
如题:

我的 HID 设备在windows XP 系统可以枚举,找到,通过 readfile,writefile读写

在linux 下 枚举成功,但是在 /dev 目录下,看到的节点文件 是“1-1”,可以 open,

但是 ioctl时,拿到的VID PID 都是 0 代码如下:

  int fd = 0;
struct hiddev_devinfo device_info;

if (argc != 2) 
{
fprintf(stderr, "usage: %s hiddevice - probably /dev/usb/hiddev0\n", argv[0]);
exit(1);
}
if ((fd = open(argv[1], O_RDONLY)) < 0) 
{
perror("hiddev open");
exit(1);
}
else
{
printf("Open_OK!");
}

ioctl(fd, HIDIOCGDEVINFO, &device_info);

printf("vendor 0x%04hx product 0x%04hx version 0x%04hx ",device_info.vendor, device_info.product, device_info.version);



问题:

1。hid 设备枚举后,在 /dev下生成的 设备节点文件 是 由 系统自带的 HID 设备驱动自动生成的吗?
  设备节点文件的名称是 怎么确定的?比如我的设备 是“1-1”,不解。

2.对 hid的操作是 依据 /dev下的设备节点文件名,直接 open 操作,还是要像 windows XP 下一样,找 GUID ,
  在匹配 VID PID?

3. linux 下有没有相关的 库 去操作 hid 设备?

------解决方案--------------------
友情帮顶..
------解决方案--------------------
需要创建设备文件,一般是:
mknod /dev/usb/hiddev0 c 180 96