跟踪基于Linux的usb小工具(CDC/NCM)中的流量

跟踪基于Linux的usb小工具(CDC/NCM)中的流量,linux,usb,usb-debugging,Linux,Usb,Usb Debugging,我有一个linux平台*,它作为usb设备连接到作为usb主机的汽车设备。这两台设备应通过CDC/NCM进行通信,但汽车设备无法识别linux平台,因此无法建立连接。令人惊讶的是,与我的计算机的连接已正确建立 我现在需要创建USB连接的跟踪,以便检查USB握手中是否存在无法由汽车设备处理的错误。由于我无法访问USB主机,我需要从小工具端创建跟踪 我尝试使用usbmon和tcpdump,但这似乎只适用于在跟踪平台上配置为主机的USB控制器,而不适用于配置为设备的控制器 如何将usbmon配置为也

我有一个linux平台*,它作为usb设备连接到作为usb主机的汽车设备。这两台设备应通过CDC/NCM进行通信,但汽车设备无法识别linux平台,因此无法建立连接。令人惊讶的是,与我的计算机的连接已正确建立

我现在需要创建USB连接的跟踪,以便检查USB握手中是否存在无法由汽车设备处理的错误。由于我无法访问USB主机,我需要从小工具端创建跟踪

我尝试使用usbmon和tcpdump,但这似乎只适用于在跟踪平台上配置为主机的USB控制器,而不适用于配置为设备的控制器

  • 如何将usbmon配置为也在设备上工作
  • 如果这是不可能的,是否还有其他可能实现这一点?(最好不要攻击任何司机…)
  • 或者我必须使用硬件USB嗅探器
顺便说一句,所有必需的模块(特别是g_ncm)都已正确加载

谢谢你的帮助

斯特凡


*freescale iMX6处理器(ARM)上的自定义发行版,内核版本3.0.35

您可以跟踪PC连接;我假设它是一台Windows PC而不是Linux PC。我猜那是CDC/ACM?有几种串行USB标准,可能不是CDC/ACM吗?如果正确的话,您需要编译模块,并在iMX6/Linux端将gadget设置为CDC/ACM。在iMX6上,KConfig中有一个USB调试。它是NCM,并且必须是NCM,因为汽车设备(汽车头部单元)仅支持NCM。当我连接到Linux PC时,我也使用NCM。由于汽车设备(即USB主机)是一个黑匣子,因此不可能在主机侧创建跟踪。跟踪PC连接没有多大帮助(我已经这样做了),因为这个连接没有失败,但我需要跟踪失败的连接以找到握手/USB初始化中的错误,这可能是由于iMXPlatform或汽车设备中的错误。好的,我看到了驱动程序(gadget/f_nsm.c)。你能编译iMX内核吗?有一个USB调试菜单配置选项;例如,我认为你的USB芯片就是芯片调试。还需要
USB\u G\u NCM
,并且应该加载它。如果将iMX连接到PC,您可以看到一个
lsusb
以查看它是否正在加载并标识为CDC/NSM。
USB小工具调试
USB小工具详细
USB小工具调试文件
小工具调试文件
。这些可能比
CHIPIDEA\u DEBUG
的debugfs条目更有用。