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