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)深入学习参数细节。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值