当前位置: 首页 > web >正文

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

http://www.xdnf.cn/news/12516.html

相关文章:

  • 【时时三省】(C语言基础)局部变量和全局变量
  • CSDN文章下载到本地的完整指南
  • 88.实现查看收藏功能的前端实现
  • 43道Java多线程高频题整理(附答案背诵版)
  • [蓝桥杯]解谜游戏
  • Tongweb配置跳过扫描应用jar的配置指引(by lqw)
  • 大模型如何革新用户价值、内容匹配与ROI预估
  • C语言字符数组初始化的5种方法(附带实例)
  • 鲲鹏麒麟服务器自制Nacos镜像并部署
  • Linux系统:ELF文件的定义与加载以及动静态链接
  • C++——红黑树
  • 三类 Telegram 账号的风控差异分析与使用建议
  • GWO-LSSVM-Adaboost灰狼算法GWO优化最小二乘支持向量机LSSVM分类预测!
  • python fbx sdk
  • 更新雅可比矩阵的非线性部分笔记
  • 和芯 SL6341 (内置FLASH) 国产USB 3.0HUB芯片 替代 GL3510 VL817
  • 区块链技术相关
  • mybatis中判断等于字符串的条件怎么写
  • ingress-nginx 开启 Prometheus 监控 + Grafana 查看指标
  • 《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)
  • Python爬虫实战:研究mechanize库相关技术
  • 深入解析JVM工作原理:从字节码到机器指令的全过程
  • 四叉树在空间结构建模中的应用
  • 车载以太网数据流量抓取手段全解析
  • 深度学习环境配置指南:基于Anaconda与PyCharm的全流程操作
  • C++11完美转发
  • Fullstack 面试复习笔记:Spring / Spring Boot / Spring Data / Security 整理
  • intelrealsense深度相机产品介绍
  • 从零开始的python学习(七)P95+P96+P97+P98+P99+P100+P101
  • MySQL安装与配置