hidraw设备自定义设备节点

之前我们的手柄使用的都是/dev/hidrawx节点,自己写了一个service通过这个结点和手柄交互。

最近发现,同样使用/dev/hidrawx节点的手柄, 要是被我自己写的service open一次后,会无法被系统正常识别。

所以便想 我们自己的手柄是不是可以根据pid、vid去创建一个私有的结点。

然后就看代码

发现在hidraw.c里hidraw_connect函数里有创建/dev/hidrawx节点。

所以就在这个位置加了判断,若vid为我们自己的,便去创建一个私有节点。

int hidraw_connect(struct hid_device *hid){

...

...
if(BLUETOOTH_DEVICE_VENDOR_ID_XXXX == hid->vendor){
dev->dev = device_create(hidraw_class, &hid->dev, MKDEV(hidraw_major, minor),
NULL, "%s%d", "hidraw-xxxx", minor);
}else{
dev->dev = device_create(hidraw_class, &hid->dev, MKDEV(hidraw_major, minor),
NULL, "%s%d", "hidraw", minor);
}


若vendor id为BLUETOOTH_DEVICE_VENDOR_ID_XXXX  则创建 hidraw-xxxx




版权声明:本文为buding_code原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。