Linux下串口調試工具
一.minicom
minicom作為串口調試工具,想必是搞嵌入式開發人員都知道的。使用起來比較方便,燒錄image的速度也很快。但是界面風格和顏色難以修改,不夠美觀;同時也不是特別穩定。不過這並不影響它成為最通用的串口調試工具之一。
A.minicom的安裝
ubuntu系統下:sudo apt-get install minicom
B.連接串口設備或是USB轉串口設備(筆記本無串口的情況用的多)
通過插拔設備,比較插拔前后的差別,確認設備。如果直接接串口的可查看ll /dev/tty*的變化,如果使用的是USB轉串口,請查看ll /dev/ttyUSB?。
C.minicom的設置
輸入:minicom -s彈出minicom設置,選擇serial port按Enter進入,再按A將設備改為B步驟中確認的設備如ttyS0或ttyUSB1等,再按Enter;按F將Yes改為No,再按Enter,回到上一級菜單,將更改的設置保存為.dfl文件。OK了,接着就能夠看到板子運行時的打印信息了。
D.minicom用戶組dialout
為了方便,可以將用戶加入到dialout用戶組,如sudo adduser 用戶名 dialout。
E.minicom與tftp,燒寫image到各個分區
實際工作中,我們需要將不同的image文件燒寫到flash的相應分區。windows系統直接使用tftp軟件,設置好image所在的目錄和主機ip即可。在linux系統下,如果想將linux主機上的image文件燒寫到目標板上。那么linux主機相當於作為服務器端,目標板作為客戶端.對於目標板,一般uboot都已經含有了tftp工具,對於服務器端我們需要安裝:sudo apt-get install tftpd,sudo apt-get intsll xinetd。
接着在/etc/xinetd.d/目錄下創建一個名為tftp的文件,編輯其中的內容為:
service tftp
{
disable =no
socket_type =dgram
protocol =udp
wait =yes
user =root
server =/usr/sbin/in.tftpd
// 只需修改此處,此處參數的含義是image文件所在目錄絕對路徑
server_args = -s /home/lee/image/
source = 11
cps = 100 2
}
配置完以后重啟xinetd服務:service xinetd restart 或 /etc/init.d/xinetd restart
然后便可以在mboot命令行進行image文件燒寫工作了。
二.ckermit
Linux下常用的串口調試工具,minicom的使用是比較多的。但是minicom使用起來其實不太穩定,我在做項目的時候,minicom就偶爾怎 么連也連不上,出不了打印信息,需要重啟一次才會好。另外一個問題就是對於嵌入式開發板,minicom有時候還會出現無法進入Mboot小命令行的問 題。uboot官方文檔也是不推薦使用minicom,而是推薦kermit,所以此文介紹kermit的安裝/配置和使用,以及安裝過程可能出現的問題 的解決方法。
A.kermit的安裝
ubuntu下sudo apt-get install ckermit
第二種方法是去c-kermit官網下載ckermit源代碼,然后編譯,這樣的好處是可以針對不同的平台進行編譯定制。
1) 下載 cku302.tar.gz from http://www.columbia.edu/kermit/ck90.html#source
放到 /usr/local/src/ckermit目錄
2)解壓縮 gunzip -c cku302.tar.gz | tar xf -
3)編譯源代碼 make linux+krb5+ssl
不過我在ubuntu12.04LTS版本下編譯過程遇到了很多問題,如果你也是如此,如下操作:
sudo apt-get install libssl-dev libpam0g-dev libkrb5-dev libgssapi-krb5-2
修改makefile
找到makefile中make linux:處
將下面這段
if test -f /usr/lib64/
libncurses.so || \
test -f /usr/lib/libncurses.a || \
test -f /usr/lib/libncurses.so; then \
HAVE_LIBCURSES='-lncurses'; \
else if test -f /usr/lib64/libcurses.so || \
test -f /usr/lib/libcurses.a || \
test -f /usr/lib/libcurses.so; then \
HAVE_LIBCURSES='-lcurses'; fi; fi; \
改成
if test -f /usr/lib64/libncurses.so || \
test -f /usr/lib/libncurses.a || \
test -f /lib/x86_64-linux-gnu/libncurses.so.5 || \ ### 加上這行###
test -f /usr/lib/libncurses.so; then \
HAVE_LIBCURSES='-lncurses'; \
else if test -f /usr/lib64/libcurses.so || \
test -f /usr/lib/libcurses.a || \
test -f /usr/lib/libcurses.so; then \
HAVE_LIBCURSES='-lcurses'; fi; fi; \
然后重新編譯,如果編譯過程仍然有問題,請看編譯的打印信息中提示的參數信息,可以需要在make linux+ssl+krb5后面加上參數項目,打印信息中會告訴你加上什么參數。
編譯成功以后,會生存wart和wermit執行文件。你可以運行wermit啟動ckermit。為了方便可以添加軟鏈接。
ln -s /usr/local/src/wermit /usr/bin/kermit
B.kermit配置文件
touch ~/.kermrc文件,填入文件內容,如下:
set line /dev/ttyUSB2
set speed 115200
set carrier-watch off
set handshake none
set flow-control none
robust
set file type bin
set file name lit
set rec pack 1000
set send pack 1000
set window 5
當然這寫命令你也可以在啟動kermit之后在其命令行輸入,但是每次都要輸入不夠效率。
以后便可以輸入kermit來啟動了。
啟動kermit之后,如果提示/var/lock:No such file or directory。請在/var目錄下創建一個lock目錄,然后重試。
成功以后,輸入connect連接。等待一會兒,便可連接成功,出現打印信息了。
三.secureCRT for Linux
secureCRT是我在windows下時最喜歡使用的超級終端,圖形化的界面也很直觀和容易。linux下它也不失為一個很好的終端,我用它來連接遠程服務器或是目標板。
A.下載secureCRT和安裝
http://www.vandyke.com/download/securecrt/download.html
安裝:dpkg -i scrt-7.0.3-480.ubuntu11.i386.deb
安裝完成以后,一開始我找了好久都沒找到對應的運行命令。最后在Applications-->Internet下找到了SecureCRT,運行便是。
B.使用secureCRT連接遠程服務器和目標板
1.連接遠程服務器,create new session,選擇ssh協議,選擇波特率115200,用戶名,host主機如172.20.3.241.ok之后輸入密碼便可以登錄上去。
2.連接目標板,以USB轉串口為例
create new session ,選擇serial串口協議,進入下一個窗口,不勾選RTS/CTS,然后直接下一步,連接OK,便可以看到目標板上的打印信息。
C.簡單的破解問題
在~/.vandyke/Config有一個文件SecureCRT_eval.lic,刪除以后就可以恢復30天試用,非常方便吧。
D.順便提提顏色的配置
從options-->global option->General ,點擊Edit Default Settings然后在新窗口中選擇appearence接着便可自定義你的顏色方案了。我個人比較喜歡foreground (54,129,34) (255,255,255); background (103,48,30) (255,255,255)。