ssh で接続し、WHR-300HP2 の調査(?)をしてみました。
root@DD-WRT:~# cat /proc/mtd |
次の方法でパーティションの丸ごとバックアップをしました。
- ddコマンドでパーティションを丸ごとコピー
dd if=/dev/mtdblock/0 of=/tmp/whr-300hp2-mtdblock-0.bin
...
dd if=/dev/mtdblock/7 of=/tmp/whr-300hp2-mtdblock-7.bin - WinSCP で PCに転送
u-boot から u-boot-env の内容を読み込んで起動するらしい。(間違っていたら教えてください。) ということで u-boot-env の内容を strings で表示させてみました。
bootcmd=tftp |
tftpサーバを立ててファイルを読み込ませるには
- ファイル名をfirmware_WHR-300HP2.ram
- tftpサーバのアドレスを 192.168.11.168
にしておけば良さそうですね。tftpサーバを見に行かせるにはAOSSボタンを押しながら電源を入れる必要があるようです。試す気は無いですけど。
よくある復活時に指定する MACアドレスは 00:AA:BB:CC:DD:10 をでよさそう。
- arp -s 192.168.11.1 00-AA-BB-CC-DD-10
- tftp -i 192.168.11.1 put {ファームファイル名}
ただし、bootdelay=1 ってのが気になります。1秒しか待ってくれないのだとすると、tftp での復活は無理ですよね。printenv とか ubootenv list が入っていなかったので、実際の値は確認できていませんが...
なんだったらバックアップしたファイルをバイナリエディタで 5 辺りに書き換えて /dev/mtdblock/1 に書き込んでおくといいのかもしれません。
tftp用のファームは dd-wrtのサイトから落とすのだったら firmware.uimageを使用、既存のファームを使うのだったらヘッダーの改変が必要です。hex で 27 05 19 56 でから始まるようにバイナリエディタ等で修正します。
最終的に導入予定の米国バッファローの WHR-300HP2D のファームだと上の図の黒反転している部分を削除すれば okですね。
ヘッダー改変版ファームを作成したところまでをフェーズ2 として終えることにします。
2016/10/17追記dd によるパーティションのバックアップをしてみましたが、純正ファームの状態ではないのであまり意味がない気がします。戻しも u-boot と u-bootenv が生きていれば何とかなるようですし。
0 件のコメント:
コメントを投稿