TFTPでのインストール方法(3)OpenWRT-BHR-4GRV編

「TFTPでのインストール方法(3)OpenWRT-BHR-4GRV編」の編集履歴(バックアップ)一覧に戻る

TFTPでのインストール方法(3)OpenWRT-BHR-4GRV編 - (2013/09/16 (月) 17:05:09) の編集履歴(バックアップ)


BHR-4GRVでのTFTPインストール方法を記述します。
WZR-HP-AG300H、WZR-HP-G300NHなどは同様の手法でできます。

BHR-4GRVでのTFTPインストール方法

作業用PCはWindowsを前提としますが、もちろん他のOSでも対応可能です。

準備

ソフトウェア

TFTP Clientとtelnet clientを準備します。
TFTPクライアントはWindows Vistaなら標準でインストールされています。7/8は以下でインストールします。
コントロール パネル → プログラムと機能 → Windowsの機能の有効化または無効化 から 「TFTPクライアント」のチェックボックスをONにする。
telnetクライアントは Teratermputty が有名ですね。この文書ではTeratermを前提とします。

ハードウェア

あらかじめUSBポートに適当なUSBメモリを挿しておきます。標準ファームウェアのバックアップに使います。

BHR-4GRV と PCとをUTPケーブルで接続します。
LANポート Link upのタイムラグでタイミングが非常にシビアになるので、直結ではなく、間にSwitching Hubを経由して接続することを推奨します。

設定してないとdebugモードの認証がうまくいかないことがあるため、あらかじめ、BHR-4GRVには管理者パスワードを設定しておきます。

debugモードへのアクセス

一度全てのブラウザを閉じてから、以下のURLにアクセスします。
http://<RouterのIP>/cgi-bin/cgi?req=frm&frm=py-db/55debug.html
ID:bufpy
Password: otdpopy + 管理者パスワード
成功するとdebugメニュー画面が出るので telnetd を選択して、telnetd を起動します。

これでtelnetでルータのIPアドレスを指定すればアクセスできるようになります。

flashメモリバックアップ

USBメモリに移動します
#cd /mnt/usb0_0/

flashメモリのパーティションを確認します
#cat /proc/mtd

表示されたMTDブロックを確認し全てddで取得します。
#dd if=/dev/mtdblock/0 of=mtd0.dd
#dd if=/dev/mtdblock/1 of=mtd1.dd
#dd if=/dev/mtdblock/2 of=mtd2.dd
#dd if=/dev/mtdblock/3 of=mtd3.dd
#dd if=/dev/mtdblock/4 of=mtd4.dd
#dd if=/dev/mtdblock/5 of=mtd5.dd
#dd if=/dev/mtdblock/6 of=mtd6.dd
※4と6は少しが時間かかります。まれに再起動がかかることがありますが、落ち着いてやり直します。

flashパーティション情報もファイルに残しておきます。
#cat /proc/mtd > mtd.txt

次で確認するu-boot変数もファイルとして残しておきます。
#ubootenv list > ubootenv.txt

usbメモリ上にファイルができていて、容量が0byteではないことを確認します。
# ls -l /mnt/usb0_0/

uboot変数の確認と変更


bootloader 「u-boot」用の変数(パラメータ)を確認します。
#ubootenv list

BHR-4GRV Firmware 1.79 では以下のようになっていました。
変数名 デフォルト値 備考
accept_open_rt_fmt なし 標準ファームウェア以外のインストール可否。値が1で可。日本国内仕様の場合、デフォルトでは変数そのものが無いはずです。
tftp_wait 4 bootloader起動時のTFTP待受秒数。
uboot_ethaddr 02:AA:BB:CC:DD:22 TFTP待受時のMACアドレス。機種によって値が異なります。
ipaddr 192.168.11.1 TFTP待受時のIPアドレス。値が違う場合もあるかもしれません
serverip 192.168.11.2 TFTP転送を受け付けるIPアドレス。値が違う場合もあるかもしれません
region JP リージョンコード。北米仕様はUSになります。
※BHR-4GRVのデフォルト管理IPは192.168.12.1ですが、uboot変数値は192.168.11.1になっているのがミソです。

tftpでのファームウェアインストールをできるようにするために accept_open_rt_fmt を設定します。
#ubootenv set accept_open_rt_fmt 1

末尾に変数が登録されたことを確認します。
#ubootenv list

PCのアドレス設定

PCのIPアドレスを以下に設定します。
IPアドレス:192.168.11.2  ※このIPはu-boot変数の serverip の値と同じにします。
サブネットマスク:255.255.255.0

TFTP待受時のIPアドレスはarpに応答しないので、そのままではTFTP転送できません。
以下のコマンドでPCのarpテーブルにMACアドレスをスタティックに登録します。

#arp -s 192.168.11.1 02-AA-BB-CC-DD-22  ※ここのIP/MACアドレスは u-boot変数 ipaddr、uboot_ethaddrに準じます。MACアドレスの区切り文字は - に変えます。

登録できた場合には以下のコマンドで確認できます。
#arp -a
C:\>arp -a

インターフェイス: 192.168.11.2 --- 0x1
 インターネット アドレス 物理アドレス           種類
 192.168.11.1           4c-e6-76-51-3d-4c     &u(){}

インストール