调试cdc-acm内核模块

3

我正在尝试解决Ubuntu上的一个问题(包括最新的13.10),使用CDC/ACM与USB设备通信,但在其中一个接口上遇到了困难。处理此类设备的内核模块仅报告

cdc_acm 6-2:1.1:此设备无法自行拨打电话。 它不是调制解调器。

cdc_acm:对6-2:1.1进行探测时发生错误-22

dmesg中没有“零长度描述符引用”或其他一些人在网上报告的类似问题。因此,我想找出问题可能出在哪里。我按照http://www.silly-science.co.uk/2012/06/23/lenovo-usb-modem-in-linux-ubuntu-10-04中的说明编译和加载自定义cdc-acm模块。首先,我更改了cdc-acm.c中两个#undef为debug的#define,但我仍然在dmesg中没有获得任何其他输出。

通过将cdc-acm.c的DRIVER_VERSION定义中的版本字符串更改为其他内容,我可以验证我的修改后的模块确实已加载。我是在错误的地方查找调试输出吗?

1个回答

1
我成功地从dmesg中获得了来自cdc_acm的调试信息,尽管我没有什么特别的分享,但这是我的步骤,使用最新的内核,截至今天4.2-rc5:
  1. 在cdc-acm.c中将DEBUGVERBOSE_DEBUG#undef更改为#define
  2. make -C /lib/modules/$(uname -r)/build M=$(pwd)/drivers/usb/class modules
  3. modprobe -r cdc_acm; insmod $(pwd)/drivers/usb/class/cdc-acm.ko
  4. 插入兼容设备后执行dmesg

[...]

[14035.355036] cdc_acm 2-2:1.1: acm_tty_write - 写入 1

[14035.368040] cdc_acm 2-2:1.1: acm_softint

[14038.156445] cdc_acm 2-2:1.0: acm_tty_close

[14038.173054] cdc_acm 2-2:1.0: acm_ctrl_msg - 请求 0x22,值 0x0,长度 0x0,结果 0

[14038.173059] cdc_acm 2-2:1.0: acm_port_shutdown

[14038.173640] cdc_acm 2-2:1.0: acm_ctrl_irq - urb 停止运行,状态为:-2

[14038.174636] cdc_acm 2-2:1.1: acm_read_bulk_callback - urb 0,长度 0

[...]


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接