ubuntu系统M61-32S烧录踩坑记录

[复制链接]
查看937 | 回复7 | 2023-12-11 22:16:37 | 显示全部楼层 |阅读模式
本帖最后由 hdydy 于 2023-12-16 18:15 编辑

M61-32S板子插电脑后没有反应,命令ls /dev不出现ttyUSB0
更新:应该先解决brltty服务引起的冲突。解决之后,如果系统自带驱动可以成功烧录,则不用重装驱动。重装驱动出现的串口是/dev/ttyCH341USB0,有些软件(例如arduino,vscode arduino插件)不能识别该串口。

1.安装驱动(可选操作)
下载链接https://www.wch.cn/download/CH341SER_LINUX_ZIP.html
下载后解压
  1. cd CH341SER_LINUX/driver/
  2. make
  3. sudo make install
  4. ll /lib/modules/$(uname -r)/kernel/drivers/usb/serial | grep ch34
复制代码
重启系统后,如果出现串口/dev/ttyCH341USB0,则驱动安装成功,否则继续查找其他原因

2.CH340和brltty的VendorID冲突
参考https://bbs.archlinux.org/viewtopic.php?pid=2002314#p2002314https://unix.stackexchange.com/q ... rial-converter-chip
先定位问题,重插板子,执行命令sudo dmesg,输出中查找与ch340/ch341相关的信息
dmesg-info.png
可以看到串口ttyCH341USB0连上后自动断开了连接,提示信息usbfs: interface 0 claimed by ch341 while 'brltty' sets config #1
网上查询之后得知CH340和brltty的VendorID冲突
定位brltty.rules文件
  1. find /usr/lib -name *brltty*.rules
复制代码
我的情况是/usr/lib/udev/rules.d/85-brltty.rules
  1. sudo gedit /usr/lib/udev/rules.d/85-brltty.rules
复制代码
打开brltty.rules文件后查找1a86
brltty-info.png
hardinfo查看硬件信息,可以看到CH340和brltty都使用了1a86/7523
网上很多办法是卸载或禁用brltty服务,或删除brltty.rules文件,这里不推荐这些办法
影响最小的解决办法,将ENV{PRODUCT}=="1a86/7523/*"所在行注释掉,也就是在行首插入字符#,保存,重启系统

3.烧录时提示Permission denied
命令ll /dev/ttyCH341USB0查看ttyCH341USB0的属性,ttyCH341USB0的owner是root,所属用户组为dialout
普通用户不在dialout组内,没有ttyCH341USB0的读写权限
解决办法,将用户添加进dialout组,sudo usermod -aG dialout username,其中username为自己的用户名
重启系统后烧录成功

回复

使用道具 举报

爱笑 | 2023-12-12 08:46:21 | 显示全部楼层
你这边点文末的编辑,直接二次编辑即可。
用心做好保姆工作
回复 支持 反对

使用道具 举报

曹县 | 2023-12-12 08:58:33 | 显示全部楼层
回复

使用道具 举报

干簧管 | 2023-12-12 09:10:18 | 显示全部楼层
回复

使用道具 举报

AXK123456 | 2023-12-12 10:17:25 | 显示全部楼层
学习学习
回复

使用道具 举报

lazy | 2023-12-12 13:39:07 | 显示全部楼层
回复

使用道具 举报

1084504793 | 2023-12-12 18:26:24 | 显示全部楼层
学习
回复

使用道具 举报

心云 | 2023-12-15 10:33:08 | 显示全部楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则