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 成功