移植minicom到嵌入式linux系统

时间:2022-02-12 08:31:46

移植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无法保存。.