ファームウェア転送のまとめ
古くなったルーターで遊んでみようという方もいるかと思うので、敷居を下げる為に細かな部分まで説明していますがご了承ください。また、記事中のリンクは知識補完のために設置していますので不要な方は読み進めて下さい。
OpenWrtのコンソールからMTD(Memory Technology Device )の情報を表示すると以下のように表示される。MTDに関してはIBMの「組み込みデバイスでのLinuxシステム開発」を参照して頂くと諸々の知識を得られます。
root@OpenWrt:/proc# cat mtd dev: size erasesize name mtd0: 0003e000 00010000 "u-boot" mtd1: 00002000 00010000 "u-boot-env" mtd2: 000f0000 00010000 "kernel" mtd3: 002c0000 00010000 "rootfs" mtd4: 000f0000 00010000 "rootfs_data" mtd5: 00010000 00010000 "art" mtd6: 003a0000 00010000 "firmware"
ルーターの様な組み込みデバイスはBIOSが存在しない代わりにフラッシュメモリ上のブートコード、ここではu-bootが実行され、u-bootが機器を運用するためのカーネルを起動します。
WHR-HP-G300Nや多くのBuffalo製組み込み機器は、u-bootに内包された機能としてシリアル転送やtftpからフラッシュイメージの受け取り、自身のOSを書き換える機能を持っています。
このため誤動作や誤操作でOS部を破損しても、u-bootの機構が残っている限り復帰させることが出来ます。u-boot関連の情報はこちらから
ではOpenWrt化したWHR-HP-G300Nを日本語オフィシャルのファームウェアに戻してみましょう。
オフィシャルファームウェアへの復帰
ドライバーダウンロード WHR-HP-G300Nシリーズ | BUFFALO バッファロー
では上記リンクよりオリジナルファームをダウンロードして解凍しておきましょう。他のルーターをお持ちの方は機種にあったものを用意しましょう。
tftpでfirmwareを転送するホストはWindowsXPを使用します。XP以降の場合はtelnetやtftpの機能が無効化されているためこれを有効にする必要があります。telnetクライアントもあると色々捗ります。
ホストとルーターをLANケーブルでつなぎ、ホストのLANアダプタのIPを192.168.11.xに固定します。ルーターが192.168.11.1のIPで起動しているのでxはそれ以外の数値にして通信できるようにしましょう。
プロンプトを立ち上げ、ファームウェアを保存してあるディレクトリへ移動しておきます。メモ帳などに転送用のコマンドを書いてコピーして置き、ルーターが起動した後LanのアップLEDが点灯した時にコマンドを流し込みましょう。厳密にはファームの転送は2度目の点灯後ですがarpコマンドの送信とタイムアウトまでのウェイトを考えると1度目の点灯で問題ありません。
流し込むコマンドは以下の通り
arp -s 192.168.11.1 xx-xx-xx-xx-xx-xx tftp -i 192.168.11.1 PUT whrhpg300n-196
xx-xx-xx-xx-xx-xxの部分はルーターのWAN側のMACアドレスです。Buffaloのルーターの場合は初期SSIDがその値になっているので本体のシールに書かれています。
arpコマンドは目的のIPアドレスがどのMACアドレスを挿すものなのかを判別するためのデータキャッシュを設定します。arp -aを実行すると今現在のキャッシュの情報が表示されます。
うまくコマンドが通ると転送が終了した旨を知らせるメッセージが表示されます。その後、各LEDの点灯が安定したらブラウザからルーターのアドレスへアクセスすればファームウェアが復帰したことが確認できると思います。
なお、通信できるかどうかのタイミングをpingを打ってとらえようという記事を見かけますが、WHR-HP-G300Nに関してはu-bootのシステムがpingを受け付けません。シリアル接続をしてコンソール出力が出来る方もそうそう居るとは思えないのでLEDでタイミングを見計らいましょう。
日本語ファームからDD-WRTへ
web flash、tftpともにリージョンコードが異なるファームウェアは転送時にはじかれます。
Router Database | www.dd-wrt.com
ルーターデータベースから検索できるファイルはリュージョンフリーの特別ファームがあるので、これに書き換えた後に最新のバージョンへアップグレードすると良いでしょう。
日本語ファームからOpenWrtへ
Buffalo WHR-HP-G300N – OpenWrt Wiki
OpenWrtにもリージョンフリーの特別ファームがあり、これを元にOpenWrtへweb flashを使って書き換えができる。無論、tftpのイメージをu-bootのシーケンスから書き込む事も出来ますがweb flashが使える内はこちらの方が手軽でしょう。
書き換え後は、DD-WRTとOpenWrtは共にWANポートからDHCPでアドレスを取得、ローカルアドレスは192.168.1.1となっていて、オフィシャルファームとは違いWAN側からはアクセス出来ないようにフィルタされているので、適宜設定の変更と環境の整備をする事。
OpenWrtはrootパスワード設定後はSSHが有効になりログイン出来るようになるので、Windowsユーザーの方はTeraTermのようなSSHが使えるターミナルエミュレーターを用意しておくと良いでしょう。
ディスカッション
コメント一覧
まだ、コメントがありません