組み込み機器にBusyBoxとuClibcを導入しよう【後編】:いますぐ使える! BusyBox活用術(5)(2/3 ページ)
BusyBox+uClibcによるWebサーバを動かすためのファームウェアを実際にOpenBlockS266に書き込んでWebサーバを動作させる。
作成したファームウェアを書き込もう
それではいよいよ、前回作成したファームウェアをOBS266に書き込んでみましょう。はじめにホストにあるファームウェアをOBS266上にFTPで転送します。
OBS266上からFTPでホストにアクセスし、ファームウェアのあるディレクトリまで移動してください。
ftp> cd work/buildroot/binaries/uclibc 250 Directory successfully changed. ftp> ls 227 Entering Passive Mode (192,168,2,11,200,63). 150 Here comes the directory listing. -rw-rw-r-- 1 500 500 1502752 Sep 20 21:09 linux-kernel-2.6.26.5-ppc -rw-rw-r-- 1 500 500 13094912 Sep 20 21:10 rootfs.powerpc.ext2 -rw-rw-r-- 1 500 500 5230112 Sep 20 21:10 zImage.initrd.treeboot 226 Directory send OK. ftp>
そして、前回作成したファームウェア“zImage.initrd.treeboot”をダウンロードします。保存するディレクトリは「/tmp」がよいでしょう。
ftp> lcd /tmp ←OBS266上で/tmpに移動 Local directory now: /tmp ftp> get zImage.initrd.treeboot ←ファームウェアのダウンロード local: zImage.initrd.treeboot remote: zImage.initrd.treeboot 227 Entering Passive Mode (192,168,2,11,26,48). 150 Opening BINARY mode data connection for zImage.initrd.treeboot (5230112 bytes). 100% |*************************************| 5107 KB 7.45 MB/s 00:00 ETA 226 File send OK. 5230112 bytes received in 00:00 (7.07 MB/s) ftp> quit ←ftpの終了 221 Goodbye. # ls -s /tmp/ total 5129 5129 zImage.initrd.treeboot #
続いて、「flashcfg」コマンドを使って以下のように書き込みを行います。書き込んでいる間は電源を落とさないよう十分注意してください。最後に、「done」と表示されれば書き込み完了です。
# flashcfg -f /tmp/zImage.initrd.treeboot Load boot image to FlashROM ################################################## ############################## done #
OBS266の再起動と設定
今度は、書き込んだファームウェアでOBS266を起動してみましょう。
シリアル経由で接続したままOBS266の電源をいったん抜き、「INIT」ボタンを押しながら電源を入れます。
そして、次の一文がシリアル経由でターミナルに表示されるまでボタンを押し続けます。こうすることで、設定ファイル保存領域から設定ファイルを読み込まずに起動します。
Linux/PPC load: root=/dev/ram console=ttyS0,9600
起動が完了すると、以下のようにログイン待ちになります。
Welcome to the Erik's uClibc development environment. uclibc login:
ここではrootでログインしてください。
これから各種設定を行っていくわけですが、「INIT」ボタンを押しながら起動すると、ルートファイルシステムは書き込み禁止状態になっており、そのままでは設定を変更することができません。そこで、以下のようにして、ルートファイルシステムを再マウントして書き込めるようにします。
# mount -o remount,rw /
それでは、各種設定を行っていきましょう。
(1)ネットワークの設定
ネットワークの設定は、Debianと同じように「/etc/network/interfaces」へ記述します。例えば、以下のように設定します(ちなみにエディタは、BusyBoxの「vi」が使えます)。
auto eth0 iface eth0 inet static address 192.168.2.66 ←OBS266に設定するIPアドレス netmask 255.255.255.0 network 192.168.2.0 broadcast 192.168.1.255 gateway 192.168.2.1
固定IPアドレスの場合 |
auto eth0 iface eth0 inet dhcp
DHCPを使う場合 |
設定を保存した後、「ifup eth0」でネットワークを有効にできます。
(2)Webサーバの設定
では、本題のWebサーバを設定しましょう……。と、いってもBusyBoxの「httpd」は非常にシンプルで、Webサーバのルートディレクトリを「/var/www」とした場合、設定ファイル“/etc/httpd.conf”に、
H:/var/www
と1行入れるか、「httpd」起動時に以下のようにオプションを付けるだけで完了です。
# httpd -h /var/www
そのほかアクセス制限や認証を行う手段などもありますが、これらの設定も簡単です。例えば以下のような記述を“/etc/httpd.conf”に追加することで、IPアドレスによる制限を行うことができます。
A:192.168.2.0/24 ←192.168.2.xのアドレスは許可 A:127.0.0.1 ←localhostは許可 D:* ←それ以外は拒否
設定ファイルに関するそのほかの記述方法については、ソースコード(busybox-1.12.0/networking/httpd.c)の先頭に記述されていますので、そちらを参照してください。
Copyright © ITmedia, Inc. All Rights Reserved.