如何在Linux上查看USB端点信息 (linux查看u端点)
USB(全称:Universal Serial Bus)是一种通用的接口,使用于计算机和其他电子设备之间的通信。它是一种高速、热插拔、易于使用的端口,可以用于连接各种设备,如鼠标、键盘、打印机、存储设备等等。
在Linux环境下,USB也是一种重要的设备接口。如果想要了解USB设备的信息,尤其是它的端点信息,那么本文就是为您准备的。下面,我们将介绍。
我们需要了解一些相关的基础知识。
什么是USB端点?
在USB设备中,端点(Endpoint)是数据通道的两个端点之一。每个端点都有一个方向(IN或OUT),以及一个特定的数据类型(同步或异步)。通过端点,USB设备可以与主机进行数据传输。
每个USB设备都包含一个控制端点(Control Endpoint)和多个数据端点(Bulk Endpoint、Interrupt Endpoint和Isochronous Endpoint)。其中,控制端点用于传输控制信息,如设备状态、命令和配置参数等。数据端点用于传输不同类型的数据,如音频、视频、文本等。
如何在Linux中查看USB设备信息?
要查看USB设备的信息,我们可以使用一些Linux系统自带的命令。
1. lsu 命令
lsu 命令可以列出系统中所有连接的USB设备及其设备ID和供应商ID等信息。以下是 lsu 命令的用法:
“`
$ lsu
“`
输出结果类似于:
“`
Bus 002 Device 011: ID 04ca:0068 Lite-On Technology Corp.
Bus 002 Device 010: ID 17ef:481d Lenovo
Bus 002 Device 009: ID 0bda:0129 Realtek Semiconductor Corp. RTS5129 Card Reader Controller
Bus 002 Device 008: ID 05e3:0608 Genesys Logic, Inc. Hub
Bus 002 Device 007: ID 04f2:b3f6 Chicony Electronics Co., Ltd
Bus 002 Device 005: ID 8087:0a2b Intel Corp.
Bus 002 Device 004: ID 1c4f:0002 SiGma Micro Keyboard TRACER Gamma Ivory
Bus 002 Device 003: ID 1c4f:0002 SiGma Micro Keyboard TRACER Gamma Ivory
Bus 002 Device 002: ID 8087:0a2a Intel Corp.
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 2232:1049
Bus 001 Device 002: ID 8087:0a2b Intel Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
“`
2. dmesg 命令
dmesg 命令可以显示系统日志,其中包含了设备连接、卸载历史记录。我们可以使用以下命令来查看USB设备的日志:
“`
$ dmesg | grep -i u
“`
输出结果可能看起来有点冗长,但是它包含了每个USB设备的详细信息。以下是示例输出:
“`
[ 574.994031] u 1-1: new high-speed USB device number 3 using xhci_hcd
[ 575.130219] u 1-1: New USB device found, idVendor=2232, idProduct=1049, bcdDevice= 0.01
[ 575.130223] u 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 575.130226] u 1-1: Product: G700s Rechargeable Gaming Mouse
[ 575.130228] u 1-1: Manufacturer: Logitech
[ 704.355415] u 2-1: new high-speed USB device number 4 using xhci_hcd
[ 704.539557] u 2-1: New USB device found, idVendor=1c4f, idProduct=0002, bcdDevice= 1.10
[ 704.539561] u 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 704.539564] u 2-1: Product: Keyboard TRACER Gamma Ivory
[ 704.539566] u 2-1: Manufacturer: SIGMACHIP
[ 704.772558] input: SIGMACHIP Keyboard TRACER Gamma Ivory as /devices/pci0000:00/0000:00:14.0/u2/2-1/2-1:1.0/0003:1C4F:0002.0003/input/input30
[ 704.831575] hid-generic 0003:1C4F:0002.0003: input,hidraw2: USB HID v1.10 Keyboard [SIGMACHIP Keyboard TRACER Gamma Ivory] on u-0000:00:14.0-1/input0
“`
以上展示了两种获取USB设备信息的方法。接下来,我们将介绍如何查看USB端点信息。
如何查看USB端点信息?
要查看USB端点信息,我们可以使用以下步骤:
1. 确定设备ID
使用 lsu 命令确定你要查看的USB设备的ID。假设设备ID为 04ca:0068。
“`
$ lsu
“`
输出结果类似于:
“`
Bus 002 Device 011: ID 04ca:0068 Lite-On Technology Corp.
“`
2. 安装 libu 库
使用以下命令安装 libu 库:
“`
$ sudo apt-get install libu-1.0-0
“`
3. 使用 u-devices 命令
使用 u-devices 命令查看USB设备的信息,包括端点信息。
“`
$ u-devices -v | grep -e ‘^$’ -e ‘^\|:’ | grep -A2 04ca:0068
“`
示例输出:
“`
T: Bus=02 Lev=01 Prnt=01 Port=01 Cnt=02 Dev#= 11 Spd=480 MxCh= 0
D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=04ca ProdID=0068 Rev=2.00
S: Manufacturer=USB Camera
S: Product=Integrated Camera
C: #Ifs= 3 Cfg#= 1 Atr=a0 MxPwr=500mA
I: If#= 0 Alt= 0 #EPs= 1 Cls=03(HID ) Sub=01 Prot=01 Driver=uhid
E: Ad=81(I) Atr=03(Int.) MxPS= 64 Ivl=32ms
I: If#= 1 Alt= 0 #EPs= 0 Cls=0a(data ) Sub=00 Prot=00 Driver=(none)
E: Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I: If#= 2 Alt= 0 #EPs= 1 Cls=0e(video) Sub=01 Prot=00 Driver=uvcvideo
E: Ad=83(I) Atr=03(Int.) MxPS= 224 Ivl=125us
“`
在输出中,我们可以看到每个端点的详细信息,如接口索引(If#)、方向(Alt=)、类型(Cls、Sub、Prot)和传输类型(Bulk、Interrupt、Isochronous)等。
在Linux上查看USB端点信息是一项非常简单的任务,只需要遵循上述几个简单的步骤即可。知道如何查看USB设备的详细信息以及它们的端点信息是一个非常有用的技能,也有助于更好、更安全地使用和维护USB设备。