ubuntu22.04 找不到串口,串口ttyusb时断时续的问题(拔插以后能检测到,过会儿就检测不到了)

1. 问题描述

ubuntu22.04的PC,在连接USB串口的时候,有时能找到ttyUSB0,有时找不到,如下:

base) airs@airs-Precision-3630-Tower:~$ ls -l /dev/ttyUSB*
crwxrwxrwx 1 root dialout 188, 0 Aug 17 16:36 /dev/ttyUSB0
(base) airs@airs-Precision-3630-Tower:~$ ls -l /dev/ttyUSB*
crwxrwxrwx 1 root dialout 188, 0 Aug 17 16:36 /dev/ttyUSB0
(base) airs@airs-Precision-3630-Tower:~$ ls -l /dev/ttyUSB*
crwxrwxrwx 1 root dialout 188, 0 Aug 17 16:36 /dev/ttyUSB0
(base) airs@airs-Precision-3630-Tower:~$ ls -l /dev/ttyUSB*
crwxrwxrwx 1 root dialout 188, 0 Aug 17 16:36 /dev/ttyUSB0
(base) airs@airs-Precision-3630-Tower:~$ lsmod | grep usbserial
usbserial              57344  1 ftdi_sio
(base) airs@airs-Precision-3630-Tower:~$ ls -l /dev/ttyUSB*
crwxrwxrwx 1 root dialout 188, 0 Aug 17 16:36 /dev/ttyUSB0
(base) airs@airs-Precision-3630-Tower:~$ ls -l /dev/ttyUSB*
ls: 无法访问 '/dev/ttyUSB*': 没有那个文件或目录
(base) airs@airs-Precision-3630-Tower:~$ ^C
(base) airs@airs-Precision-3630-Tower:~$ ^C
(base) airs@airs-Precision-3630-Tower:~$ ^C
(base) airs@airs-Precision-3630-Tower:~$ ls -l /dev/ttyUSB*
ls: 无法访问 '/dev/ttyUSB*': 没有那个文件或目录
(base) airs@airs-Precision-3630-Tower:~$ ls -l /dev/ttyUSB*
ls: 无法访问 '/dev/ttyUSB*': 没有那个文件或目录
(base) airs@airs-Precision-3630-Tower:~$ ls -l /dev/ttyUSB*
ls: 无法访问 '/dev/ttyUSB*': 没有那个文件或目录
(base) airs@airs-Precision-3630-Tower:~$ ls -l /dev/ttyUSB*
crwxrwxrwx 1 root dialout 188, 0 Aug 17 16:37 /dev/ttyUSB0
(base) airs@airs-Precision-3630-Tower:~$ ls -l /dev/ttyUSB*
crwxrwxrwx 1 root dialout 188, 0 Aug 17 16:37 /dev/ttyUSB0
(base) airs@airs-Precision-3630-Tower:~$ ls -l /dev/ttyUSB*
crwxrwxrwx 1 root dialout 188, 0 Aug 17 16:37 /dev/ttyUSB0
(base) airs@airs-Precision-3630-Tower:~$ ls -l /dev/ttyUSB*
crwxrwxrwx 1 root dialout 188, 0 Aug 17 16:37 /dev/ttyUSB0


在重新插拔以后就能找到,过一会儿或者重新输入指令以后就找不到。芯片用的是 FTI232.lsmod | grep usbserial这个指令是能够看到有驱动的,

(base) airs@airs-Precision-3630-Tower:~$ lsmod | grep ftdi
ftdi_sio               65536  0
usbserial              57344  1 ftdi_sio

这个网站说是驱动被占用,同样的,这个帖子说可以打印相应的log信息可以看一下是否是占用:

(base) airs@airs-Precision-3630-Tower:~$ sudo dmesg|grep -i ftdi*

显示如下,和这个帖子说的问题一样,也是最后disconneted了.

[    2.055330] usb 1-8: Manufacturer: FTDI
[    2.055333] usb 1-8: SerialNumber: FTDESKD4
[    3.413041] usbcore: registered new interface driver ftdi_sio
[    3.413047] usbserial: USB Serial support registered for FTDI USB Serial Device
[    3.413065] ftdi_sio 1-8:1.0: FTDI USB Serial Device converter detected
[    3.419283] usb 1-8: FTDI USB Serial Device converter now attached to ttyUSB0
[    3.941997] usb 1-8: usbfs: interface 0 claimed by ftdi_sio while 'brltty' sets config #1
[    3.942590] ftdi_sio ttyUSB0: FTDI USB Serial Device converter now disconnected from ttyUSB0
[    3.942604] ftdi_sio 1-8:1.0: device disconnected
[   95.934601] usb 1-8: Manufacturer: FTDI
[   95.934605] usb 1-8: SerialNumber: FTDESKD4
[   95.940217] ftdi_sio 1-8:1.0: FTDI USB Serial Device converter detected
[   95.941248] usb 1-8: FTDI USB Serial Device converter now attached to ttyUSB0
[  116.880705] usb 1-8: usbfs: interface 0 claimed by ftdi_sio while 'brltty' sets config #1
[  116.882065] ftdi_sio ttyUSB0: FTDI USB Serial Device converter now disconnected from ttyUSB0
[  116.882110] ftdi_sio 1-8:1.0: device disconnected
[  140.223162] usb 1-8: Manufacturer: FTDI
[  140.223166] usb 1-8: SerialNumber: FTDESKD4
[  140.228639] ftdi_sio 1-8:1.0: FTDI USB Serial Device converter detected
[  140.229643] usb 1-8: FTDI USB Serial Device converter now attached to ttyUSB0
[  145.335555] usb 1-8: usbfs: interface 0 claimed by ftdi_sio while 'brltty' sets config #1
[  145.336732] ftdi_sio ttyUSB0: FTDI USB Serial Device converter now disconnected from ttyUSB0
[  145.336777] ftdi_sio 1-8:1.0: device disconnected
[ 2322.200683] usb 1-9: Manufacturer: FTDI
[ 2322.200687] usb 1-9: SerialNumber: FTDDF5EZ
[ 2322.205846] ftdi_sio 1-9:1.0: FTDI USB Serial Device converter detected
[ 2322.207451] usb 1-9: FTDI USB Serial Device converter now attached to ttyUSB0
[ 2344.201004] usb 1-9: usbfs: interface 0 claimed by ftdi_sio while 'brltty' sets config #1
[ 2344.202689] ftdi_sio ttyUSB0: FTDI USB Serial Device converter now disconnected from ttyUSB0
[ 2344.202732] ftdi_sio 1-9:1.0: device disconnected

找到问题以后,按照上面两个网站里的说法,执行sudo apt remove brltty把brltty删掉,发现不管怎么删,还剩一个:

(base) airs@airs-Precision-3630-Tower:~$ sudo dmesg | grep brltty
[    4.032228] usb 1-9: usbfs: interface 0 claimed by ftdi_sio while 'brltty' sets config #1

于是再次搜索usbfs: interface 0 claimed by等关键词,发现了这个方法: 通过禁用掉该服务的方式,有效解决方法,这里面详细解释了为什么ttyUSB,重新插拔以后能够检测到,过会儿就找不到了,原来是该设备连接到了 ttyUSB0 端口,突然被一个叫 brltty 的进程一脚踹掉了.按照上述网站的方法禁用掉以后,就可以稳定的检测到ttyUSB0了

(base) airs@airs-Precision-3630-Tower:~$ ls -l /dev/ttyUSB*
crwxrwxrwx 1 root dialout 188, 0 Aug 17 17:57 /dev/ttyUSB0
(base) airs@airs-Precision-3630-Tower:~$ ls -l /dev/ttyUSB*
crwxrwxrwx 1 root dialout 188, 0 Aug 17 17:57 /dev/ttyUSB0
(base) airs@airs-Precision-3630-Tower:~$ ls -l /dev/ttyUSB*
crwxrwxrwx 1 root dialout 188, 0 Aug 17 17:57 /dev/ttyUSB0
(base) airs@airs-Precision-3630-Tower:~$ ls -l /dev/ttyUSB*
crwxrwxrwx 1 root dialout 188, 0 Aug 17 17:57 /dev/ttyUSB0
(base) airs@airs-Precision-3630-Tower:~$ ls -l /dev/ttyUSB*
crwxrwxrwx 1 root dialout 188, 0 Aug 17 17:57 /dev/ttyUSB0
(base) airs@airs-Precision-3630-Tower:~$ ls -l /dev/ttyUSB*
crwxrwxrwx 1 root dialout 188, 0 Aug 17 17:57 /dev/ttyUSB0
(base) airs@airs-Precision-3630-Tower:~$ ls -l /dev/ttyUSB*
crwxrwxrwx 1 root dialout 188, 0 Aug 17 17:57 /dev/ttyUSB0
(base) airs@airs-Precision-3630-Tower:~$ ls -l /dev/ttyUSB*
crwxrwxrwx 1 root dialout 188, 0 Aug 17 17:57 /dev/ttyUSB0
(base) airs@airs-Precision-3630-Tower:~$ ls -l /dev/ttyUSB*
crwxrwxrwx 1 root dialout 188, 0 Aug 17 17:57 /dev/ttyUSB0

你可能感兴趣的:(linux,ubuntu)