CDC ACM 无法在自定义 Linux 内核中工作

CDC ACM 无法在自定义 Linux 内核中工作

我有一个 cubieboard2,运行带有自定义 Linux 内核的 arch linux。在我插入 USB 串行设备(如 arduino)的 cubieboard2 中,该设备被识别为 CDC ACM。我的 Linux 内核在配置中启用了 CDC 选项,正如我在此看到的,但是,我无法使用/dev/ttyACM0应用程序minicom或来使用串行端口pyserial

Minicom只是说无法打开串口。 Pyserial 能够打开端口,但是当我尝试读取它时,结果是:

SerialException:设备报告已准备好读取,但未返回任何数据(设备已断开连接或端口上有多个访问?)

然而,pyserial如果我尝试写入一个字节,结果是其他的:

SerialException:写入失败:[Errno 5] 输入/输出错误。

当我关闭串口时,会发生其他奇怪的事情,它会更改名称,换句话说,当我关闭它时,/dev/ttyACM0它会更改为/dev/ttyACM1.

我已经在笔记本电脑上尝试了我的设备,它与pyserial和都可以正常工作minicom

cubieboard2信息:

$ uname -a
Linux alarm 3.4.61-rt77-ARCH+ #10 SMP PREEMPT RT Thu Apr 17 13:58:20 BRT 2014 armv7l GNU/Linux

我的内核配置文件:http://pastebin.com/raw.php?i=6LfsRyek

我的猜测是它缺少启用某些内核选项,但我不知道是哪个。

任何想法?

答案1

在我看来,问题出在你的设备上。它可能会枚举 OK,但在执行进一步通信时会出现意外行为。尝试将 Wireshark 与 usbmon 结合使用(如果没有 X 会话,则最终使用 tshark)。 ttyACM1 名称通常是由于通信错误后重新枚举造成的。

相关内容