抓取 USB 总线LOG
在实际工作中经常会遇到需要分析USB报文的情形。比如对比不同厂家4G/5G模块。解决实际IP over USB传输效率低下问题。 这时候如果能抓取到 USBMOM 总线的报文将会大有裨益。毕竟所有host(Linux/Windows)与外设(USB)交互的信息都是经由 USB 总线才发送到设备上。
如上,我们计划抓取 USB 总线上的报文信息。但是怎么做呢?
Wireshark
Wireshark 是最简单最熟悉的方案。在Windows 上靠USBPCAP 组件抓USB,这需要在Wireshark 安装时候选择安装上。
在Linux 上依赖于操作系统 USBMON 驱动。Linux 发行版可以直接modprobe -a usbmon来加载 USBMON 驱动(默认不加载),然后打开 Wireshark 就能看到 usbmon1,usbmon2...
如下图,选中设备对应的总线就可以抓了

tcpdump
tcpdump 抓取 USB 报文和抓取网卡语法是一样的, 如下图

在嵌入式设备/Android上这里会有个坑。就是用tcpdump -D能看到 usbmon 节点。但是,执行tcpdump -i usbmon1类似的命令时候会提示 usbmon1 不存在???
这是因为操作系统被裁剪掉了 udev,导致没有生成设备节点。我们可以用mknod命令来手动创建这些节点!

如何确定总线
太简单了!!! 既然要抓LOG,肯定有目标,知道要抓哪个设备的。比如你知道外设的 VID&PID,那么通过 lsusb 就可以看到! 总线1 就是usbmon1,总线 2 就是usbmon2...

那么如果我是嵌入式系统,没有lsusb、urb-devices这样的命令怎么办???
好吧! 其实你可以这么看:

如果这个命令也失败了。。。。 那么你需要检查你的系统 usbmon 驱动相关的是否都打开了。
如何分析报文
参见小伙伴写的另一个博客:详解 usbmon 抓取的 log 各字段的含义
抓取 USB 总线LOG的更多相关文章
- 使用 usbmon 抓取 usb 总线上的数据
使用 usbmon 抓取 usb 总线上的数据 usbmon 即 usb monitor,是 linux 内置的 usb 抓包工具.usbmon 本质是一个内核模块,在我的 ubuntu14.0 4中 ...
- 如何抓取崩溃的log日志
4.手机录屏工具的推荐 Andriod:录屏大师,易录屏等等. iOS:AirPlayer,iTools. 5.如何抓取崩溃的log日志? android闪退获取日志方法: 1.下载adb工具包 2. ...
- 高通qxdm抓取sensor的log【学习笔记】
高通qxdm抓取sensor的log 打开qxdm,打开设置界面,去掉其他无关的log,打开Log packets .Message packets的SNS的log 之后需要把端口打开,把端口打开之后 ...
- 抓取崩溃的log日志
1.下载adb工具包 也就是解锁软件,如果要解锁的话,需确认有fastboot 安装jdk.sdk 2.注意事项 请确保电脑上只连接了一台手机设备(最好只连接一条USB线),同时确保手机已开启USB调 ...
- android adb命令 抓取系统各种 log
getLog.bat: adb root adb remount adb wait-for-device adb logcat -v time > C:\log.txt 在Android中不同的 ...
- Wireshark 抓取USB的数据包
需要使用root权限来运行Wireshark,并利用Wireshark来嗅探USB通信数据.当然了,我们并不建议大家利用root权限来进行操作.我们可以使用Linux提供的usbmon来为我们获取和导 ...
- 抓取git的log文件批处理命令示例
@echoset sincedate="2016-04-28 00:00:01" ::变量set beforedate="2016-04-29 00:0 ...
- Android平台抓取native crash log
Android开发中,在Java层可以方便的捕获crashlog,但对于 Native 层的 crashlog 通常无法直接获取,只能通过系统的logcat来分析crash日志. 做过 Linux 和 ...
- linux抓取usb包设置usbmon
随机推荐
- 高吞吐量消息系统—kafka
现在基本上大数据的场景中都会有kafka的身影,那么为什么这些场景下要用kafka而不用其他传统的消息队列呢?例如rabbitmq.主要的原因是因为kafka天然的百万级TPS,以及它对接其他大数据组 ...
- 最后之作-Last Order(bushi
最近化学学有机选修,讲羧酸的时候我想到一个问题:不考虑空间异构.能否稳定存在等问题,某高级饱和脂肪酸有多少种同分异构体?做为一名退役的OIer,我将它抽象为了另一个问题:含\(n\)个\(C\)的饱和 ...
- 记一次mysql数据库被勒索(中)
背景在上一篇文章里面已经提过了. 现在面临的问题是nextcloud没有mysql数据库,用不起来了. 因为文件没丢,一种方法是启动新的mysql数据库,把文件重新提交一次. 为了程序员的面子,没有选 ...
- 【算法•日更•第十期】树型动态规划&区间动态规划:加分二叉树题解
废话不多说,直接上题: 1580:加分二叉树 时间限制: 1000 ms 内存限制: 524288 KB提交数: 121 通过数: 91 [题目描述] 原题来自:NOIP 20 ...
- vue watch/ computed的应用(做一个简单的父子之间的传递/电话号码的搜索)
父组件中当点击搜索的时候请求接口,然后把新的数据用 computed 传递给子组件 <van-search v-model="onSeachPhone" show-actio ...
- mycat数据库集群系列之mycat读写分离安装配置
最近在梳理数据库集群的相关操作,现在花点时间整理一下关于mysql数据库集群的操作总结,恰好你又在看这一块,供一份参考.本次系列终结大概包括以下内容:多数据库安装.mycat部署安装.数据库之读写分离 ...
- Petya and Graph/最大权闭合子图、最小割
原题地址:https://codeforces.com/contest/1082/problem/G G. Petya and Graph time limit per test 2 seconds ...
- javascript 数组的组合
javascript 数组的组合 一.前言 二.数组的组合 concat()方法 push(...items) 其他方法 三.结束语 一.前言 今天在开发项目过程中,遇到了一个需求,先请求了30个数据 ...
- 第二篇Scrum冲刺博客--Interesting-Corps
第二篇Scrum冲刺博客 站立式会议 1.会议照片 2.队友完成情况 团队成员 昨日完成 今日计划 鲍鱼铭 主页页面和探测空间设计及布局实现 主页页面跳转社区功能及社区设计及布局实现 叶学涛 设计页面 ...
- vue组件获取和vue-cli的基本了解
Vue获取组件的一些方法 this.$refs.xxx 给标签绑定ref属性,获取的是当前DOM对象 给组件绑定ref属性,获取的是组件实例对象 this.$parent 获取当前组件的父组件,为一个 ...