本帖最后由 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
下载后解压
- cd CH341SER_LINUX/driver/
- make
- sudo make install
- 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#p2002314和https://unix.stackexchange.com/q ... rial-converter-chip
先定位问题,重插板子,执行命令sudo dmesg,输出中查找与ch340/ch341相关的信息
可以看到串口ttyCH341USB0连上后自动断开了连接,提示信息usbfs: interface 0 claimed by ch341 while 'brltty' sets config #1
网上查询之后得知CH340和brltty的VendorID冲突
定位brltty.rules文件
- find /usr/lib -name *brltty*.rules
复制代码 我的情况是/usr/lib/udev/rules.d/85-brltty.rules
- sudo gedit /usr/lib/udev/rules.d/85-brltty.rules
复制代码 打开brltty.rules文件后查找1a86
用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为自己的用户名
重启系统后烧录成功
|