如何读取sysfs设备路径?

How to read sysfs device path?

我有一个 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/3-3.4:1.2/0003:2965:5023.0006/input/input7 这行是什么意思。如何阅读?路径中的数字是多少?

Sysfs 属性是该设备在 sysfs 文件系统中的位置。假设您的内核是使用 CONFIG_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 文件系统的挂载点(参见 mount | grep sysfs 的输出)。

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

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

/0000:00:14.0/ 重复了 PCI 域和总线编号,以及插槽和功能。在本例中,USB 设备的插槽编号为 14,其功能编号为 0 (source).

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

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

/0003:2965:5023.0006/ 表示设备连接到总线 0003,供应商 ID 为 2965,产品 ID 为 5023