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

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.lryc.cn/news/2403063.html

相关文章:

  • vue2中使用jspdf插件实现页面自定义块pdf下载
  • 如何防止服务器被用于僵尸网络(Botnet)攻击 ?
  • 基于cornerstone3D的dicom影像浏览器 第二十九章 自定义菜单组件
  • 【Block总结】DBlock,结合膨胀空间注意模块(Di-SpAM)和频域模块Gated-FFN|即插即用|CVPR2025
  • 【学习笔记】单例类模板
  • 字符串加密(华为OD)
  • 口罩佩戴检测算法AI智能分析网关V4工厂/工业等多场景守护公共卫生安全
  • Double/Debiased Machine Learning
  • HarmonyOS Next 弹窗系列教程(4)
  • 【C】-递归
  • 飞马LiDAR500雷达数据预处理
  • Kerberos面试内容整理-在 Linux/Windows 中的 Kerberos 实践
  • 在 Allegro PCB Editor 中取消(解除或删除)已创建的 **Module** 的操作指南
  • 基于springboot的校园社团信息系统的设计与实现
  • nodejs里面的http模块介绍和使用
  • mamba架构和transformer区别
  • 嵌入式鸿蒙开发环境搭建操作方法与实现
  • 在 Spring Boot 中使用 WebFilter:实现请求拦截、日志记录、跨域处理等通用逻辑!
  • CSS预处理器:Sass与Less的语法和特性(含实际案例)
  • QT常用控件(1)
  • 明基编程显示器终于有优惠了,程序员快来,错过等一年!
  • 【计算机网络】非阻塞IO——select实现多路转接
  • Figma 中构建 Master Control Panel (MCP) 的完整设计方案
  • 什么是权威解析服务器?权威解析服务器哪些作用?
  • LeetCode--23.合并k个升序链表
  • ComfyUI 工作流
  • 使用glide 同步获取图片
  • 【推荐算法】NeuralCF:深度学习重构协同过滤的革命性突破
  • 负载均衡相关基本概念
  • 服务器中日志分析的作用都有哪些