Ubuntu串口驱动安装及串口权限设置

在作Ubuntu串口调试时候的一些问题总结,供大家参考,也帮助自己记录一下。

一、背景:系统版本Ubuntu18.04 控制板:stm32F103

二、驱动安装,TTL转usb串口,ch340驱动

1.lsmod | grep usbserial命令查看系统是否支持USB转串口
有会提示:usbserial 49152 1 ch34x

在这里插入图片描述
2.如果没有就要安装CH340驱动:http://www.wch.cn/download/CH341SER_LINUX_ZIP.html
可以下载到任意目录(常用的)解压后得到三个文件ch34x.c,makefile,readme
3.查看自己系统的版本号:uname -r
4.对应版本号复制驱动代码到ch34x.c替换
网址:https://elixir.bootlin.com/linux/v5.4.42/source/drivers/usb/serial/ch341.c
5.cd 到CH341SER_LINUX下
sudo make 编译
sudo make load 加载
6.lsmod 如果有ch340说明驱动安装成功
在这里插入图片描述
7.ls /dev | grep tty 查看是否有ttyusb0,这一步前提是插入了串口设备,我的板子就串口松动,总 是找不到,如果设备没问题就会有ttyusb0的,或者换几个U口试一试。
在这里插入图片描述
在这里插入图片描述

8.小结:按我所参考的多个帖子来讲,以上办法安装的驱动每次重启都要make load一下,解决办法:
执行sudo cp -v ch34*.ko /lib/modules/5.4.0-66-generic/kernel/drivers/usb/serial/ 其中5.4.0- 42-generic根据自己版本修改,再执行sudo depmod -a重启即可。
但我的机器没有进行上述操作, 重启后也依然可以找到串口,从上述路径下有ch341.ko文件,这个文件我不清楚以前有没有,或者是系统自行安装了驱动?还望大家指点

三、串口权限问题

1.在我们执行查看串口的命令 ls -l /dev/ttyUSB* 时会提示无法访问,但这个时候有两种情况,一种是你的设备硬件连接有问题,另一种就是权限问题
2.设置串口权限:
方法一、创建文件/etc/udev/rules.d/70-ttyusb.rules
打开并编辑sudo gedit /etc/udev/rules.d/70-ttyusb.rules
添加:KERNEL==“ttyUSB[0-9]*”, MODE=“0666”
增加访问权限sudo chmod 666 /dev/ttyUSB0
方法二、 将用户加入到dialout用户组,命令:sudo usermod -aG dialout XXX,XXX为自己的用户名字,就是@前面那部分。
这两种方法的原理烦请明白的大佬指点一下!

四、总结

我主要是两方面问题,一是对应驱动的安装,二是访问串口的权限问题,按参考贴的教程将问题解决,感谢大佬们的技术支持,存疑的地方请大家指出,谢谢!

驱动参考:https://blog.csdn.net/ldw_wdl/article/details/108417301
权限参考:https://blog.csdn.net/sonictl/article/details/52918907

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐