BusyBoxのコンパイル
ARMクロスコンパイラ作成で作成したクロスコンパイラを利用してBusyBoxをコンパイルする。
BusyBoxは標準Linuxコマンドの機能を1実行ファイルで提供されるので、ディスク
容量を大幅な削減が期待できるため、組込みの世界ではよくお見かけするツール。
環境変数の設定
$export CROSS=${ツールチェーンのルートフォルダ} $export TARGET=arm-unknown-linux-gnueabi $export PATH=$PATH:$CROSS/bin
コンパイル
デフォルトのコンパイル設定を適用
$make ARCH=arm CROSS_COMPILE=$TARGET- defconfig
menuconfigで詳細な設定
$make ARCH=arm CROSS_COMPILE=$TARGET- menuconfig
今回はざっくり以下のようにした。
- staticリンクのバイナリを生成する設定
Build Options -->[*]Build BusyBox as a static binary (no shared libs)
- プリンター系はまるっと不要
- メールユーティリティもまるっと不要
- ネットワーク系は多すぎるので不要そうなコマンドを削除
- アーカイブ系のコマンドも多いので削る
コンパイル実行
$make ARCH=arm CROSS_COMPILE=$TARGET-
インストール
$make ARCH=arm CROSS_COMPILE=$TARGET- install
インストールが成功すれば、__installというフォルダがカレントディレクトリ
に作成され、コマンド一式が生成されているはず。
以下が__install/binフォルダの中身とbusyboxバイナリがARM形式になっている
ことを確認したときの画面。