移植minicom到嵌入式linux系统过程如下:
1.安装ncurses,下载ncurses5.5,解压并进入ncurses源码目录,执行下面过程:
1) ./configure CC=arm-xilinx-linux-gnueabi-gcc --prefix=/home/daniel/CodeSourcery/Sourcery_CodeBench_Lite_for_Xilinx_GNU_Linux/arm-xilinx-linux-gnueabi --host=arm-xilinx-linux-gnueabi CPPFLAGS=-I/home/daniel/CodeSourcery/Sourcery_CodeBench_Lite_for_Xilinx_GNU_Linux/arm-xilinx-linux-gnueabi/include LDFLAGS=-L/home/daniel/CodeSourcery/Sourcery_CodeBench_Lite_for_Xilinx_GNU_Linux/lib
以上配置的解释:
Note:其中交叉编译工具链相关配置配置成自己的交叉编译工具链即可。主要是注意--prefix指定的安装目录,要在交叉编译链所在目录。
CC=arm-xilinx-linux-gnueabi-gcc \ #交叉编译链的C编译器--prefix=xxxxxxx如上 \ #Note:指定安装目录,必须安装到交叉编译链所在目录,否则编译minicom报错,库之类问题
--host=arm-xilinx-linux-gnueabi \ #交叉编译链前缀,平台相关。
CPPFLAGS=-Ihome/daniel/CodeSourcery/Sourcery_CodeBench_Lite_for_Xilinx_GNU_Linux/arm-xilinx-linux-gnueabi/include \
#预处理器标志,预处理时可以在本设置指定目录中寻找非标准的头文件
LDFLAGS=-L/home/daniel/CodeSourcery/Sourcery_CodeBench_Lite_for_Xilinx_GNU_Linux/lib
#链接标志,链接时可以在本设置指定目录中寻找非标准的头文件
2)make
3)make install
2.安装minicom,下载的minicom-2.6.2版本源码,解压进入目录,执行下面过程:
1)./configure CC=arm-xilinx-linux-gnueabi-gcc --prefix=/home/daniel/x/minicom --host=arm-xilinx-linux-gnueabi CPPFLAGS=-I/home/daniel/CodeSourcery/Sourcery_CodeBench_Lite_for_Xilinx_GNU_Linux/arm-xilinx-linux-gnueabi/include CPPFLAGS=-I/home/daniel/CodeSourcery/Sourcery_CodeBench_Lite_for_Xilinx_GNU_Linux/arm-xilinx-linux-gnueabi/include/ncurses LDFLAGS=-L/home/daniel/CodeSourcery/Sourcery_CodeBench_Lite_for_Xilinx_GNU_Linux/lib --enable-cfg-dir=/etc/minicom
以上配置解释(同上):
./configure \
CC=arm-xilinx-linux-gnueabi-gcc \
--prefix=/home/daniel/x/minicom \
--host=arm-xilinx-linux-gnueabi \
CPPFLAGS=-I/home/daniel/CodeSourcery/Sourcery_CodeBench_Lite_for_Xilinx_GNU_Linux/arm-xilinx-linux-gnueabi/include \
CPPFLAGS=-I/home/daniel/CodeSourcery/Sourcery_CodeBench_Lite_for_Xilinx_GNU_Linux/arm-xilinx-linux-gnueabi/include/ncurses \
LDFLAGS=-L/home/daniel/CodeSourcery/Sourcery_CodeBench_Lite_for_Xilinx_GNU_Linux/lib \
--enable-cfg-dir=/etc/minicom \ #minicom的配置文件保存位置选项。
2)make
Note:make时,各种出错,原因是因为安装ncurses5.5时,--prefix指定目录没有指定到交叉编译链所在目录,结果找不到很多库;
另外还有其它错误如下:
a. 冲突定义,直接修改一处(函数,getline(),minicom2.6以上没这个问题。)b. 出现很多类似错误:undefined reference to `tputs',缺少库gettext, libncurses5-dev(这个是Debian的包名,CentOS下是ncurses)
使用如下命令:yum install ncurses-devel 和 yum install gettext
3)make install
3. 开发板上测试运行minicom
板子上运行
#./minicom -s
本以为圆满了,结果提示
No termcap entry for vt102
//vt102没有termcap的入口,发现好多人都存在这个问题
解决办法如下:
#echo $TERM
vt102
//此命令是敲在板子上shell的,显示TERM变量
#echo TERMINFO
//这个变量是NULL,问题就出在这里
在pc机中查找vt102存放的目录
我的在交叉编译链所在目录下的share目录:
/home/daniel/CodeSourcery/Sourcery_CodeBench_Lite_for_Xilinx_GNU_Linux/arm-xilinx-linux-gnueabi/share/terminfo/v
在开发板上执行下面过程:
#mkdir /usr/share/terminfo
#cp -r 以上交叉编译链目录下/share/terminfo/v /usr/share/terminfo
即,复制以上pc机上linux安装好的目录v 到开发板中的目录:/usr/share/terminfo
在开发板上设置环境变量:
#export TERMINFO=/usr/share/terminfo
此时minicom已经可以正常使用了
#./minicom -s
//configure 中有一句--enable-cfg-dir=/etc/minicom
/etc/minicom此目录如果不存在需要自己mkdir,否则minirc.xx无法保存。.