目錄
- 查看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】
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/276302.html
標籤:其他
