Rockchip RK3399 - linux下抓取usb数据包

----------------------------------------------------------------------------------------------------------------------------

开发板 :NanoPC-T4开发板eMMC16GBLPDDR34GB
显示屏 :15.6英寸HDMI接口显示屏u-boot2017.09linux4.19
----------------------------------------------------------------------------------------------------------------------------

注意:本节介绍的内容基于Rockchip RK3399 - linux-headers制作》中移植的运行环境:内核版本4.19.193以及debian 11根文件系统。

一、安装usbmon

usbmonusb monitor,是linux内置的usb抓包工具。usbmon本质是一个内核模块,模块的位置:/lib/modules/4.19.193/kernel/drivers/usb/mon/usbmon.ko

想要启用usbmon,必须挂载debugfs并加载usbmon模块。

1.1 挂载debugfs文件系统

在开发板debian执行如下命令,如果提示已经挂载,则下次抓包就无需运行该命令了,表示系统默认会挂载该文件系统。

root@SOM-RK3399v2:/# mount -t debugfs none /sys/kernel/debug
mount: /sys/kernel/debug: none_debugs already mounted or mount point busy.

如上所示, debian系统默认已经挂载了debugfs文件系统,无需再去手动挂载。

1.2 安装usbmon模块

需要注意的是:如果你已经将usbmon编译到内核中,就不需要安装了。

确认内核支持usbmon模块

root@SOM-RK3399v2:/# ls /sys/module/usbmon
ls: cannot access '/sys/module/usbmon': No such file or directory

如上所示,目前内核不支持usbmon模块,需要手动安装usbmon模块。

执行如下命令安装usbmon

root@SOM-RK3399v2:/# modprobe usbmon
bash: modprobe: command not found

提示未找到命令则是因为/usr/sbin(或者/sbin)默认没有加到PATH;通过修改profile文件:

root@SOM-RK3399v2:/# vim /etc/profile

找到设置·PATH·的行,添加:

export PATH=/usr/sbin:$PATH

要想马上生效还要运行 source /etc/profile不然只能在下次重进此用户时生效。

重新运行命令:

root@SOM-RK3399v2:/# modprobe usbmon
root@SOM-RK3399v2:/# ls /sys/module/usbmon
coresize  holders  initsize  initstate  notes  refcnt  sections  srcversion  taint  uevent

这里的原理是,usbmon是一个模块,使用modprobe安装该模块后,该模块内部调用debugfs相关的API,这样在 /sys/kernel/debug/usb目录下便形成了usbmon这个目录。

查看/sys/kernel/debug/usb/usbmon目录,

root@SOM-RK3399v2:/# ls  /sys/kernel/debug/usb/usbmon
0s  0u  1s  1t  1u  2s  2t  2u  3s  3t  3u  4s  4t  4u  5s  5t  5u  6s  6t  6u

发现该目录下有以下内容:0s、0u、1s、1t、1u、2s、2t、2u等,其中1代表bus1,2代表bus2,0代表所有USB总线。

1.2.1 开机自动加载模块

这里有一个问题,就是内核4.19.193版本启动的时候为啥没有自动去加载/lib/modules/4.19.193/目录下的驱动模块,如果我们想让系统能自动加载该目录下的驱动模块,我们应该怎么做?

(1) 使用命令depmod -a

depmod命令用于分析可载入模块的相依性,-a参数的作用是探测所有的模块,建立模块的依赖关系,更新/lib/modules/4.19.193/modules.dep文件;

(2) 将模块设置为自动加载

/etc/modules文件里面添加我们要加载的驱动名(一个驱动占一行);

# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.
usbmon
1.2.2 重启验证

上述操作完成后,重启系统,使用 lsmodcat /proc/modulesls /sys/module/usbmon命令查看驱动是否已经加载。

root@SOM-RK3399v2:/# lsmod
Module                  Size  Used by
algif_hash             20480  1
algif_skcipher         16384  1
af_alg                 24576  6 algif_hash,algif_skcipher
bnep                   24576  2
hci_uart               61440  1
btbcm                  16384  1 hci_uart
serdev                 20480  1 hci_uart
hid_logitech_hidpp     36864  0
crct10dif_ce           16384  0
l2tp_ppp               24576  0
l2tp_netlink           24576  1 l2tp_ppp
l2tp_core    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Graceful_scenery

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值