系统中/sys/devices文件夹下文件的来历,以及相关udev问题
Hi 大家好
我目前想实现一个功能,就是通过libusb抓到一个设备后,找到该设备对应的一个参数。
这个参数在libusb API中没有体现,在udev中有所体现,该参数获取的方法为udev函数:
udev_device_get_sysname()
目前的问题是libusb抓到的设备需要找到对应的udev设备,我的思路是找到libusb与udev结构中相同的设备参数。
由于pid vid对相同设备无法做出区分, serial有可能遇到奇葩设备无法识别,
因此最靠谱的办法是系统给设备起的名字:
在libusb中的device_address
与/sys/devices/pcixxxx:xx/xxxx:xx:xx:x/usbx/devnum相同
而/sys/devices又是udev维护的,那么通过这个devnum肯定能找到对应的设备了
现在的问题是,我不知道udev如何创建出这个devnum
正常情况下的device number包含major 和 minor两部分, 而且udev_device_get_devnum得到的是一个dev_t格式的值,强制转后后与/sys/devices/pcixxxx:xx/xxxx:xx:xx:x/usbx/devnum无法对应。
所以希望大家告知/sys/devices/pcixxxx:xx/xxxx:xx:xx:x/usbx/devnum 这个文件创建的源码在哪里可以找到,或者大家有更好的实现方法。
十分感谢!