发布
社区首页 >问答首页 >usbmon有多个节点

usbmon有多个节点
EN

Unix & Linux用户
提问于 2017-07-15 11:14:56
回答 1查看 577关注 0票数 0

为什么usbmon在/sys/kernel/debug/usb/usbmon/文件夹中有多个节点用于单个总线(比如2s,2u,2t)?

当我试图用我的设备嗅探usb的交易时,它看起来像是错过了一些USB帧。(我的应用程序使用U2F-HiD与设备通信,有些数据包超过128个字节。)

什么是正确的方法来嗅探所有的贸易,并将其解析成可用的形式?(任何教程都会非常有用)现在我只使用重定向到文件的cat

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2017-07-15 12:30:28

来自内核源代码中的Documentation/usb/usbmon.txt

目前支持两种格式:原始格式或“1t”格式和“1U”格式。内核2.6.21中不推荐使用“1t”格式。“1U”格式增加了一些字段,如ISO帧描述符、间隔等。它产生稍长的行,但否则是'1t‘格式的完美超集。

然后继续解释这些字段的含义。1s等节点提供了某种状态(比如nreaders =读取器数量= usbmon事件的使用者),但是我不知道细节,而且从来不用使用它们。

您可以使用像wireshark电压分析仪分析仪这样的工具来更舒适地分析流量。通过tcpdump捕获和用wireshark进行死后分析也是可能的:

代码语言:javascript
代码运行次数:0
复制
sudo tcpdump -i usbmon1 -w usbmon.pcap &

编辑

您可以将usbmon.pcap文件加载到wireshark中,就像tcpdump或其他获得的其他pcap一样。

IIRC、usbhid-dump读取并转储内核获得的HID描述符(因此它不能通过交换消息获得它),并且有一些内核API更改和/或您必须解除USB设备的绑定才能访问HID,但我忘记了细节。

您可以通过挂载debugfs直接访问HID描述符,包括原始的和内核解析的。

代码语言:javascript
代码运行次数:0
复制
mount -t debugfs none /sys/kernel/debug

然后看看/sys/kernel/debug/hid/<dev>/rdeschid-rd还可以解析原始HID描述符。

如果您只是在HID报告之后,使用相应的hidraw设备。

票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/378630

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档