よわいプヨグヤマの奮闘.log

ぷろぐらまじゃないです、ぷよぐやまです。

OpenWRT入れたWHR-G301Nを純正ファームに戻したい(文鎮経由)

注意!

このブログを読んで実行する場合、あくまでも自己責任でよろしくお願いします。

 

経緯!

私の部屋の電波が異常に悪い、ルーター2台で中継器を作ろう

→前にハードオフで買ったWHR-G301N+WLI-TX4-AG300Nを使おう

→あっ、WHR-G301NはOpenWRT入れてるやん!

→電波出せないやん!!

→純正ファームに戻そう!!!

 

TFTPでPUTしても受け付けてくれない…!

ファームウェア書き換えの一般的な方法、TFTP。

最初にちゃんとU-BootでTFTP受け付ける設定にしたはずなのにうまく行かない。

ここで半日潰れた、流石に寝た。

 

文鎮した

SCPでファーム送ってmtdに無理やり書き込んだが、案の定文鎮になった。

たまに行くハードオフに同じ物が2個まだあったなーとか考えたけど、少々遠いので今あるものを直したい。

 

UART使うしかない

シリアルコンソールとか、あまりいじったことがない。

それに、UARTが扱える物なんて持ってたか?

_人人人人人人人人人人_
> ラズパイあるやん <
 ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y ̄

BIOSの修復にもUART通信にも使えるラズパイ、一家に一台の時代が来るのでは…。

 

ラズパイ側の準備

この記事を参考にして、Raspberry PiでUART使えるようにする。

qiita.com

機種によって微妙に違うらしいので、各自でググってほしい(切実)

とりあえず、私のPi 2 model Bはこれで出来ました。

(私はラズパイにArch Linux入れてるけど、これで行けた)

 

※注意

今回はルーター側の電圧が3.3Vだったので成功したけど、

5Vだったらラズパイが壊れちゃう可能性あるらしい。

 

ルーター側の準備

見た目で大体、左からRX, TX, GND, VCCだと思うので適当に3本ピンをつけた

「そんなんでいいのか?」って言われそうだけど、ダメに決まってる。

テスター持ってる人はちゃんと確かめよう。

VCCは使うなってOpenWRTのWikiに書いてあったので、ピンは付けなかった。

f:id:clomsync:20180315164309j:image

↑実はRXのランド面が剥がれたので、近くの抵抗からピンに繋ぎ直してる。

 

Raspberry Piと接続
f:id:clomsync:20180315170534j:image

ルーター : Raspberry Pi

RX → TX

TX → RX

GND → GND

って感じにブレッドボード経由で配線した。

メス→メスなケーブル持ってない…。

 

通信開始

ラズパイに適当にminicomを入れて、minicom -b 115200 -o -D /dev/ttyAMA0してから、ルーターの電源を入れたら普通に文字が出た。

うまく行かないときは正しく接続されているか確認する。

なんか普通にうまく行ったのでラッキーって感じだ。

 

復元する

いろいろ調べてみたが、Buffalo公式からダウンロードできるファームウェアにはイメージ以外にも色々と含まれてるらしい。

このブログを参考にしてbuffalo-encでファームウェアを分解する。

crckyl.hatenablog.com

buffalo-encを準備

$ git clone https://github.com/openwrt/openwrt --depth 1

$ cd openwrt/tools/firmware-utils/src

$ gcc -o ~/buffalo-enc buffalo-enc.c buffalo-lib.c

ファームウェアを分解

$ unzip -x whrg301n-186.exe

$ cd whrg301n-186

$ grep -abo start whrg301n-186
20:start
208:start

$ tail -c+209 < whrg301n-186 > whrg301n-186.bin

$ ~/buffalo-enc -d -i whrg301n-186.bin -o firmware

Magic : 'start'Magic : 'start'

Seed : 0x84

Product : 'WHR-G301N'

Version : '1.86'

Data len : 3678208

Checksum : 0xd9339085

 

これで取り出せるfirmwareってファイルがwhrg301nのイメージファイルに当たる。

あとはこのブログの「ファームの取得」以降の手順で書き込めば完了。

jyn.jp

私はルーター側の設定を変えるのが面倒だったので

のようにして実行した。

 

特に何も問題が出ずに書き込めて、使えるようになった。

かなり引用とかして端折ったけど、長くなってしまったな…