天天看點

交叉編譯minicom for ARM

minicom需要ncurses庫的支援

arm-none-linux-gnueabi-gcc 中并沒有此庫故需要交叉編譯ncurses,否則出現很多頭檔案、庫函數找不到。

是以首先下載下傳并交叉編譯 ncurses,因為minicom版本更新很慢,是以ncurses不要下載下傳太新的版本。

點選打開連結 這裡選擇ncurses-5.5.tar.gz 

tar xzvf ncurses-5.5.tar.gz
cd ncurses-5.5/
./configure CC=arm-none-linux-gnueabi-gcc --host=arm-none-linux-gnueabi --prefix=/home/name/tanda/board/arm-2010q1 CPPFLAGS=-I/home/name/tanda/board/arm-2010q1/include LDFLAGS=-L/home/name/tanda/board/arm-2010q1/lib
           

交叉編譯安裝到交叉工具鍊目錄中。

make && make install

下載下傳minicom:點選打開連結  這裡選擇 minicom-2.3.tar.gz 

tar xzvf minicom-2.3.tar.gz
 cd minicom-2.3/
./configure CC=arm-none-linux-gnueabi-gcc --host=arm-none-linux-gnueabi --prefix=/home/name/Downloads/minicom-2.3/install CPPFLAGS=-I/home/name/tanda/board/arm-2010q1/include LDFLAGS=-L/home/name/tanda/board/arm-2010q1/lib CPPFLAGS=-I/home/name/tanda/board/arm-2010q1/include/ncurses
           

make  出錯:

arm-none-linux-gnueabi/libc/usr/include/stdio.h:651: note: previous declaration of 'getline' was here

這是因為minicom.c 中的getline 與系統中的庫函數名字沖突。

檢視 getline 出現的地方:

grep -nr 'getline' *

替換

sed -i 's/getline/getlines/g' src/minicom.c

還有同樣的問題照次處理。

make 又出錯:

/home/name/tanda/board/arm-2010q1/include/ncurses/termcap.h:42: fatal error: ncurses/ncurses_dll.h: No such file or directory

vim /home/name/tanda/board/arm-2010q1/include/ncurses/termcap.h 

#include <ncurses/ncurses_dll.h> 改成:

#include "ncurses_dll.h" 

make && make install 成功。

将安裝目錄下的minicom bin檔案拷到闆子上運作提示:

 ./minicom 

minicom: WARNING: configuration file not found, using defaults

No termcap entry for vt100

解決辦法如下:

[board#echo $TERM

vt102

//此指令是敲在闆子上shell的,顯示TERM變量

[board]#echo TERMINFO

//這個變量是NULL,問題就出在這裡

在pc機中查找vt102存放的目錄

我的在/usr/share/terminfo/v中

cp /usr/share/terminfo/v/vt102  到闆子/data/bin/terminfo/v 目錄

執行export TERMINFO=/data/bin/terminfo

設定環境變量,在執行

echo $TERMINFO

/data/bin

已經看到不為空了。

運作minicom 成功