我在尝试对 ESP8266 开发板进行编程时遇到了这个问题,该开发板使用编程接口中的 CH341 芯片作为 USB 转串行接口。从 19.10 升级到 20.04(我昨天执行的)后出现了这个问题。
这是我正在使用的内核:
$ uname -r
5.4.0-58-generic
当我将 ESP8266 开发板 (Wemos D1 mini) 连接到 USB 时,系统日志 (或 dmesg) 上没有任何活动,并且内核模块未加载。事实上,我没有在 /dev 目录中看到 /dev/ttyACM0 设备,Arduino GUI 中也没有出现任何有用的设备。
我在内核树中找到了模块,但是即使强制安装,也没有任何反应:
augusto@Legion:~$ ls /usr/lib/modules/5.4.0-58-generic/kernel/drivers/usb/serial/ch*
/usr/lib/modules/5.4.0-58-generic/kernel/drivers/usb/serial/ch341.ko
augusto@Legion:~$ sudo modprobe ch341
[sudo] password di augusto:
augusto@Legion:~$ lsusb
Bus 002 Device 002: ID 05e3:0626 Genesys Logic, Inc. USB3.1 Hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 13d3:56a6 IMC Networks Integrated Camera
Bus 001 Device 005: ID 0cf3:e500 Qualcomm Atheros Communications
Bus 001 Device 006: ID 046d:c517 Logitech, Inc. LX710 Cordless Desktop Laser
Bus 001 Device 004: ID 093a:2510 Pixart Imaging, Inc. Optical Mouse
Bus 001 Device 002: ID 05e3:0610 Genesys Logic, Inc. 4-port hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
augusto@Legion:~$ lsmod | grep ch34
ch341 20480 0
usbserial 53248 1 ch341
如果没有这个模块,除了名为 Wemos D1 Mini 之外,就不可能与相关数量的 SBC 设备一起工作。
为了解决这个问题,我还从https://github.com/juliagoda/CH341SER并在我的电脑上进行编译,但存在模块签名问题。
如果该小组无法提供任何帮助,我将非常感激能够将我引导至一个更有针对性的小组。
感谢您的任何帮助。
答案1
这是误报,因为我使用的两根电缆都不能正常工作,其中一根(升级后刚使用的那根)时好时坏。今天我使用了第三根电缆和一个新的 Wemos(你说的偏执狂)来准备 apport 的错误报告,模块已加载,一切正常。
答案2
我遇到了类似的问题:
我想在 VirtualBox(客户机 Ubuntu 21.10)中使用 ESP32 开发板。根据内核配置(/boot/config-`uname -r`
)ch341
构建为模块。但默认的 Ubuntu 安装不会linux-modules-extra-`uname -r`
默认安装。因此安装它可以解决设备连接到的问题/dev/ttyUSB0
。现在可以在 USB 下的 VirtualBox 机器设置中将 ESP32 开发板添加为过滤器。