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)。