porting minicom移植 to S3C2440
本以为网上应该有很多minicom成功移植的文档,找了一通才发现貌似网上还没有成功移植minicom的文档
minicom需要ncurses库的支持
arm-linux-gcc中并没有此库故需要交叉编译ncurses,否则出现很多头文件、库函数找不到。
ncurses的交叉编译
ncurses简单介绍:
Ncurses是一个能提供功能键定义(快捷键),屏幕绘制以及基于文本终端的图形互动功能的动态库,我们熟悉的内核配置界面就是用此库函数编写的。
本文要用到的相关文件ncurses-5.5.tar.gz 与minicom-2.3.tar.gz 下载
具体下载目录在 /pub/2011/07/21/porting minicom移植 to S3C2440/
download ncurses-5.5.tar.gz
[root]#./configure CC=arm-linux-gcc --prefix=/usr/local/arm/3.4.1/arm-linux --host=arm-linux CPPFLAGS=-I/usr/local/arm/3.4.1/arm-linux/include LDFLAGS=-L/usr/local/arm/3.4.1/arm-linux/lib
这是写在一行的,费神啊
下面是分开写的,只要加一个"/",简单方便!
[root]#./configure /
>CC=arm-linux-gcc /
>--prefix=/usr/local/arm/3.4.1/arm-linux /
>--host=arm-linux /
>CPPFLAGS=-I/usr/local/arm/3.4.1/arm-linux/include /
>LDFLAGS=-L/usr/local/arm/3.4.1/arm-linux/lib /
[root]#make
[root]#make install
轻松编译通过
porting minicom2.3
download minicom-2.3.tar.gz
[root]#tar zxvf minicom-2.3.tar.gz
[root]#./configure --help
//可以查看一下配置选项
[root]#./configure /
>CC=arm-linux-gcc /
>--prefix=/home/s2e/minicom /
>--host=arm-linux /
>CPPFLAGS=-I/usr/local/arm/3.4.1/arm-linux/include /
>LDFLAGS=-L/usr/local/arm/3.4.1/arm-linux/lib /
>--enable-cfg-dir=/etc/minicom /
[root]#make
提示:
window.c:31:21: termcap.h: No such file or directory
还是没有找到termcap.h
配置加一句CPPFLAGS=-I/usr/local/arm/3.4.1/arm-linux/include/ncurses
[root]#./configure /
>CC=arm-linux-gcc /
>--prefix=/home/s2e/minicom /
>--host=arm-linux /
>CPPFLAGS=-I/usr/local/arm/3.4.1/arm-linux/include /
>CPPFLAGS=-I/usr/local/arm/3.4.1/arm-linux/include/ncureses /
>LDFLAGS=-L/usr/local/arm/3.4.1/arm-linux/lib /
>--enable-cfg-dir=/etc/minicom /
[root]#make
minicom需要ncuses库的支持
arm-linux-gcc中并没有此库故需要交叉编译ncuses
[root]#make install
编译安装成功
板子上运行
[2440]#./minicom -s
本以为圆满了,结果提示
No termcap entry for vt102
//vt102没有termcap的入口,发现好多人都存在这个问题
查找源代码也无果,只好google
解决办法如下:
[2440]#echo $TERM
vt102
//此命令是敲在板子上shell的,显示TERM变量
[2440]#echo TERMINFO
//这个变量是NULL,问题就出在这里
在pc机中查找vt102存放的目录
我的在/usr/share/terminfo/v中
[2440]#mkdir /usr/share/terminfo
[2440]#cp -r pclinux/usr/share/terminfo/v /usr/share/terminfo
复制pc机上linux中的目录:/usr/share/terminfo/v to 2440中的目录:/usr/share/terminfo
设置环境变量:
[2440]#export TERMINFO=/usr/share/terminfo
此时minicom已经可以正常使用了
[2440]./minicom -s
//configure 中有一句--enable-cfg-dir=/etc/minicom
/etc/minicom此目录如果不存在需要自己mkdir,否则minirc.xx无法保存。
接下来就该开始研究minicom的code了!