我们有一个在嵌入式平台上运行的定制 Linux 发行版(通过 buildroot 创建)。我们需要通过 USB 端口连接这个继电器模块(该模块基于 ATmega32U2 微控制器)。
在 Windows 上测试设备时,驱动程序是通过 .inf 安装的,一切正常。我还有一台运行 Ubuntu 16.04 的机器,它可以识别设备(作为 ttyACM0),无需额外安装。但是,在我们的嵌入式平台上,它不起作用。
当我尝试 admesg
时,该设备似乎已被识别:
[10902.840000] usb 1-2.3: new full-speed USB device number 8 using s5p-ehci
[10902.945000] usb 1-2.3: New USB device found, idVendor=03eb, idProduct=2018
[10902.945000] usb 1-2.3: New USB device strings: Mfr=0, Product=0, SerialNumber=0
但它没有出现在/dev
. 这可能是什么原因?很明显,我们的发行版缺少识别此类设备的功能(因为它显示与其他设备(如打印机或 USB 驱动器)没有问题),但是什么?
正如评论中所建议的,在内核中包含“CDC-ACM”模块解决了这个问题。继电器模块被识别为“ttyACM0”,它工作得很好。