usbmon
• Facility in kernel to be used to collect URB traces• USB monitoring facilities for Linux consists of a kernel part and userpart• Reports requests made by peripheral-specific drivers to HostController Drivers (HCD)• Requires a reliable working HCD• Has a “text” and “binary” API
usbmon Architecture
usbmon 工具打开
首先保证 Debug Filesystem 已配置, 且已挂载 /sys/kernel/debug

usbmon 工具配置:CONFIG_THERMAL_MONITOR=y

确认模块在哪一条 usb 总线上
lsusb命令

cat /sys/kernel/debug/usb/devices
抓取 usbmon log
切换到 /sys/kernel/debug/usb/usbmon 目录下,有如下文件

cat 1u > /tmp/usbmon_log 就可以将上位机与模块交互的 usb 数据抓取到 /tmp/usbmon_log 文件中
说明:
1代表系统当前usb总线号,0代表所有的usb总线。
模块连接在 ubuntu 的第 1 条 usb 总线上,因此 cat 1u 。
s、t、u 表示输出的 usbmon log 的 format:
- 其中
u输出的信息最详细,因此使用u结尾的文件。usbmon输出的log量比较大,一般将其重定位到文件中。
ctrl+C
分析 usbmon log
抓到的 usb 数据是文本格式,是可以通过分析每一个字段来查看每个包的含义。
cat /tmp/usbmon_log

可以直接用 vusb-analyzer 来分析 usbmon_log ubuntu 侧 vusb-analyzer 安装:sudo apt-get install vusb-analyzer
