usbutils工具的使用帮助
作为嵌入式系统开发中的常用工具,usbutils
是一套用于管理和调试USB设备的Linux命令行工具集。以下是其核心功能和使用方法的详细说明:
1. 工具组成
- 核心命令:
lsusb
:列出所有连接的USB设备及详细信息(默认安装)usb-devices
:以可读格式显示USB拓扑结构usbhid-dump
:捕获USB HID设备(如键盘、鼠标)的数据流lsusb.py
(部分发行版):Python脚本提供更友好输出
2. 安装方法
# Debian/Ubuntu
sudo apt install usbutils# RHEL/CentOS
sudo yum install usbutils# Arch Linux
sudo pacman -S usbutils
3. 核心工具详解
lsusb
-
基本用法:
lsusb # 列出所有USB设备(总线号、设备号、厂商ID) lsusb -v # 显示详细描述符(配置、接口、端点) lsusb -t # 以树状图显示USB拓扑 lsusb -d vid:pid # 过滤特定设备(如 lsusb -d 8086:0808)
-
输出解析:
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub ^^^^ ^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 总线号 设备号 厂商ID:产品ID 设备描述
usb-devices
- 系统级拓扑分析:
usb-devices | less # 显示层级关系,包括驱动绑定状态
usbhid-dump
- HID设备调试:
sudo usbhid-dump -i 0 # 捕获接口0的原始报告(需sudo)
4. 实际应用场景
设备识别问题
# 插入设备后,快速确认是否被系统识别
lsusb | grep -i "Arduino"
驱动绑定检查
lsusb -v | grep -A 3 "iInterface" # 查看接口描述符
dmesg | grep usb # 结合内核日志分析
电源管理调试
lsusb -v | grep MaxPower # 检查设备功耗需求(mA)
5. 高级技巧
- 持久化设备命名:
udevadm info --name=/dev/bus/usb/002/001 # 通过udev规则固定设备路径
- USB协议分析:
sudo lsusb -v -d vid:pid > descriptor.txt # 保存描述符供后续分析
6. 常见问题解决
- 权限不足:
sudo chmod a+r /dev/bus/usb/*/* # 临时解决(不推荐) # 推荐方案:添加用户到plugdev组 sudo usermod -aG plugdev $USER
- 设备未出现:
- 检查内核模块:
lsmod | grep usb_storage
- 重置USB控制器:
echo 0 | sudo tee /sys/bus/usb/devices/usb*/authorized
- 检查内核模块:
7. 替代工具推荐
- Wireshark:USB流量抓包(需特定硬件支持)
- USBMon:内核级USB监控:
cat /sys/kernel/debug/usb/usbmon/0u
掌握这些工具能有效加速USB外设的驱动开发、兼容性测试和故障排查。建议结合man
手册(如man lsusb
)深入学习参数细节。