U-Bootで使える形でカーネル再構築をするためにmkimageをコンパイルする。
現在玄箱にはU-Boot1.1.4が入っているから1.1.4のソースから作成する。
まずは、ソースのダウンロードして、解凍
KURO-BOX:~# cd /usr/src/
KURO-BOX:/usr/src# wget http://prdownloads.sourceforge.net/u-boot/u-boot-1.1.4.tar.bz2
KURO-BOX:/usr/src# tar -xjvf u-boot-1.1.4.tar.bz2
KURO-BOX:/usr/src# cd u-boot-1.1.4
次にmake時に$TOPDIRを参照しているみたいだからカレントパスを格納する。
KURO-BOX:/usr/src/u-boot-1.1.4# export TOPDIR=`pwd`
KURO-BOX:/usr/src/u-boot-1.1.4# echo $TOPDIR
/usr/src/u-boot-1.1.4
今回必要なのはmkimageだからtoolsディレクトリのみmakeする。
KURO-BOX:/usr/src/u-boot-1.1.4# cd tools
KURO-BOX:/usr/src/u-boot-1.1.4/tools# make mkimage
ln -s ../common/environment.c environment.c
ln -s ../lib_generic/crc32.c crc32.c
gcc -M -Wall -pedantic -idirafter ../include -DTEXT_BASE= -DUSE_HOSTCC environment.c img2srec.c mkimage.c crc32.c envcrc.c gen_eth_addr.c bmp_logo.c > .depend
environment.c:28:20: error: config.h: No such file or directory
envcrc.c:32:20: error: config.h: No such file or directory
gcc -g -Wall -pedantic -idirafter ../include -DTEXT_BASE= -DUSE_HOSTCC -O -c mkimage.c
gcc -g -Wall -pedantic -idirafter ../include -DTEXT_BASE= -DUSE_HOSTCC -O -c crc32.c
gcc -Wall -pedantic -idirafter ../include -DTEXT_BASE= -DUSE_HOSTCC -O -o mkimage mkimage.o crc32.o
strip mkimage
エラーは出ているがこのmkimageでU-Boot対応カーネルは問題なく作成、起動できた。
KURO-BOX:/usr/src/u-boot-1.1.4/tools# cp -p mkimage /usr/local/bin
KURO-BOX:/usr/src/u-boot-1.1.4/tools# which mkimage
/usr/local/bin/mkimage
作成されたmkimageは、/usr/local/binなどパスの通った場所にコピーして完了。