目录
查看usb串口号
下载pl2303 USB转串口驱动
安装步骤
查看效果
给串口权限
查看usb串口号
最近买了一条绿联的USB转串口线(pl2303),在win10里能直接用,但在Ubuntu里发现找不到串口。。。
一般来说ubuntu都装有pl2303等常见USB转串口驱动,特别是340、341这些,但是也容易出现插上usb转串口线后找不到串口的情况如:
查看usb串口号
python -m serial.tools.list_ports
【出现上图如果不是USB转串口的线坏了,就很有可能是因为串口驱动的事】
(判断是否是USB转串口的线坏了的方法:可以插在win系统下,一般情况下设备管理器里会识别到)
下载pl2303 USB转串口驱动
我已经发在博客上了,免积分下载喔(希望三连哈~)
https://download.CSDN.net/download/xx970829/16663442
安装步骤
1.解压:进入下载/PL2303GT驱动/Linux/PL2303G_Linux_Driver_v1.0.4/
2.查看电脑内核版本
uname -r
(我的是5.4.0的哈,不过这好像跟文件夹里的“5.2_ok”没有太大关系,不过自己编译时很容易出现没有对应内核头文件的错,但是与自己最后驱动路径有关系)
3.安装驱动
进入比如“5.2_ok”文件夹打开终端运行
make all
sudo rmmod pl2303.ko
sudo insmod pl2303.ko
sudo cp pl2303.ko /lib/modules/$(uname -r)/kernel/drivers/usb/serial
(完全按照“readme.txt”时最后一句得把“uname r”改为“uname -r”)
4.拷贝pl2303.ko文件
sudo cp /lib/modules/5.4.0-70-generic/kernel/drivers/usb/serial/pl2303.ko /usr/src/linux-headers-5.4.0-70-generic/drivers/usb/serial
(注意把“5.4.0-70-generic”改为自己对应的内核版本名)
然后执行:
sudo modprobe usbserial
sudo modprobe pl2303
查看效果
此时应该是能识别到串口了
输入:dmesg | tail
发现多了一个:pl2303
输入: python -m serial.tools.list_ports
也能看见多了一个USB串口号:/dev/ttyUSB0
给串口权限
有时插上串口, 通过“python -m serial.tools.list_ports”指令能看见串口号,但是通过程序(ros或qt的串口类)运行时发现打不开串口
这种情况多是因为串口权限的问题
解决方法1
给单个串口权限
sudo chmod 666 /dev/ttyUSB0
该方法每次执行都需要给串口权限,不太方便。。。
解决方法2
建立.rules文件
sudo gedit /etc/udev/rules.d/20-usb-serial.rules
在.rules文件里写入:
KERNEL=="ttyUSB*" MODE="0666"
然后执行:
sudo service udev reload
sudo service udev restart
这样就不用每次给串口权限了。。。
【关于.rules文件固定设备串口号可参考我另一篇博客:https://blog.csdn.net/xx970829/article/details/115529204】
————————————————
版权声明:本文为CSDN博主「Unite One」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/xx970829/article/details/115678890