ESP32-WROVER CAM及ESP32-CAM无法通过USB连接Linux的问题求助
解决ESP32-WROVER CAM/ESP32-CAM在Linux下连接断开的问题
从你提供的dmesg日志可以明确问题根源:brltty(盲文终端服务)与CH341串口驱动抢占了USB设备接口,导致带摄像头的ESP32模块连接后立即断开。
日志中关键报错信息:
usb 1-3.4.2: usbfs: interface 0 claimed by ch341 while 'brltty' sets config #1
带摄像头的ESP32-WROVER CAM和ESP32-CAM使用的是CH340/CH341芯片的USB转串口,而无摄像头的ESP32-WROVER用的是CP2102芯片,brltty未对该芯片的接口进行抢占,因此能正常连接。
解决方案
1. 临时修复(立即生效,重启后恢复)
停止brltty服务,然后重新插拔ESP32模块:
sudo systemctl stop brltty
之后可以通过dmesg -w验证连接状态,或在PlatformIO中重新识别设备。
2. 永久禁用brltty(无需盲文功能时推荐)
彻底关闭brltty的开机自启与运行:
sudo systemctl stop brltty sudo systemctl disable brltty sudo systemctl mask brltty
3. 保留brltty仅排除CH340/CH341设备
若需要继续使用brltty,可修改其udev规则,让它忽略CH340/CH341设备:
- 编辑brltty的udev规则文件:
sudo nano /usr/lib/udev/rules.d/85-brltty.rules
- 找到包含
1a86:7523(CH341的VID:PID)的规则行,在行首添加#注释掉该行 - 保存退出后,重新加载udev规则:
sudo udevadm control --reload-rules && sudo udevadm trigger
- 重新插拔ESP32模块即可正常连接
PlatformIO配置优化建议
原配置中使用的esp-wrover-kit是针对标准开发板的,建议改为适配CAM模块的board型号,示例配置:
[env:esp32wrovercam] platform = espressif32@3.5.0 board = esp32wrovercam framework = arduino board_build.f_flash= 80000000L board_build.flash_mode = qio board_build.partitions = huge_app.csv build_flags = -DBOARD_HAS_PSRAM -mfix-esp32-psram-cache-issue monitor_speed = 115200 upload_port = /dev/ttyUSB0
内容的提问来源于stack exchange,提问作者Grant
相关产品推荐
相关产品推荐

