安装USB转串口驱动#
在做 UART 实验时,一般采用了电脑和单片机两台设备通信。单片机上有串口,但现在电脑上一般没有串口,需要外接 usb转串口小板,再拿线将串口小板和单片机串口连起来。但是,Ubuntu 不一定能够看到此串口。
Key Points#
查看是否已安装usb转串口驱动;
安装 usb 转串口驱动
解决与brltty地址冲突问题 (非常高的可能性)
重要资料
CH340 dev ttyUSB not showing Linux, but detected in terminal
说明
cp 和 ch 芯片的 usb 转串口驱动是相同的,在 Ubuntu 上完全一样;
下载的 Linux 源码驱动是 CH340,编译后,好像得到的是 CH341,不影响使用
查看串口#
Linux 上查看串口的命令#
现代一点的 Ubuntu 版本(如 2022)一般都预装了 CH341 的串口驱动,但排除故障时,还是得从这一步开始:
ls /dev/tty*
其它命令#
下面的命令也常被用来查看已安装的串口驱动。例如直接查看安装过的驱动文件
ls /lib/modules/$(uname -r)/kernel/drivers/usb/serial
或者:
cd /lib/modules/$(uname -r)/kernel/drivers/usb/serial
ls
lsusb#
插入设备后,使用 lsusb 可以列出 usb 接口名字列表,但它的名字和 ls /dev/tty* 得到的结果是不同的。例如:
$ lsusb
Bus 001 Device 022: ID 1a86:7523 QinHeng Electronics CH340 serial converter
Bus 001 Device 019: ID 1a86:55d4 QinHeng Electronics USB Single Serial
lsmod#
lsmod
usb 转串口的名字#
一般都是用的 cp2102, 或者替代的 CHxxx 芯片,它们可能是兼容的。后者可以安装。
usb 转串口的名字一般是:
ttyACM* : pyWifi-ESP32 开发板连接到 USB 口号,就叫这个名字
ttyUSB* : 串口小板如果使用的是 cp2102 芯片,名字可能是 /dev/ttyCH341USB0
ESP32 开发板的名字又不相同。
处置方法#
如果串口驱动如果没有安装,那么就会显示不出以上设备。需要先 安装串口驱动 。
但也有可能,在 lsusb 时,可以看到设备,但在 ls /dev/tty* 时,又看不到设备,这是因为端口号冲突。
安装USB转串口驱动#
删除旧驱动#
$ cd /lib/modules/$(uname -r)/kernel/drivers/usb/serial
# backup
sudo mv ch341.ko ch341.ko.backup
# or remove
sudo rm ch341.ko
编译和安装新驱动#
下载
https://github.com/juliagoda/CH341SER
http://www.wch.cn/download/CH341SER_LINUX_ZIP.html
编译与安装
make sudo make load
手动安装。将编译出来的结果复制到系统上的 usb/serial 目录
cp ch341.ko /lib/modules/$(uname -r)/kernel/drivers/usb/serial
重拨插,用 ls /dev/tty* 检查,如果成功即结束,否则下一步
重启。用 ls /dev/tty* 检查,如果成功即结束,否则可能有端口号冲突问题。
与brltty地址冲突问题#
见下面文章的后半部分
CH340 dev ttyUSB not showing Linux, but detected in terminal
安装串口助手 Cutecom#
sudo apt install cutecom
更多说明: