系统中/sys/devices文件夹下文件的来历,以及相关udev问题

lyhtsm 2014-08-04 10:52:22
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 这个文件创建的源码在哪里可以找到,或者大家有更好的实现方法。

十分感谢!
...全文
123 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

4,436

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧