組み込み機器にBusyBoxとuClibcを導入しよう【後編】いますぐ使える! BusyBox活用術(5)(2/3 ページ)

» 2008年11月10日 00時00分 公開
[宍道 洋 busybox同好会,@IT MONOist]

作成したファームウェアを書き込もう

 それではいよいよ、前回作成したファームウェアを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を起動してみましょう。

OpenBlockS266の背面「INIT」ボタン 画像1 OpenBlockS266の背面「INIT」ボタン(出典:ぷらっとホーム社)

 シリアル経由で接続したまま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.