发现相对于Windows ,Linux的编译速度实在是太快了,就寻思着用Linux来写ESP32的代码,但是一直有 Something went wrong while getting the serial port list
的错误,所以就一直拖着。今天晚上有空,寻思着把开发环境搞一搞。
首先,我使用的系统是基于 Ubuntu 的 Zorin 17.1,在开发版直接连上电脑后,ls /dev
里在设备连接前后没有变化。我以为是驱动问题,就先更新驱动
更新 CH340 的驱动
前往 https://www.wch.cn/download/CH341SER_LINUX_ZIP.html 下载对应的Linux驱动,之后按照里面MarkDown文件直接进行编译,后来出现了 Loading of unsigned module is rejected
的问题,发现是驱动签名的问题,解决方案是在下载的 driver/Makefile
里面最上面加上
CONFIG_MODULE_SIG=n
之后在 driver
目录里执行
make
sudo make install
驱动便成功安装。但是此时 /dev
下依然没有对应的设备,sudo dmesg | tail
[ 1898.588795] usb 3-1.3: usbfs: interface 0 claimed by usb_ch341 while 'brltty' sets config #1
[ 1898.591927] usb_ch341 3-1.3:1.0: ch341 usb device disconnect.
发现是BRLTTY(一种用于盲人的屏幕阅读软件)识别了设备,并将其作为键盘设备。这个软件对于我们目前来说是没用的,直接卸载怕依赖关系出现问题,所以我们选择禁用它
systemctl stop brltty-udev.service
systemctl mask brltty-udev.service
systemctl stop brltty.service
systemctl disable brltty.service
此时/dev下出现了ttyCH341USB0设备,说明这个设备终于成功被识别上并且装上驱动了,但是现在去 VSC还是有 Something went wrong while getting the serial port list
的问题。
授予用户串口的访问权限
直接使用 minicom -D /dev/ttyCH341USB0 -b 115200
,报错:minicom: 无法打开文件 /dev/ttyCH341USB0: 权限不够
,但是 sudo minicom -D /dev/ttyCH341USB0 -b 115200
可以正常使用到串口,并且接受单片机的正常串口输出,说明驱动已经没问题呢,是权限配置有问题。
我们开始配置自己的权限。
sudo usermod -aG dialout <你的用户名> # 串口设备在Linux系统中属于 dialout 组,将自己加入 dialout 组之后通常可以直接获取串口的权限(你可能需要重启电脑)
# 如果重启后依然没有串口的权限
sudo chmod g+rw /dev/ttyCH341USB0
sudo usermod -aG uucp <你的用户名>
# 之后重启
此时执行 minicom -D /dev/ttyCH341USB0 -b 115200
应该可以正常获取串口的内容了,但是打开 VSC 之后,你发现当你想要切换串口时,Something went wrong while getting the serial port list
依然出现,查看 ESP-IDF 日志,发现获取的串口列表是空的。用 ESP-IDF 的 Python环境,发现直接操作也不能获取串口列表,重新装 pyserial
之后问题依旧
直接配置 VSC 的配置文件
用VSC打开VSC的插件配置文件夹,即 用户文件夹/.vscode/extensions
,将 /dev/ttyUSB0
全部置换为 /dev/ttyCH341USB0
,之后重启VSC,重新回到你的工程文件夹,这时候你就可以惊喜的发现,现在的串口改成了 /dev/ttyCH341USB0
,现在你可以正常下载程序、查看输出了,算是一种折中的办法吧
由此,你可以在 Linux 系统下享受 快速的 编译速度,继续你的 ESP32 开发之旅吧!
参考
https://blog.csdn.net/watershade2010/article/details/134642771
https://blog.csdn.net/qq_39851127/article/details/125988455
https://blog.csdn.net/WCH_TechGroup/article/details/134945508
Comments NOTHING