天天看点

minicom移植到arm

minicom需要ncurses库的支持

arm-linux-gcc中并没有此库故需要交叉编译ncurses,否则出现很多头文件、库函数找不到。

ncurses的交叉编译

ncurses简单介绍:

Ncurses是一个能提供功能键定义(快捷键),屏幕绘制以及基于文本终端的图形互动功能的动态库,我们熟悉的内核配置界面就是用此库函数编写的

详细介绍:

http://www.linuxfocus.org/ChineseGB/March2002/article233.shtml

下载地址:http://directory.fsf.org/project/ncurses/ 

download ncurses-5.7.tar.gz

1.配置ncurses

[[email protected] ncurses-5.7]#./configure CC=arm-none-linux-gnueabi-gcc CXX=arm-none-linux-gnueabi-g++ RANLIB=arm-none-linux-gnueabi-ranlib LD=arm-none-linux-gnueabi-ld AR=arm-none-linux-gnueabi-ar --prefix=/home/ivy /minicom/ncurses-5.7/install --host=arm-linux --with-share CPPFLAGS=-I/opt/arm/toolchain/arm-2007q1/arm-none-linux-gnueabi/include LDFLAGS=-L/opt/arm/toolchain/arm-2007q1/arm-none-linux-gnueabi/lib

2.编译

[[email protected] ncurses-5.7]#make&&make install

minicom2.1 交叉编译 (交叉编译2.4一直没有成功过,所以尝试2.1,成功! )

下载地址:http://alioth.debian.org/projects/minicom/ 

download minicom-2.1.tar.gz 

[[email protected] minicom-2.1]#tar zxvf minicom-2.1.tar.gz

1.配置

[[email protected] minicom-2.1]# ./configure CC=arm-none-linux-gnueabi-gcc --prefix=/home/ ivy /minicom-2.4/istall--host=arm-linux CPPFLAGS=-I/home/ ivy /minicom/ncurses-5.7/install/include/ncurses LDFLAGS=-L/home/ ivy/minicom/ncurses-5.7/install/lib --enable-cfg-dir=/tmp

2.编译

执行make进行编译

编译minicom 出错

minicom.c:156:13: error: conflicting types for ‘getline’

这是因为minicom.c 中的getline 与系统中的库函数名字冲突。

查看 getline 出现的地方:

grep -nr 'getline' *

替换

sed -i 's/getline/getlines/g' src/minicom.c 重新编译

[[email protected] minicom-2.1]#make

编译成功  ./src/minicom 就是我们需要的,cpoy到开发板上进行测试

at91sam9260开发板上调试:

[[email protected] minicon-2.1] cp src/minicom /work/root/bin     //将可执行文件minicom复制到我们nfs/yaffs2文件系统bin目录下

/ # minicom -s                // 在开发板上再次执行minicom

You don't exit,go away!   //提示这样的信息 参照此链接修改:

[[email protected] root]# cp /etc/passed /work/root/etc/    //将本机上/etc/passwd copy 到开发板上/etc目录下   

/ # minicom -s             // 在开发板上再次执行minicom

minicom: WARNING: configuration file not found, using defaults 

No termcap entry for vt102    //提示这样的信息 

/ # echo $ TERM

vt102

/ # mkdir /usr/share/terminfo    //copy 本机/usr/share/terminfo/v 到开发板文件系统/usr/share/terminfo目录下

[[email protected] root]#cp -a /usr/share/ terminfo/v /work/root/usr/share/terminfo/

/ #export TERMINFO=/usr/share/terminfo    // 设置环境变量

或者:在/etc/目录下新建一个profile文件用于保存环境变量,避免每次重启后需要重新设置环境变量

/ #vim etc/profile

添加一行: export TERMINFO=/usr/share/terminfo 

保存退出,重启开发板

/# minicon -s

继续阅读