插入esp32s3设备到Ubuntu中后,有插入设备的图标进行显示,但无法正常下载程序,在/dev/ttyUSB*中也找不到插入的设备信息。
但在ESP-IDF中,找不到刚插入的esp32s3设备,无法进行正常的程序烧写工作
通过如下命令可以查询到插入的USB串口设备存在
tony99@ubuntu:~/Desktop$ lsusb
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 011: ID 1a86:7523 QinHeng Electronics CH340 serial converter
Bus 001 Device 004: ID 0e0f:0008 VMware, Inc. Virtual Bluetooth Adapter
Bus 001 Device 003: ID 0e0f:0002 VMware, Inc. Virtual USB Hub
Bus 001 Device 002: ID 0e0f:0003 VMware, Inc. Virtual Mouse
Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
需要将插入的设备映射出来,找到设备的挂载地址,才可以进行程序烧录操作。
通过 ls /dev/tty*,依然没有查找到设备
通过清除掉系统内核日志记录,打印显示与USB串口设备相关的内核消息后,发现如下问题
tony99@ubuntu:~/Desktop$ sudo dmesg --clear
tony99@ubuntu:~/Desktop$ sudo dmesg | grep "tty"
[ 1793.858950] usb 1-2.2: ch341-uart converter now attached to ttyUSB0
[ 1794.463105] usb 1-2.2: usbfs: interface 0 claimed by ch341 while 'brltty' sets config #1
[ 1794.469338] ch341-uart ttyUSB0: ch341-uart converter now disconnected from ttyUSB0
内核日志很清楚的说明了问题所在,即当USB串口设备(基于ch341-uart转换器)被插入时,它最初是被正确地连接到ttyUSB0
。但是,紧接着brltty
(一个为盲人或视障者设计的终端驱动程序)尝试设置该设备的配置,导致ch341-uart转换器被断开。
也就是brltty程序和ch341-uart冲突了,导致插入的esp32s3设备无法正常使用
起初尝试过将brltty禁用,但禁用后依然会干扰ch341/ch340设备的使用,通过查找相关的资料发现brltty这是一个精灵进程,是Ubuntu22.04中加入的。
开发过程中暂时没有对brltty使用的需求,卸载brltty后串口设备正常映射到 /dev/ttyUSB0
ESP-IDF中也可以正常识别/dev/ttyUSB0设备,程序正常烧录下载。