WHR-HP-AMPGをDD-WRT化する

BUFFALOの無線LANアクセスポイント BBル-タWHR-HP-AMPGをDD-WRT化します。
WHR-HP-AMPGは、海外では WHR-HP-AG108 という名称で発売されているようです。

無線LANアクセスポイント BBル-タ WHR-HP-AMPG/E
http://buffalo.jp/products/catalog/item/w/whr-hp-ampg_e/

ダウンロード

▼DD-WRT v24 preSP2 [Beta] Build: 14311 のダウンロード

DD-WRTページで Router Database から Buffalo WHR-HP-AG108 のDD-WRTに関するデータ(v24 preSP2 [Beata] Build: 14311)をダウンロードします。

http://www.dd-wrt.com/site/support/router-database

root.fs
http://www.dd-wrt.com/routerdb/de/download/Buffalo/WHR-HP-AG108/-/root.fs/3363

lzma_vmlinus
http://www.dd-wrt.com/routerdb/de/download/Buffalo/WHR-HP-AG108/-/lzma_vmlinus/3364

▼RedBoot_config_gdb.romのダウンロード
RedBoot_config_gdb.romをダウンロードします。

http://wiki.openwrt.org/_media/oldwiki/openwrtdocs/hardware/buffalo/redboot_config_gdb.rom

WHR-HP-AG108 - OpenWrt Wiki
http://wiki.openwrt.org/doku.php?id=oldwiki:openwrtdocs:hardware:buffalo:whr_hp_ag108

WHR-HP-AMPGの初期化

WHR-HP-AMPGを初期化します。

電源を入れた状態で、INITスイッチ(設定初期化スイッチ)をDAIGランプが点灯するまで(約3秒間)押し続けます。

初期化後、ルータのIP アドレスが192.168.11.1になっていることを確認します。

(注)
動作モーと切替スイッチはAUTO(ルータモード)に設定されていることを確認します。

フラッシュのバックアップ

WHR-HP-AMPGのフラッシュのバックアップをとります。

・PCのIPアドレスを 192.16.11.10 に設定します。
・PCをWHR-HP-AMPGのLANポートに接続します。
・PCのWebブラウザからアクセスします。

http://192.168.11.1/cgi-bin/cgi?req=frm&frm=py-db/55debug.html
・ユーザー名とパスワードを入力します。
 ユーザー名: bufpy
 パスワード: otdpopy
・デバッグ画面のtelnetd起動画面でtelnetdを開始します。
 telnetdリンクをクリックします。
 startボタンをクリックします。
・telnetで 192.168.11.1 に接続します。
・フラッシュのバックアップをとります。
 dd if=/dev/mtdblock/0 of=/tmp/full_flash_backup.rom
・/tmp にバックアップした full_flash_backup.rom をbinary modeで転送します。

redboot configurationの書き換え

redboot configurationを書き換えます。

事前準備

HTTPサーバを用意します。
HTTPサーバとして、GoAhead WebServerを使います。
LinkIconGoAhead WebServerを使う

・PC(192.168.11.10)でHTTPサーバを起動させておきます。
・HTTPサーバに RedBoot_config_gdb.rom を入れておきます。

RedBoot_config_gdb.romの書き込み

・PCからTelnetで接続します。
BusyBox v1.00 (2006.01.05-12:28+0000) Built-in shell (msh)
Enter 'help' for a list of built-in commands.

#
・RedBoot_config_gdb.romを/tmpに転送します。
 cd /tmp
 wget http://192.168.11.10/redboot_config_gdb.rom
・ファイル転送が正しく行われたことを確認します。
# ls
・redboot_config_gdb.romを書き込みます。
 dd if=/tmp/redboot_config_gdb.rom of=/dev/mtdblock/4
・書き込みが正しく行われたことを確認します。

# dd if=/tmp/redboot_config_gdb.rom of=/dev/mtdblock/4
128+0 records in
128+0 records out
#

ルータの再起動とTelnetからの接続

ルータを再起動し、telnet 192.168.11.1 port 9000 で接続します。
TelnetクライアントしてここではPuTTYを使います。
LinkIconPuTTYを使う

<TelnetクライアントPuTTYの起動>
・PuTTYを起動します。
・PuTTYのIP addresに 192.168.11.1 を、Portに 9000 を入力します。
・PuTTYのConnection typeでTelnetを選択します。

<pingコマンドの実行>
・コマンドプロンプトを起動します。
・pingコマンドを実行します。
 ping -w 1000 -t 192.168.1.1

<ルータの再起動とPuTTYのOpen>
・ルータを再起動(電源OFF→ON)します。
・pingコマンドの3回目のレスポンスが確認できたタイミングでPuTTYをOpenボタンをクリックします。

<RedBootプロンプトの表示>
・次のようなメッセージが表示されたら6秒以内に Ctrl-C を押します。
== Executing boot script in 6.060 seconds - enter ^C to abort
・次のようなプロンプトが表示されることを確認します。
RedBoot>

DD-WRTの書き込み

DD-WRTの書き込みを行います。

PC(192.168.11.10)のTFTPサーバを介して、root.fs と lzma_vmlinus をルータに転送し書き込みを行います。

・TFTPサーバに root.fs と lzma_vmlinus を入れておきます。
・RedBootのプロンプトを表示しておきます。

telnetから次のようなコマンドを入力します。

RedBoot> ip_address -l 192.168.11.1 -h 192.168.11.10
(RedBootブートローダとTFTPサーバのIPアドレスを設定します。)

RedBoot> fis init
(オリジナルのファームウェアを削除し、DD-WRTファームウェアの保存領域を確保します。)

RedBoot> load -r -v -b 0x80041000 root.fs
(root filesystem をメモリにロードします。)

RedBoot> fis create -b 0x80041000 -f 0xbe050000 -l 0x002a0000 -e 0x00000000 rootfs
(Root Filesystem をフラッシュに書き込みます。)

RedBoot> load -r -v -b 0x80100000 lzma_vmlinus
(Linux kernel をメモリにロードします。)

RedBoot> fis create -r 0x80100000 -e 0x80100000 -l 0x000d0000 -f 0xbe2f0000 linux
(Linux kernel をフラッシュに書き込みます。)

RedBoot> fis create -f 0xbe3c0000 -b 0x80041000 -l 0x00010000 -e 0x00000000 nvram
(empty nvram をフラッシュに書き込みます。)

書き込みが終了するまで待ちます。

RedBoot> fis list
(メモリのアドレスが正しいかを確認します。)

Name              FLASH addr  Mem addr    Length      Entry point
RedBoot           0xBE000000  0xBE000000  0x00050000  0x00000000
RedBoot config    0xBE3DF000  0xBE3DF000  0x00001000  0x00000000
FIS directory     0xBE3D0000  0xBE3D0000  0x0000F000  0x00000000
rootfs            0xBE050000  0xBE050000  0x002A0000  0x00000000
linux             0xBE2F0000  0x80100000  0x000D0000  0x80100000
nvram             0xBE3C0000  0xBE3C0000  0x00010000  0x00000000

もし、このようなアドレスになっていなければ書き込みに失敗しています。再度、書き込みを行う必要があります。

bootloaderの設定

bootloader を設定します。

telnetから次のようなコマンドを入力します。

RedBoot> fconfig

Run script at boot: true で Enter を押します。

次にコマンドを入力します。

> fis load linux
> exec

と入力します。

ここで、再度、Enter を押します。

Boot script timeout (1000ms resolution): 9
Use BOOTP for network configuration: false
Gateway IP address: 192.168.11.254
Local IP address: 192.168.11.1
Local IP address mask: 255.255.255.0
Default server IP address: 192.168.11.10
Console baud rate: 9600
DNS server IP address: 192.168.11.254
GDB connection port: 9000
Force console for special debug messages: false
Network debug at boot time: false

と設定して

Update RedBoot non-volatile configuration - continue (y/n)?

に y と入力します。

RedBoot> reset
(ルータを再起動します。)

DD-WRTの設定

Webブラウザからアクセスし、DD-WRTとしての各種設定ができるようになります。

http://192.168.1.1/

username root
password admin

参考サイト

無線LANアクセスポイント BBル-タ WHR-HP-AMPG/E
http://buffalo.jp/products/catalog/item/w/whr-hp-ampg_e/

WHR-HP-AG108 - DD-WRT Wiki
http://www.dd-wrt.com/wiki/index.php/WHR-HP-AG108

WHR-HP-AG108 - OpenWrt Wiki
http://wiki.openwrt.org/doku.php?id=oldwiki:openwrtdocs:hardware:buffalo:whr_hp_ag108

変更 2011.11.06
2011.09.11