ホーム > ARM >

各コマンド・ライブラリのARMクロスコンパイル手順

busyboxのクロスコンパイル

ライブラリをbusyboxのバイナリに静的にリンクする場合、Busybox Settings -> Build Options -> Build Busybox as a static binary (no shared libs)にチェックを入れる。

wget http://busybox.net/downloads/busybox-1.19.4.tar.bz2
tar jxf busybox-1.19.4.tar.bz2
cd busybox-1.19.4

export ARCH=arm
export CROSS_COMPILE=arm-linux-gnueabi-

make defconfig
make menuconfig
make -j4
make CONFIG_PREFIX=${SYSROOT} install

ncursesのクロスコンパイル

wget http://ftp.jaist.ac.jp/pub/GNU/ncurses/ncurses-5.9.tar.gz
tar zxf ncurses-5.9.tar.gz
cd ncurses-5.9
./configure --prefix=/usr --host=arm-linux-gnueabi --with-shared
make -j4
make DESTDIR=${SYSROOT} install

bashのクロスコンパイル

ncursesはなくてもコンパイルはできる。 bash4.2はクロスコンパイル時に"'job_control' undeclared"というエラーが出てしまう。

wget http://ftp.jaist.ac.jp/pub/GNU/bash/bash-4.1.tar.gz
tar zxf bash-4.1.tar.gz
cd bash-4.1
./configure --prefix=/usr --host=arm-linux-gnueabi
make -j4
make DESTDIR=${SYSROOT} install

zlibのクロスコンパイル

git clone git://github.com/madler/zlib.git
cd zlib
git checkout -b work_1.2.6 v1.2.6
CC=arm-linux-gnueabi-gcc LDSHARED="arm-linux-gnueabi-gcc -shared -Wl,-soname,libz.so.1" ./configure --prefix=/usr --shared
make -j4
make prefix=${SYSROOT}/usr install

opensslのクロスコンパイル

コンパイルするにはzlibが必要。

wget http://www.openssl.org/source/openssl-1.0.0g.tar.gz
tar zxf openssl-1.0.0g.tar.gz
cd openssl-1.0.0g
./Configure --prefix=/usr --openssldir=/etc/ssl threads zlib shared no-asm linux-armv4
export CROSS_COMPILE=arm-linux-gnueabi-
make -j4
make INSTALL_PREFIX=${SYSROOT} install

opensshのクロスコンパイル

コンパイルするにはzlib,opensslが必要。 クロスコンパイルではinstallコマンドでstripが失敗するのでSTRIP_OPTを空にする。

wget http://ftp.jaist.ac.jp/pub/OpenBSD/OpenSSH/portable/openssh-5.9p1.tar.gz
tar zxf openssh-5.9p1.tar.gz
cd openssh-5.9p1
./configure --prefix=/usr --sysconfdir=/etc/ssh --host=arm-linux-gnueabi --with-privsep-path=/var/run/sshd
make -j4
make DESTDIR=${SYSROOT} STRIP_OPT= install

Wireless Toolsのクロスコンパイル

Wireless Toolsはiwconfig等のコマンドを含むパッケージ。

wget http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/wireless_tools.29.tar.gz
tar zxf wireless_tools.29.tar.gz
cd wireless_tools.29
make CC=arm-linux-gnueabi-gcc BUILD_STRIPPING=y -j4
make PREFIX=${SYSROOT}/usr install

WPA Supplicantのクロスコンパイル

コンパイルするにはopensslが必要。

wget http://hostap.epitest.fi/releases/wpa_supplicant-0.7.3.tar.gz
tar zxf wpa_supplicant-0.7.3.tar.gz
cd wpa_supplicant-0.7.3/wpa_supplicant
cp defconfig .config
make CC=arm-linux-gnueabi-gcc -j4
make BINDIR=${SYSROOT}/usr/sbin  LIBDIR=${SYSROOT}/usr/lib install