DD-WRT まだ続く

今までにも、何回か DD-WRT の紹介をしていますが、実は一番初めに DD-WRT化したのは、WHR-HP-AMPG です。

今回、忘備録としてDD-WRT 化の手順を書いておきたいと思います。

WHR-HP-AMPG は海外では、WHR-HP-AG108 という名称で発売されています。

DD-WRT の ページで Router Database を調べると、

が、提供されていますので、ダウンロードします。

それと、RedBoot_config_gdb.rom が書き換えに必要なため以下からダウンロードします。

http://wiki.funkfeuer.at/index.php/Openwrt_Kamikaze_auf_WHR_AG108_HOWTO Redboot Konfiguration

OpenWrt -> リンクはこちら Holgi’s redboot configuration

自分で、作成する場合はそれなりのページを参考にしてください(ちょっと手抜き)。

以下 DD-WRT の書き換えは以下のページを参照しています。
http://www.dd-wrt.com/wiki/index.php/WHR-HP-AG108

まず、WHR-HP-AMPG を初期化します。初期化するとルーターの IP アドレスが 192.168.11.1 になります。初期化しないで別の IP アドレスのまま書き換えを行うとファームの書き換えに成功したように見えても、実際に書き換えられませんでした(見事ハマりました)。

まず、現ファームのバックアップをとりましょう。
PC の IPアドレスを 192.16.11.10 に手動で設定して、LANポートに接続します。

http://192.168.11.1/cgi-bin/cgi?req=frm&frm=py-db/55debug.html

とブラウザから入力するとユーザー名とパスワードを聞いてきますので

  • ユーザー名:bufpy
  • パスワード:otdpopy

と入力してデバッグ画面に入ると telnetd を起動する画面があるので、 telnetd を開始します。

telnet で、192.168.11.1 へ接続し、

dd if=/dev/mtdblock/0 of=/tmp/full_flash_backup.rom

として /tmp にバックアップした後、binary mode で Get しておきます(これでOK)。

DD-WRT への書き換え開始です。

はじめに、192.168.11.10 の PC で HTTP サーバーか ftp サーバーを立ち上げて RedBoot_config_gdb.rom が wget で取得できるように設定しておきます。

上記の手順で telnet 接続を行い、以下のコマンドで RedBoot_config_gdb.rom を転送し書き込みます。

cd /tmp
wget http://192.168.11.10/RedBoot_config_gdb.rom
dd if=/tmp/RedBoot_config_gdb.rom of=/dev/mtdblock/4

書き込みが終了すれば、ret_boot の書き込み完了。第一段階終了です。

ルーターを reset(電源OFF/ON)してすぐ telnet 192.168.11.1 port 9000 へ PC から接続すると

== Executing boot script in…

と表示されるので、9秒以内に Ctrl-C を押下します。それで RedBoot> とプロンプトが表示されれば成功です。

次に、tftp Server を 192.168.11.10 のパソコンで起動させます。

今回は、Windows は割愛させていただきます。(PumpKIN or TFTP@SF.net を御覧下さい) Mac の場合は、元々 tftp Server がインストールされていますので、/private/tftpboot/ に root.fs と lzma_vmlinus を置いて

sudo launchctl load -F /System/Library/LaunchDaemons/tftp.plist

と実行すれば、tftp Server が起動します。

後は、telnet から(RedBootのプロンプトが表示されているはずです) 以下のコマンドを入力します。

ip_address -l 192.168.11.1 -h 192.168.11.10
fis init

load -r -v -b 0x80041000 root.fs
fis create -b 0x80041000 -f 0xbe050000 -l 0x002a0000 -e 0x00000000 rootfs
load -r -v -b 0x80100000 lzma_vmlinus
fis create -r 0x80100000 -e 0x80100000 -l 0x000d0000 -f 0xbe2f0000 linux
fis create -f 0xbe3c0000 -b 0x80041000 -l 0x00010000 -e 0x00000000 nvram

書き終わるまで待ちます。

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 を設定します。

fconfig

として Hit enter at “Run script at boot: true”

fis load linux
exec

と入力します。

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)?

に yes と答えてリセットすれば成功です!。
diag ランプが点灯したままになるのは仕様のようです(逆に Diag ランプが消灯してしまったら書き換え失敗です)最新ファームでは修正されています。

IP Address = 192.168.1.1, username=root, password=admin
になっているのでブラウザから開けば各種設定ができます。

 

元に戻すときは、http://www.dd-wrt.com/wiki/index.php/WHR-HP-AG108 を参考に書き換えてください。

Revert to original firmware

1. バックアップしたファイルを以下のように分割します。

dd if=full_flash_backup.rom of=vmlinux.bin.gz bs=1 skip=327680 count=740248 
dd if=full_flash_backup.rom of=rootfs bs=1 skip=1179648 count=2752512 
dd if=full_flash_backup.rom of=user.property bs=1 skip=4063232 count=65536 
dd if=full_flash_backup.rom of=Radio.Config bs=1 skip=4128768 count=65536

2. 上記ファイルを tftp の root ディレクトリにおいて RedBoot を起動します。

3. 以下の手順で ファームを書き換え元に戻します。user=root, password=なしに戻るはず)

ip_address -l 192.168.11.1 -h 192.168.11.10
fis init -f 

load -r -v -b 0x80041000 rootfs 
fis create -b 0x80041000 -f 0xBE120000 -l 0x002a0000 -e 0x00000000 rootfs 

load -r -v -b 0x80002000 vmlinux.bin.gz 
fis create -r 0x80002000 -e 0x80182398 -l 0x000B4B98 -f 0xBE050000 vmlinux.bin.gz 

load -r -v -b 0x80041000 user.property 
fis create -b 0x80041000 -f 0xBE3E0000 -l 0x00010000 -e 0x00000000 user.property 

load -r -v -b 0x80041000 Radio.Config 
fis create -b 0x80041000 -f 0xBE3F0000 -l 0x00010000 -e 0x00000000 Radio.Config

最後のコマンドが失敗しても無視しましょう。

4. bootloader の設定をします。

fconfig

として Hit enter at “Run script at boot: true”

go_script

と入力しします。

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

Yes と答えて reboot します。

3 Responses to “DD-WRT まだ続く”

  1. 初心者 より:

    こんにちは
    WHR-HP-AMPG の RedBoot_config_gdb.rom がダウンロードできる
    場所をご存知ではないですか?よろしくお願いします。

  2. macman より:

    こんにちは。こちらからいかがでしょう。OpwnWrt wiki の WHR-HP-AG108(WHR-HP-AMPG) のページ http://wiki.openwrt.org/doku.php?id=oldwiki:openwrtdocs:hardware:buffalo:whr_hp_ag108 から Holgi’s redboot configuration のリンク
    http://wiki.openwrt.org/_media/oldwiki/openwrtdocs/hardware/buffalo/redboot_config_gdb.rom
    は生きているようです。お試しください。

  3. b-xel より:

    お手本にdd-wrt化出来ました
    ありがとうございます。

Leave a Reply