Linux 如何读取sysfs设备路径?

Linux 如何读取sysfs设备路径?,linux,usb,sysfs,Linux,Usb,Sysfs,我有一个USB触摸屏连接到我的硬件设置。当我使用cat/proc/bus/input/devices时,我得到了关于我的设备的以下详细信息: I: Bus=0003 Vendor=2965 Product=5023 Version=0110 N: Name="Kortek Kortek Touch" P: Phys=usb-0000:00:14.0-3.4/input2 S: Sysfs=/devices/pci0000:00/0000:00:14.0/usb3/3-3/3-3.4/3-3.4:

我有一个USB触摸屏连接到我的硬件设置。当我使用
cat/proc/bus/input/devices
时,我得到了关于我的设备的以下详细信息:

I: Bus=0003 Vendor=2965 Product=5023 Version=0110
N: Name="Kortek Kortek Touch"
P: Phys=usb-0000:00:14.0-3.4/input2
S: Sysfs=/devices/pci0000:00/0000:00:14.0/usb3/3-3/3-3.4/3-3.4:1.2/0003:2965:5023.0006/input/input7
U: Uniq=S20131028
H: Handlers=mouse1 event7 js0
B: PROP=0
B: EV=1b
B: KEY=30000 0 0 0 0 0 0 0 0
B: ABS=3
B: MSC=10

我想知道这行
S:Sysfs=/devices/pci0000:00/0000:00:14.0/usb3/3-3/3-3.4/1.2/0003:2965:5023.0006/input/input7
意味着什么。怎么读?路径中的数字是什么?

Sysfs属性是该设备在Sysfs文件系统中的位置。假设您的内核是使用
CONFIG\u SYSFS
编译的,并且SYSFS文件系统已装入
/sys
,您可以在以下位置查看设备:

/sys/devices/pci0000:00/0000:00:14.0/usb3/3-3/3-3.4/3-3.4:1.2/0003:2965:5023.0006/input/input7
要分解路径所代表的内容,请执行以下操作:

/sys/
是sysfs文件系统的挂载点(请参阅
挂载| grep sysfs
的输出)

/devices/
包含设备树()的文件系统表示形式

/pci0000:00/
描述PCI域和总线号。在这种情况下,域号是
0000
,总线号是
00
()

/0000:00:14.0/
重复PCI域和总线号以及插槽和功能。在这种情况下,USB设备的插槽号为
14
,其功能号为
0
()

/usb3/
指连接到总线号
3
()的USB控制器

/3-3/3-3.4/3-3.4:1.2/
具有冗余信息。最后一个
/3-3.4:1.2/
表示您指的是连接到总线
3
、端口
3
、端口
4
、配置号
1
和接口号
2
()的USB控制器


/0003:2965:5023.0006/
表示设备连接到总线
0003
,供应商ID为
2965
,产品ID为
5023
。我想问的是,路径告诉我们有关设备的信息,如“pci0000:00/0000:00:14.0/usb3/3-3/3-3.4/3-3.4:1.2/0003:2965:5023.0006”。路径中的数字说明了设备的什么?如果我需要进一步澄清,请告诉我。
/0003:2965:5023.0006/
中的数字
0006
是什么意思,我不确定。。。也许是修订号?查看它是否与
/sys/kernel/debug/usb/devices
Rev=1.00
中设备的Rev属性匹配,因此它似乎不匹配。但是,还有一个属性
Dev#=6
。你知道这是什么吗?