BusyBoxをUbuntu 8.04にインストールする

組み込み用途で使用されることが多いBusyBoxを、Ubuntu 8.04にインストールしてみます。

BusyBoxのダウンロードと展開

busybox-1.15.2.tar.bz2をBusyBoxサイト(http://www.busybox.net/)からダウンロードし展開します。

$ wget http://busybox.net/downloads/busybox-1.15.2.tar.bz2
$ tar jxvf busybox-1.15.2.tar.bz2
$ cd busybox-1.15.2

コンフィグレーション

BusyBoxの設定を行います。

初めにデフォルトの設定を行い、次にテキストメニュー方式で設定を変更します。テキストメニュー方式で設定を行うには ncurses が必要になります。

$ cd busybox-1.15.2
$ make defconfig
$ make menuconfig

設定を行い、最後に、
 Do you wish to save your new configuration ?
に[Yes]で答えます。

設定された結果は、
 ~/.config
に格納されます。

コンパイルとインストール

BusyBoxをコンパイルしインストールします。

$ make
$ make install

確認

BusyBoxはカレントディレクトリの下の「_install」ディレクトリにインストールされます。

_install/bin/busybox がBusyBoxの実行ファイルです。

_install/binディレクトリを表示します。

$ ls -l _install/bin
lrwxrwxrwx 1 ono ono      7 2009-11-12 16:39 addgroup -> busybox
lrwxrwxrwx 1 ono ono      7 2009-11-12 16:39 adduser -> busybox
lrwxrwxrwx 1 ono ono      7 2009-11-12 16:39 ash -> busybox
-rwxr-xr-x 1 ono ono 695608 2009-11-12 16:39 busybox
lrwxrwxrwx 1 ono ono      7 2009-11-12 16:39 cat -> busybox
lrwxrwxrwx 1 ono ono      7 2009-11-12 16:39 catv -> busybox
lrwxrwxrwx 1 ono ono      7 2009-11-12 16:39 chattr -> busybox
lrwxrwxrwx 1 ono ono      7 2009-11-12 16:39 chgrp -> busybox
lrwxrwxrwx 1 ono ono      7 2009-11-12 16:39 chmod -> busybox
lrwxrwxrwx 1 ono ono      7 2009-11-12 16:39 chown -> busybox
lrwxrwxrwx 1 ono ono      7 2009-11-12 16:39 cp -> busybox
lrwxrwxrwx 1 ono ono      7 2009-11-12 16:39 cpio -> busybox
lrwxrwxrwx 1 ono ono      7 2009-11-12 16:39 cttyhack -> busybox
lrwxrwxrwx 1 ono ono      7 2009-11-12 16:39 date -> busybox
lrwxrwxrwx 1 ono ono      7 2009-11-12 16:39 dd -> busybox
lrwxrwxrwx 1 ono ono      7 2009-11-12 16:39 delgroup -> busybox
lrwxrwxrwx 1 ono ono      7 2009-11-12 16:39 deluser -> busybox
lrwxrwxrwx 1 ono ono      7 2009-11-12 16:39 df -> busybox
lrwxrwxrwx 1 ono ono      7 2009-11-12 16:39 dmesg -> busybox
lrwxrwxrwx 1 ono ono      7 2009-11-12 16:39 dnsdomainname -> busybox
lrwxrwxrwx 1 ono ono      7 2009-11-12 16:39 dumpkmap -> busybox
lrwxrwxrwx 1 ono ono      7 2009-11-12 16:39 echo -> busybox
lrwxrwxrwx 1 ono ono      7 2009-11-12 16:39 ed -> busybox
lrwxrwxrwx 1 ono ono      7 2009-11-12 16:39 egrep -> busybox
lrwxrwxrwx 1 ono ono      7 2009-11-12 16:39 false -> busybox
lrwxrwxrwx 1 ono ono      7 2009-11-12 16:39 fdflush -> busybox
lrwxrwxrwx 1 ono ono      7 2009-11-12 16:39 fgrep -> busybox
lrwxrwxrwx 1 ono ono      7 2009-11-12 16:39 fsync -> busybox
lrwxrwxrwx 1 ono ono      7 2009-11-12 16:39 getopt -> busybox
lrwxrwxrwx 1 ono ono      7 2009-11-12 16:39 grep -> busybox
lrwxrwxrwx 1 ono ono      7 2009-11-12 16:39 gunzip -> busybox
lrwxrwxrwx 1 ono ono      7 2009-11-12 16:39 gzip -> busybox
lrwxrwxrwx 1 ono ono      7 2009-11-12 16:39 hostname -> busybox
lrwxrwxrwx 1 ono ono      7 2009-11-12 16:39 hush -> busybox
lrwxrwxrwx 1 ono ono      7 2009-11-12 16:39 ionice -> busybox
lrwxrwxrwx 1 ono ono      7 2009-11-12 16:39 ip -> busybox
lrwxrwxrwx 1 ono ono      7 2009-11-12 16:39 ipaddr -> busybox
lrwxrwxrwx 1 ono ono      7 2009-11-12 16:39 ipcalc -> busybox
lrwxrwxrwx 1 ono ono      7 2009-11-12 16:39 iplink -> busybox
lrwxrwxrwx 1 ono ono      7 2009-11-12 16:39 iproute -> busybox
lrwxrwxrwx 1 ono ono      7 2009-11-12 16:39 iprule -> busybox
lrwxrwxrwx 1 ono ono      7 2009-11-12 16:39 iptunnel -> busybox
lrwxrwxrwx 1 ono ono      7 2009-11-12 16:39 kill -> busybox
lrwxrwxrwx 1 ono ono      7 2009-11-12 16:39 linux32 -> busybox
lrwxrwxrwx 1 ono ono      7 2009-11-12 16:39 linux64 -> busybox
lrwxrwxrwx 1 ono ono      7 2009-11-12 16:39 ln -> busybox
lrwxrwxrwx 1 ono ono      7 2009-11-12 16:39 login -> busybox
lrwxrwxrwx 1 ono ono      7 2009-11-12 16:39 ls -> busybox
lrwxrwxrwx 1 ono ono      7 2009-11-12 16:39 lsattr -> busybox
lrwxrwxrwx 1 ono ono      7 2009-11-12 16:39 lzop -> busybox
lrwxrwxrwx 1 ono ono      7 2009-11-12 16:39 makemime -> busybox
lrwxrwxrwx 1 ono ono      7 2009-11-12 16:39 mkdir -> busybox
lrwxrwxrwx 1 ono ono      7 2009-11-12 16:39 mknod -> busybox
lrwxrwxrwx 1 ono ono      7 2009-11-12 16:39 mktemp -> busybox
lrwxrwxrwx 1 ono ono      7 2009-11-12 16:39 more -> busybox
lrwxrwxrwx 1 ono ono      7 2009-11-12 16:39 mount -> busybox
lrwxrwxrwx 1 ono ono      7 2009-11-12 16:39 mountpoint -> busybox
lrwxrwxrwx 1 ono ono      7 2009-11-12 16:39 msh -> busybox
lrwxrwxrwx 1 ono ono      7 2009-11-12 16:39 mt -> busybox
lrwxrwxrwx 1 ono ono      7 2009-11-12 16:39 mv -> busybox
lrwxrwxrwx 1 ono ono      7 2009-11-12 16:39 netstat -> busybox
lrwxrwxrwx 1 ono ono      7 2009-11-12 16:39 nice -> busybox
lrwxrwxrwx 1 ono ono      7 2009-11-12 16:39 pidof -> busybox
lrwxrwxrwx 1 ono ono      7 2009-11-12 16:39 ping -> busybox
lrwxrwxrwx 1 ono ono      7 2009-11-12 16:39 ping6 -> busybox
lrwxrwxrwx 1 ono ono      7 2009-11-12 16:39 pipe_progress -> busybox
lrwxrwxrwx 1 ono ono      7 2009-11-12 16:39 printenv -> busybox
lrwxrwxrwx 1 ono ono      7 2009-11-12 16:39 ps -> busybox
lrwxrwxrwx 1 ono ono      7 2009-11-12 16:39 pwd -> busybox
lrwxrwxrwx 1 ono ono      7 2009-11-12 16:39 reformime -> busybox
lrwxrwxrwx 1 ono ono      7 2009-11-12 16:39 rm -> busybox
lrwxrwxrwx 1 ono ono      7 2009-11-12 16:39 rmdir -> busybox
lrwxrwxrwx 1 ono ono      7 2009-11-12 16:39 run-parts -> busybox
lrwxrwxrwx 1 ono ono      7 2009-11-12 16:39 scriptreplay -> busybox
lrwxrwxrwx 1 ono ono      7 2009-11-12 16:39 sed -> busybox
lrwxrwxrwx 1 ono ono      7 2009-11-12 16:39 setarch -> busybox
lrwxrwxrwx 1 ono ono      7 2009-11-12 16:39 sh -> busybox
lrwxrwxrwx 1 ono ono      7 2009-11-12 16:39 sleep -> busybox
lrwxrwxrwx 1 ono ono      7 2009-11-12 16:39 stat -> busybox
lrwxrwxrwx 1 ono ono      7 2009-11-12 16:39 stty -> busybox
lrwxrwxrwx 1 ono ono      7 2009-11-12 16:39 su -> busybox
lrwxrwxrwx 1 ono ono      7 2009-11-12 16:39 sync -> busybox
lrwxrwxrwx 1 ono ono      7 2009-11-12 16:39 tar -> busybox
lrwxrwxrwx 1 ono ono      7 2009-11-12 16:39 touch -> busybox
lrwxrwxrwx 1 ono ono      7 2009-11-12 16:39 true -> busybox
lrwxrwxrwx 1 ono ono      7 2009-11-12 16:39 umount -> busybox
lrwxrwxrwx 1 ono ono      7 2009-11-12 16:39 uname -> busybox
lrwxrwxrwx 1 ono ono      7 2009-11-12 16:39 uncompress -> busybox
lrwxrwxrwx 1 ono ono      7 2009-11-12 16:39 usleep -> busybox
lrwxrwxrwx 1 ono ono      7 2009-11-12 16:39 vi -> busybox
lrwxrwxrwx 1 ono ono      7 2009-11-12 16:39 watch -> busybox
lrwxrwxrwx 1 ono ono      7 2009-11-12 16:39 zcat -> busybox

各コマンドはbusyboxへのシンボリックリンクになっています。

コマンドの実行

コマンドを実行します。

ono@ubuntu:~/busybox/busybox-1.15.2$ ./_install/bin/ls -l _install
drwxr-xr-x    2 ono      ono          4096 Nov 12 16:39 bin
lrwxrwxrwx    1 ono      ono            11 Nov 12 16:39 linuxrc -> bin/busybox
drwxr-xr-x    2 ono      ono          4096 Nov 12 16:39 sbin
drwxr-xr-x    4 ono      ono          4096 Nov 12 16:39 usr

ono@ubuntu:~/busybox/busybox-1.15.2$ sudo ./_install/bin/ping localhost -c 5
PING localhost (127.0.0.1): 56 data bytes
64 bytes from 127.0.0.1: seq=0 ttl=64 time=0.122 ms
64 bytes from 127.0.0.1: seq=1 ttl=64 time=0.151 ms
64 bytes from 127.0.0.1: seq=2 ttl=64 time=0.123 ms
64 bytes from 127.0.0.1: seq=3 ttl=64 time=0.106 ms
64 bytes from 127.0.0.1: seq=4 ttl=64 time=0.132 ms

--- localhost ping statistics ---
5 packets transmitted, 5 packets received, 0% packet loss
round-trip min/avg/max = 0.106/0.126/0.151 ms

BusyBox設定項目

  • Busybox Settings → General Configuration
    • バッファ確保方法、Usageメッセージ表示形式、suidビットの有無、SELinuxサポートの有無などを設定します。
  • Busybox Settings → Build Options
    • 静的なバイナリを作るかどうかなど、コンパイルに関するオプションを設定します。
  • Busybox Settings → Debugging Options
    • デバッグシンボルを含めるかどうかなど、デバッグに関するオプションを設定します。
  • Busybox Settings → Installation Options
    • インストール先やコマンド名のリンクをBusyBoxバイナリにリンクする際の方法など、インストールに関するオプションを設定します。
  • Busybox Settings → Busybox Library Tuning
    • 最少パスワード文字数やコマンドライン編集に関する設定など、アプレットが共通して使用する機能に関する設定を行います。

アプレット選択項目

ターゲットの環境で使用するコマンド機能を選択します。

  • Archival Utilities
    • アーカイブや圧縮に関連するコマンド (tar、gzip)
  • Coreutils
    • OSのコアとなる基本コマンド (ls、cp、cat)
  • Console Utilities
    • コンソールの操作で使われるコマンド
  • Debian Utilities
    • Debian由来のコマンド (start-stop-daemon)
  • Editors
    • テキスト処理、編集コマンド (awk、sed、vi)
  • Finding Utilities
    • 検索コマンド (find、grep)
  • Init Utilities
    • 起動、終了処理用コマンド ( init、poweroff)
  • Login/Password Management Utilities
    • ログインやパスワードなど、ユーザ管理や認証に関連するコマンド
  • Linux Ext2 FS Progs
    • Ext2ファイルシステム関連コマンド(fsck)
  • Linux Module Utilities
    • Linuxカーネルモジュール関連のコマンド (depmod)
  • Linux System Utilities
    • Linuxシステム関連のコマンド (fdisk、mount)
  • Miscellaneous Utilities
    • 分類していない色々なコマンド
  • Networking Utilities
    • ネットワーク関連のコマンド (ping、httpd)
  • Process Utilities
    • プロセス関連コマンド (ps、kill)
  • Shells
    • シェル(ash)
  • System Logging Utilities
    • ログ関連のコマンド(syslogd、klogd)
  • Runit Utilities
    • サービスの起動や監視を行うrunit関連のコマンド
  • Selinux Utilities
    • SELinuxで必要になるコマンド
  • Print Utilities
    • 印刷関連のコマンド (lpr)

2011.10.03
2009.11.12