ubuntu16.04使用USB轉TTL(ch340)串口轉usb調試過程

輸入命令: lsmod | grep usbserial
輸入:lsusb
發現了ch341的一些相關信息
輸入命令(查看USB轉串口接入狀態):dmesg
usb 6-1: ch341-uart converter now attached to ttyUSB0
ID信息與lsusb檢測到的一致,ch341-uart converter now attached to ttyUSB0 成功驅動,端口爲ttyUSB0。
再此,確實能看到自帶了驅動,但不要高興。接着往下來

第二步:安裝串口終端軟件,搜到了一個minicom:
sudo apt-get update
sudo apt-get install minicom
sudo minicom -s 設置minicom的端口對應到ttyUSB0(對應使用dmesg命令看到的信息)。
選擇“Serial port setup”,出現串口配置菜單:

輸入A,修改serial device 由/Dev/tty0修改爲/dev/ttyusb0,波特率按實際硬件參數情況修改,我的修改爲115200 8N1,也有19200 8N1的硬件等。
然後返回

選擇 Save setup as dfl
接着選擇Exit退出。
可以再進一次sudo minicom -s,看看參數是否保存好。

1.首先去官網下載最新的驅動,參見某高人的博客:CH340各平臺下驅動
http://www.wch.cn/download/CH341SER_LINUX_ZIP.html
2.下載下來linux版本的驅動
將其拷貝到Linux系統中,在使用之前首先需要將老驅動刪除掉,這樣才能防止即使安裝了新驅動老驅動仍然生效。系統的默認驅動目錄爲:/lib/modules/$(uname -r)/kernel/drivers,老驅動的完整路徑名:/lib/modules/$(uname -r)/kernel/drivers/usb/serial/ch341.ko,我們進入到該目錄下,然後將其刪除掉,如下所示:

root@ubuntu:/#unzip CH341SER_LINUX.ZIP
root@ubuntu:/#cd CH341SER_LINUX
root@ubuntu:/#make
root@ubuntu:/#make load

需要進行如下解決:
1、需要使用gedit編輯器,wait_queue_t 沒有被使用過,查找wait_queue_t(/wait_queue_t 定向找到它,只有一行),所以直接在源碼中註釋掉即可。
2、引入頭文件#include <linux/sched/signal.h>。
然後問題就解決了,可以直接編譯 使用make 然後make load,加載到系統驅動中。

開機自動啓動

Linux系統的驅動默認存放目錄爲: /lib/modules/$(uname -r)/kernel/drivers,因此如果希望系統可以啓動時自動加載驅動必須首先把驅動放到該目錄下面,執行完此步操作以後,再執行 depmod 命令更新驅動依賴關係文件 modules.dep,這一步一定要執行。之後我們重啓系統,就可以發現驅動會自動加載了。

這裏我以 ch341.ko 文件爲例,進行實驗,具體執行步驟如下:

root@ubuntu:/#cp ch341.ko /lib/modules/$(uname -r)/kernel/drivers/usb/serial
root@ubuntu:/#depmod

執行完,重啓就可以了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章