`/sys/bus/usb/devices/` 中文件夹的命名约定

`/sys/bus/usb/devices/` 中文件夹的命名约定

我试图了解 Linux 文件夹名称/sys/bus/usb/devices/与输出之间的关系lsusb -t

在我的计算机上,lsusb显示如下内容:

在此处输入图片描述

在 中/sys/bus/usb/devices/,有:

在此处输入图片描述

这些文件夹的命名约定是什么?

我唯一10能找到的lsusb是端口号。

我唯一1,2,3,4能找到的是If,即界面。

所以我猜文件夹名称应该是这样的:

<bus>-<port>: <???>.<Interface>

这是什么???部分?好像总是这样1。为什么文件夹名称中没有设备编号?

操作系统信息:

Distributor ID: Ubuntu
Description:    Ubuntu 20.04.3 LTS
Release:        20.04
Codename:       focal

Linux 内核:

Linux 5.13.0-27-generic

答案1

根据中的提示Documentation/ABI/stable/sysfs-bus-usb,一般格式为:

<bus>-<port[.port[.port]]>:<config>.<interface>
  • 每个都<busnum>对应一个根集线器。

  • 后面跟着一系列由点分隔的集线器端口号。即使您没有任何外部集线器,通常也会有内部集线器。使用lsusb.py工具可以更详细地查看拓扑(该脚本与 lsusb 本身来自相同的“usbutils”)。

  • 后面的数字:表示活动的配置该设备的。某些设备可以在多个配置之间切换(一次只能激活一个),每个配置都提供不同的接口 - 例如,4G/LTE 调制解调器可以设置为“AT 模式”或“MBIM 模式”或“QMI 模式”。(在 Windows 上,这是由驱动程序处理的,在 Linux 上,可以通过 /sys 手动完成。)

  • 最后,后面的数字.表示接口编号。USB 设备可以提供多个接口,例如 4G 调制解调器将有一个串行端口 + 一个虚拟以太网接口,而 YubiKey NEO 将有一个用于 U2F 的 HID 设备 + 一个用于传统 Yubikey OTP 的假键盘。运行lsusb.py -i以查看它们的名称。

来自桌面的示例,您可以看到键盘由于某种原因具有两个 HID 接口(对于花哨的“游戏”键盘来说,这种情况更为常见):

# lsusb.py -I
usb1              1d6b:0002 09 1IF  [USB 2.00,   480 Mbps,   0mA] (ehci_hcd 0000:00:1a.0) hub
  1-0:1.0           (IF) 09:00:00 1EP  (Hub::Full speed (or root) hub) hub
  1-1               8087:0024 09 1IF  [USB 2.00,   480 Mbps,   0mA] (Intel Corp. Integrated Rate Matching Hub) hub
    1-1.1             1ea7:0064 00 1IF  [USB 1.10,    12 Mbps, 100mA] (Wireless rechargeable vertical mouse)
      1-1.1:1.0         (IF) 03:01:02 1EP  (Mouse) usbhid hidraw1 (hid-generic) input7 input6 (hid-generic)
    1-1.3             0951:1643 00 1IF  [USB 2.00,   480 Mbps, 100mA] (Kingston DataTraveler G3)
      1-1.3:1.0         (IF) 08:06:50 2EPs (Bulk-Only) usb-storage host6 (sdd)
    1-1.6             413c:2113 00 2IFs [USB 1.10,   1.5 Mbps, 100mA] (Dell Computer Corp. KB216 Wired Keyboard)
      1-1.6:1.0         (IF) 03:01:01 1EP  (Keyboard) usbhid hidraw2 (hid-generic) input8 (hid-generic)
      1-1.6:1.1         (IF) 03:00:00 1EP  (None) usbhid hidraw3 (hid-generic) input9 input10 (hid-generic)
usb2              1d6b:0002 09 1IF  [USB 2.00,   480 Mbps,   0mA] (ehci_hcd 0000:00:1d.0) hub
  2-0:1.0           (IF) 09:00:00 1EP  (Hub::Full speed (or root) hub) hub
  2-1               8087:0024 09 1IF  [USB 2.00,   480 Mbps,   0mA] (Intel Corp. Integrated Rate Matching Hub) hub

笔记本电脑内置 4G 调制解调器的示例,首先采用其启动默认配置 2(以太网模拟),然后切换到配置 3(MBIM)后使用完全相同的设备:

# cat /sys/bus/usb/devices/1-3/configuration
2

# lsusb.py
usb1
 1-3        03f0:a31d 00 7IFs [USB 2.00,  480 Mbps,   2mA] (HP Inc. HP lt4132 LTE/HSPA+ 4G Module)
  1-3:2.0    (IF) 02:06:00 1EP  (Communications) cdc_ether net/usb0
  1-3:2.1    (IF) 0a:06:00 2EPs (CDC Data) cdc_ether
  1-3:2.2    (IF) ff:06:10 3EPs (Vendor Specific) option ttyUSB0
  1-3:2.3    (IF) ff:06:13 2EPs (Vendor Specific) option ttyUSB1
  1-3:2.4    (IF) ff:06:12 2EPs (Vendor Specific) option ttyUSB2
  1-3:2.5    (IF) ff:06:14 2EPs (Vendor Specific) option ttyUSB3
  1-3:2.6    (IF) ff:06:1b 2EPs (Vendor Specific) option ttyUSB4

# echo 3 > /sys/bus/usb/devices/1-3/configuration

# lsusb.py
usb1
 1-3        03f0:a31d 00 3IFs [USB 2.00,  480 Mbps,   2mA] (HP Inc. HP lt4132 LTE/HSPA+ 4G Module)
  1-3:3.0    (IF) 02:0e:00 1EP  (Communications) cdc_mbim net/wwan0
  1-3:3.1    (IF) 0a:00:02 2EPs (CDC Data) cdc_mbim
  1-3:3.2    (IF) ff:06:14 2EPs (Vendor Specific) option ttyUSB0

相关内容