なにこれ
今までOpenWrtを焼く際やファームウェア破壊した際や,Cisco*1*2とかする際には適当なLinuxマシンでシリアルポート接続をして修復していた.
Windows上では出来ないのかと思い色々試した結果を書いておく.
対象としてはOpenWrt焼くのにポピュラー(?)な WZR-HP-G302H でいきます.*3*4
用意するもの
おもちゃ
トルクスドライバー
Amazonで「精密ドライバーセット」とか調べてよさそうなのを.
分解に使用する T-xxのドライバー
T-10以下のサイズを用意すると便利
僕はこういうおもちゃ使ってます.
FT232R
こういうの.
APのピンに対してシリアル接続する際に使う.
PL2303とかでも平気だが,Linuxとは異なりWindows向けドライバの用意と準備が面倒だった.どっかに書く.
ソフトウェア
- ファームウェア binファイル
言わずもがな - tftpd64
TFTPサーバとして
cmd.exeでTFTPコマンド使ってもPUTが思うように動かないので専用ソフトウェア用意しました.
install版だとインストールの必要があるのでportable版にしてる. - Stirling
バイナリエディタ - Teraterm
コンソール接続に使う
tftpd64
これの設定を無視していたので時間が溶けた.*5
tftpd64を動作させ,Settingsをこんな感じにしておく.
TFTP Client が生きているとうまくいかなかった.
ここではTFTP ServerとDHCP Server以外は無効化する.
Bind TFTP to this addr を適切なNICのアドレスを選択し固定する.
イーサネットですね.
Logは取らなくても平気.*6
Stirling
焼きたいファームウェアを用意した後にバイナリ 27 05 19 56
をファイルの先頭にしたいので これより前を消す.
焼く
WindowsのIPアドレスを固定して焼く.
192.168.11.2
とか.
最近の(5Ghz対応のAP)は焼き込みの際にu-boot上でアドレスや,ファームウェアファイル名の指定ができるので簡単になりましたね.
ここから先はLinuxでやる知識をそのまま使えるのでおしまい.
こぼれ話
シリアル接続の際にPL2303が使えないよ!
調べたら出てきた.
中華コピー品対策で古い純正品もまとめてディスコンされたそうです.ベンダーがチップレベルでこういうのやると被害が広範囲ですね.
対策もなんか非公式なソフトウェアでドライバのバージョンを対策以前の物にバインドして,更にレジストリを書き換えてWindows Update等で更新されない様に制御されるです.
実際に使ってみたけどWindows起動前にPL2303を接続していないと上手くいかなかったりして不安定だったので復元ポイントで戻しました.PL2303はLinux限定で動作するくらいに思っておいた方がいいのかもしれません.
PL2303好きだったんだけどなぁ...
手持ちのUR232Rが死んだときの為にPL2303での解法を見つけておかなきゃ.