Ubuntu 22.04: ch34x UART Error
USB-TTL模块接入PC后,无法识别为正常的USB接口。接着一系列问题排查过程:
确认USB-TTL模块是否被识别
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16pi@localhost:~$ lsusb
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 003: ID 27c6:5125 Shenzhen Goodix Technology Co.,Ltd. Goodix Fingerprint Device
Bus 003 Device 002: ID 0489:e0df Foxconn / Hon Hai
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 011: ID 0b95:1790 ASIX Electronics Corp. AX88179 Gigabit Ethernet
Bus 002 Device 010: 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 005: ID 13d3:56f8 IMC Networks ov9734_azurewave_camera
Bus 001 Device 003: ID 046d:c52f Logitech, Inc. Unifying Receiver
Bus 001 Device 019: ID 10c4:ea60 Silicon Labs CP210x UART Bridge
Bus 001 Device 028: ID 1a86:7523 QinHeng Electronics CH340 serial converter
Bus 001 Device 020: ID 2207:0006 Fuzhou Rockchip Electronics Company rk3xxx
Bus 001 Device 018: ID 05e3:0610 Genesys Logic, Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hubQinHeng Electronics CH340 serial converter
:表示已经被识别了确认ch34x驱动是否安装
1
2
3
4
5
6
7
8
9
10
11
12
13pi@localhost:~$ lsmod | grep usbserial
usbserial 69632 2 cp210x,ch341
# 或者使用这种方式查询
pi@localhost:~$ ls /lib/modules/$(uname -r)/kernel/drivers/usb/serial
aircable.ko digi_acceleport.ko io_ti.ko kl5kusb105.ko navman.ko qcserial.ko ti_usb_3410_5052.ko whiteheat.ko
ark3116.ko empeg.ko ipaq.ko kobil_sct.ko omninet.ko quatech2.ko upd78f0730.ko wishbone-serial.ko
belkin_sa.ko f81232.ko ipw.ko mct_u232.ko opticon.ko safe_serial.ko usb_debug.ko xr_serial.ko
ch341.ko f81534.ko ir-usb.ko metro-usb.ko option.ko sierra.ko usbserial.ko xsens_mt.ko
cp210x.ko ftdi_sio.ko iuu_phoenix.ko mos7720.ko oti6858.ko spcp8x5.ko usb-serial-simple.ko
cyberjack.ko garmin_gps.ko keyspan.ko mos7840.ko pl2303.ko ssu100.ko usb_wwan.ko
cypress_m8.ko io_edgeport.ko keyspan_pda.ko mxuport.ko qcaux.ko symbolserial.ko visor.kocp210x,ch341
:表示已经加载了cp210x驱动和ch341驱动查看关于tty的系统日志(重点问题)
1
2
3
4
5
6pi@localhost:~$ sudo dmesg | grep tty
[290153.696478] usb 1-2.2: ch341-uart converter now attached to ttyUSB0
[290154.264259] usb 1-2.2: usbfs: interface 0 claimed by ch341 while 'brltty' sets config #1
[290154.266443] ch341-uart ttyUSB0: ch341-uart converter now disconnected from ttyUSB0在浏览器上找到了 brltty 这个进程导致USB-TTL转换失败了。
brltty 是一个后台进程(守护进程),它使用可刷新的盲文显示器为盲人提供对控制台屏幕(在文本模式下)的访问。它驱动盲文显示器,并提供完整的屏幕查看功能。一些语音功能也被纳入其中。
解决方法:卸载brltty,执行命令
sudo apt remove brltty
再次查询
/dev/ttyUSB0
是否存在了:1
2
3pi@localhost:~$ sudo ls /dev/ttyU*
/dev/ttyUSB0如果不是这种原因引起的,那么就可能是ch34x驱动太旧了,需要更新驱动程序。可以到这个地址去下载驱动:CH341SER_LINUX.ZIP