keropoの備忘録

しらべたことをメモるブログ

BusyBoxのコンパイル

ARMクロスコンパイラ作成で作成したクロスコンパイラを利用してBusyBoxコンパイルする。

BusyBoxは標準Linuxコマンドの機能を1実行ファイルで提供されるので、ディスク
容量を大幅な削減が期待できるため、組込みの世界ではよくお見かけするツール

環境変数の設定

   $export CROSS=${ツールチェーンのルートフォルダ}
   $export TARGET=arm-unknown-linux-gnueabi
   $export PATH=$PATH:$CROSS/bin

コンパイル

アーカイブを解凍
  $tar jxvf busybox-1.21.0.tar.bz2
  $cd  busybox-1.21.0
デフォルトのコンパイル設定を適用
  $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形式になっている
ことを確認したときの画面。
f:id:keropo:20130417230327j:plain