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

BusyBox+uClibcによるWebサーバを動かすためのファームウェアを実際にOpenBlockS266に書き込んでWebサーバを動作させる。

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

 前回「組み込み機器にBusyBoxとuClibcを導入しよう【前編】」では、組み込み機器(ぷらっとホーム社のOpenBlockS266)上で、BusyBox+uClibcによるWebサーバを動かすためのファームウェアを作成しました。

 今回はこのファームウェアを実際にOpenBlockS266(以下、OBS266)に書き込んで、設定し、Webサーバを動作させてみたいと思います。

ファームウェアの書き込み準備

 まず、前回作成したファームウェアをOBS266に書き込むための準備を行います。ファームウェアの書き込みに必要なこととしては、

  • (1)シリアル経由でのOBS266へのログイン
  • (2)ファームウェアなどをOBS266に転送する
  • (3)OBS266の設定ファイルなどのバックアップ

があります。なお、本稿で紹介するファームウェアの書き込み作業に失敗して、万が一、OBS266が起動しなくなった場合はOBS266のユーザーズガイドを参照して復旧してください(注1)。

※注1:ユーザーズガイドの39ページ「5.3.2 BOOTP+TFTPサーバを使用したファームウェアのアップデート方法」を参照してください。


 それでは、上記で挙げた3つの作業について順を追って説明していきます。

(1)シリアル経由でのOBS266へのログイン

 OBS266に対してファームウェアの書き換えや設定などの作業を行う際は、OBS266のネットワーク設定がきちんと行われている必要があり、適切に設定しなければLAN経由で接続することができません。そのため、こうした作業を行う際は、一番手軽で安心な手段であるシリアル経由での接続を選択した方がよいでしょう。

 もちろん、シリアル経由でOBS266に接続するには、ホスト側にシリアルポートが必要となります。もしホスト側にシリアルポートがない場合はUSB−シリアル変換アダプタなどを活用するとよいでしょう。

 ホスト側とOBS266とをシリアルケーブルで接続したら、ホスト側でターミナルソフトを起動します。Linux上で使えるターミナルソフトには「minicom」や「cu」などがあります。ちなみに、「cu」はrootユーザーで以下のようにしてインストールします。

# yum install uucp 
Fedoraの場合

# apt-get install cu 
Debianの場合

 そして、以下のように、OBS266と接続しているデバイス(注2)と接続スピード(9600bps)を指定して、「cu」コマンドを実行する(注3)と、OBS266に接続できます。なお、「cu」コマンドを終了して接続を切るには、“~.”の2文字を入力します。

# cu -l /dev/ttyS0 -s 9600
Connected.
 
LinuxServer login: 
※注2:ホスト側にシリアルポートが付いている場合は、「/dev/ttyS0」「/dev/ttyS1」……など、USB−シリアル変換アダプタを使っている場合は「/dev/ttyUSB0」などです。


※注3:Fedoraの場合、実行するにはrootユーザーで実行するか、uucpグループに入ったユーザーで実行する必要があります。


(2)ファームウェアなどをOBS266に転送する

 OBS266へファームウェアを転送する場合、デフォルトのOBS266では以下の方法を取る必要があります。

  • OBS266のFTPサーバを利用して、FTP転送する
  • CFカードを使ってファイルを転送する
  • ホスト側にFTPサーバを立てて、OBS266から「ftp」コマンドを使って転送する

 BusyBoxにはFTPサーバがなく、また前回作成したファームウェアにはFTP転送用として「ftpget」と「ftpput」を組み込みましたので、ファームウェア書き込み後のことも考え、ここではホストにFTPサーバを立てて転送してみます。また、OBS266のネットワーク設定は、ユーザーズガイドに従って設定されているものとします。

 まず、FTPサーバをインストールしていない場合、rootユーザーで以下のようにしてFTPサーバをインストールし、起動します(注4)。

# yum install vsftpd
# service vsftpd start 
Fedoraの場合

# apt-get install vsftpd
# vi /etc/vsftpd.conf
※エディタで"local_enable=YES"および"write_enable=YES"を有効にします
# /etc/init.d/vsftpd restart 
Debianの場合

※注4:FTPポート(21番)がフィルタリングされている場合は、FTPポートをオープンしてください。


 シリアル経由で接続したOBS266から、ホストのFTPサーバへ試しに接続してみましょう。シリアル経由でrootにログインしてホスト(以下の例ではIPアドレスが192.168.2.11)へFTPで接続し、ホストのローカルユーザーとしてログインすると以下のようになります。

LinuxServer login: root ←OBS266にシリアル経由でrootにログイン
Password: 
SSD/Linux 0.4-20070702/2.6.16 #1 Sun Jul 1 10:30:53 JST 2007
 
# ftp 192.168.2.11 ←ホストへFTP接続
Connected to 192.168.2.11.
220 (vsFTPd 2.0.6)
Name (192.168.2.11:root): shinji ←ホストのローカルユーザーでログイン
331 Please specify the password.
Password: 
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> 

(3)OBS266の設定ファイルなどのバックアップ

 OBS266では、ネットワークやサービスの設定ファイルの変更を保存するために、Flash ROMに設定ファイル保存領域があります。起動時には図1にあるように、ファイルシステムをマウント後に、ここに保存されている設定ファイルを上書きしてからinitプロセスが開始しています。

OBS266の起動シーケンス 図1 OBS266の起動シーケンス

 新しいファームウェアを書き換えた後、そのファームウェアに合わせてこの設定ファイル保存領域を書き換えますので、現在の設定を保存しておきたい場合は以下のようにしてアーカイブし、FTP経由でホストに転送して保管するのがよいでしょう(注5)。

# tar -zcvpT /etc/flashcfg -f obs266-backup.tar.gz 
※注5:「tar」コマンドを使う代わりに、設定ファイルを保存したFlash ROMデバイス(mtdデバイス)を直接指定して、“cp /dev/mtd/0 obs266-backup.tar.gz”とコピーすることも可能です。


       1|2|3 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.