step1. 加载usbmon模块
sudo mount -t debugfs none /sys/kernel/debug
#这一步一般不用做,debugfs默认都是挂载的
sudo modprobe usbmon #如果这个命令找不到usbmon,那手动从/lib/modules中insmod
sudo apt-get install wireshark
若加载成功,则 sudo ls /sys/kernel/debug/usb,可以看到usbmon文件夹。
step2. 添加udev规则,使得wireshark可以捕获到usb接口数据
sudo addgroup usbmon
sudo gpasswd -a ``````$USER`````` usbmon
sudo vi /etc/udev/rules.d/99-usbmon.rules
#加入下面一行,保存退出
SUBSYSTEM==``````"usbmon"``````, GROUP=``````"usbmon"``````, MODE=``````"640"
step3. lsusb查看usb设备在哪条总线上
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
# Bus 003: 设备在第3条总线上,地址是01
**step4. **运行wireshark,注意要在root用户下,否则看不到usbmon
sudo wireshark
运行时可能会报权限之类的错误,直接跳过,选取后直接点击Start即可
开始界面,或者点击设置,选择usbmon3, 表示抓取bus 003上的数据。
数据抓取界面如下,可以在过滤器中写入: usb.addr contains "3.1", 表示只显示bus3,device1的数据。
版权归原作者 yangsong4353 所有, 如有侵权,请联系我们删除。