576 字3 分钟
在 Linux 中安装使用 lsusb 查看 USB 设备
在 Linux 中我们可以使用 lsusb 来列出 USB 设备和它的属性,lsusb 会显示驱动和内部连接到你系统的设备。直接在控制台输入 lsusb 即可。
如果无法运行 lsusb,使用以下命令安装(Debian):
apt-get install usbutils然后就可以运行 lsusb 了:
$ lsusbBus 002 Device 002: ID 05e3:0612 Genesys Logic, Inc.Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hubBus 001 Device 002: ID 05e3:0612 Genesys Logic, Inc.Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hubGenesys 是台湾的 USB HUB 芯片厂商,我们可以看到在系统中同时使用了 USB 3.0 root hub 驱动和 USB 2.0 root hub 驱动。
再举个例子:
Bus 002 Device 003: ID 17ef:4811 Lenovo Integrated Webcam [R5U877]Bus 008 Device 002: ID 0a5c:217f Broadcom Corp. Bluetooth Controller下面介绍如何理解输出,以上面输出的最后一行为例:
Bus 008:指明设备连接到哪(哪条总线)Device 002:表明这是连接到总线上的第二台设备ID:设备的 IDBroadcom Corp. Bluetooth Controller:生产商名字和设备名
lsusb 命令的参数
-v 列出所有 USB 的详细信息
可以输出非常详细的信息,包括设备的电流等等。
配合 grep 命令过滤特定信息,大容量存储设备会有一个供应商名和 ID,我们可以用它作为一个起点:
$ lsusb -v | grep -Ei '(idVendor|Mass\ Storage)'idVendor 0x1005 Apacer Technology, Inc.bInterfaceClass 8 Mass Storage可以看到,系统上有一个来自 Apacer Technology, Inc(宇瞻)的 USB 大容量存储设备。
-t 以树层级结构输出 USB 设备
$ lsusb -t/: Bus 08.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ehci_hcd/6p, 480M |__ Port 1: Dev 4, If 0, Class=stor., Driver=usb-storage, 480M |__ Port 6: Dev 3, If 0, Class='bInterfaceClass 0x0e not yet handled', Driver=uvcvideo, 480M/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci_hcd/6p, 480M数字 12M 和 480M 是指 USB 类型的传输速率:
12M:意味着 USB 1.0/1.1 的速率是 12Mbit/s480M:意味着 USB 2.0 的速率是 480Mbit/s5G:意味着 USB 3.0 的速率是 5Gbit/s
这些就是 lsusb 命令的基础。可以用 lsusb 命令对你的系统上的 USB 设备做一个诊断。需要更多细节,输入 man lsusb 打开它的手册查看。