LinuxUSB驱动程序调试

:这是LinuxUSB驱动程序调试--003:Ubuntu下的准备工作的详细页面,介绍了和linux,有关的知识、技巧、经验,和一些linux源码等。

Ubuntu下的准备工作:

(1)如何查看内核中的printk输出: dmesg

再配合管道命令,   dmesg |head   ,    dmesg |tail

通过这个命令,我们可以看到内中的printk输出的内容,这是很有用的一个

工具。

(2)的USB抓包工具:usb_mon

其实,Ubuntu下已经内置了USB抓包工具---USB_MON

【其实 make menuconfig 时候会让我们选择的】

使用方法如下:

# mount -t debugfs none /sys/kernel/debug

# modprobe usbmon

查看当前的USB device:

# cat  /sys/kernel/debug/usb/devices

下面的输出:

T:  Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 12 Spd=480 MxCh= 0

D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1

P:  Vendor=601a ProdID=4740 Rev= 1.00

S:  Manufacturer=Ingenic

S:  Product=JZ4740 USB Boot Device

C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr=  2mA

I:* If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=50 Driver=skeleton

E:  Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms

E:  Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms

如何看懂上面的输出?  Documentation/usb/usbmon.txt

Bus=01 means it's bus 1.

通过上面的 Vendor=601a ProdID 可以找到我们设备的Bus号。

上面Bus=01。

使用下面的名利,就开始监听 Bus01上的全部USB数据包。

# cat  /sys/kernel/debug/usb/usbmon/1u

要想开始监听 全部 Bus 上的全部USB数据包:

# cat  /sys/kernel/debug/usb/usbmon/0u

一旦有数据包,就会打印出来:

# cat /sys/kernel/debug/usb/usbmon/1u

f07dbb80 3233986312 S Co:1:012:0 s 40 01 80c0 0000 0000 0

f07dbb80 3234327703 C Co:1:012:0 0 0

f07dbb80 3234327880 S Co:1:012:0 s 40 02 0000 0200 0000 0

f07dbb80 3234329561 C Co:1:012:0 0 0

f07dbb80 3234329625 S Bi:1:012:1 -115 32 <

f07dbb80 3234331550 C Bi:1:012:1 -75 32 = 00000000 00000000  。。。

读懂上面的数据,还是要看usbmon.txt

URB tag  :标志

TimeStamp:毫秒数

Event Type:  S - submission,

C - callback,

E - submission error.

URBType:BusNo:DeviceAddr:EndPointNum

Ci Co   Control input and output

Zi Zo   Isochronous input and output

Ii Io   Interrupt input and output

Bi Bo   Bulk input and output

URB Status: 0为没有错误。-XXX是错误码。

linux下usb调试工具,LINUX USB调试相关推荐

  1. Linux下用FFMPEG采集usb摄像头到RTMP

    Linux下用 FFMPEG 采集 usb摄像头视频 和 摄像头内置麦克风音频 到RTMP服务 ffmpeg -f video4linux2 -qscale 10 -r 12 -s 640x480 - ...

  2. Linux下的硬件驱动——USB设备(下)

    Linux下的硬件驱动--USB设备(下)(驱动开发部分) 文档选项 打印本页 将此页作为电子邮件发送 未显示需要 JavaScript 的文档选项 级别: 初级 赵明, 联想软件设计中心嵌入式研发处 ...

  3. Linux下的硬件驱动——USB设备配置以及开发

    Linux下的硬件驱动--USB设备(上)(驱动配置部分) USB设备越来越多,而Linux在硬件配置上仍然没有做到完全即插即用,对于Linux怎样配置和使用他们,也越来越成为困扰我们的一大问题.本文 ...

  4. Linux下的硬件驱动——USB设备

    想起当初对于破安卓手机,挂在系统上可是费了好些劲,今偶遇USB驱动开发,收集备用,哪天一生气,说不定也写一个linux下的手机驱动,类似于91手机助手的,也不用配置了. Linux下的硬件驱动--US ...

  5. 玩转USB HID系列:Linux下使用Python开发USB HID

    玩转USB系列:Linux下使用Python开发USB HID 实验环境 开发步骤 安装pyusb 库 我们来与HID设备通讯! 注意 实验环境 ubuntu 16.04 LTS 64-bit pyt ...

  6. 嵌入式 linux usbmon,浅析linux下替代usbhound的usb总线sniffer抓包模块usbmon安装和使用...

    浅析linux下替代usbhound的usb总线sniffer抓包模块usbmon安装和使用 操作系统: ubuntu 8.10 内核版本: 2.6.27-7-generic ubuntu 8.10内 ...

  7. Linux下基于XScale的USB摄像头图像采集

    1.引言 摄像头分为数字摄像头和模拟摄像头两大类.传统的模拟摄像头,获取图像信息需要先将视频采集设备产生的模拟视频信号经过特定的视频捕捉卡转换成数字信号,进而才能进行存储等处理.数字摄像头可以直接捕捉 ...

  8. linux下使用VS CODE + CMAKE 调试C++程序

    Linux下使用VS Code + CMake 调试c++程序 - 灰信网(软件开发博客聚合)

  9. linux下如何产生core,调试core

    linux下如何产生core,调试core 摘自:http://blog.163.com/redhumor@126/blog/static/19554784201131791239753/ 在程序不寻 ...

  10. Linux下netstat常用,Linux netstat常用命令

    1.统计80端口连接数 netstat -nat|grep -i "80"|wc -l 2.统计httpd协议连接数(查看Apache的并发请求数及其TCP连接状态) ps -ef ...

最新文章

  1. android固定位置滚动文本,android – 滚动文本上方的按钮,按钮固定在底部
  2. mysql 存储引擎的选择_MySQL学习笔记(四):存储引擎的选择
  3. Attaching to process 29139 Could not attach to process.
  4. Security+考试总结
  5. Docker环境下Java应用的最大内存和堆内存的设置
  6. Spring Cloud Security:Oauth2实现单点登录
  7. 阿里、美团、拼多多、网易大厂面试之Redis+多线程+JVM+微服务...
  8. 断开式绑定数据在comboBox中 winform
  9. Kiwi浏览器 MIUI禁第三方广告 ADB停用系统应用
  10. 对话框下的菜单使用setCheck
  11. Ubuntu 20编译安装GCC 7.3.0
  12. 理解辐射校正、辐射定标、大气校正关系
  13. java的mergesort函数_MergeSort -- 归并排序
  14. 如何使用a标签下载文件
  15. 泛微云桥e-birdge之金蝶云之家集成配置手册
  16. DITHER 抖动算法
  17. Java基础知识(五) 字符串与数组
  18. <博弈论> HDU1846
  19. Nginx反向代理及域名解析访问本地项目
  20. 小驼峰法和大驼峰法的区别

热门文章

  1. ehcache memcache redis 三大缓存男高音
  2. [Windows Phone] 为应用添加后台计划任务 – Scheduled Task Agent
  3. from表单提交和JSON区别
  4. wget 地址 连接超时_HttoPool连接池 和Hystrix 服务容错机制
  5. 计算机二级常备知识,2020年计算机二级Office考试必备题库资料!
  6. 如何根据对象获取到对应的表名_Excel VBA 常用对象二
  7. linux如何建立隐藏目录,【Linux】文件与目录的默认权限与隐藏权限
  8. 数据链路层:ARP协议详解(绝对经典)
  9. 设备驱动,字符设备驱动、(总线)设备驱动模型、sysfs文件系统、平台设备驱动
  10. 前端小插件之手写js循环滚动特效