调试cdc-acm内核模块

时间:2014-04-13 20:43:24

标签: linux kernel-module cdc

我正在尝试解决我在Ubuntu上遇到的问题(尝试了不同的版本,包括最新的13.10),USB设备在其中一个接口上说CDC / ACM。处理此类设备的内核模块仅报告

  

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模块。首先,我将调试中的两个#undef更改为cdc-acm.c中的#define,但我仍未在dmesg中获得任何其他输出。

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

1 个答案:

答案 0 :(得分:0)

我设法从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. 插入兼容设备后
  5. dmesg
  6. [...]

    [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 - rq 0x22,val 0x0,len 0x0,result 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,len 0

    [...]