2015年10月17日土曜日

CorageのギガビットルータCG-BARGXを直してみる

PHPカンファレンス2015に行って来たついでに、秋葉のジャンク屋さんで購入したルータ、CG-BARGX、980円もしたのですが、実は有線ルータだったり地雷ルーターだったりで色々残念だったのですが、 なんとファームウエア不良っぽく、PCからは認識されないわ工場出荷時にリセットできないわで早速楽しめそうです(笑)

あ、毎度のお約束ですが、今回は無線LANじゃないので電波法云々はなさそうですが、分解修理は自己責任になります。内容の正確性も含め一切の保障はありません。


まずは分解。後ろにあるゴム足の中にネジ(T8かな?)があるので、それを外すと、特に爪もなくカパッと外れます。
このあたり親切。
カパッと外すとこんな感じ。




シリアルが出せそうな4ピンがあるので、そこにヘッダピンを着けます。
VCCは必要ないので、TX、RX、GND だけ着けました。


ここまで出来れば、あとは適当なRS232C-TTL変換(3V系対応のやつ)でつなぎ、57600bpsで接続して電源を入れると、UBootの画面が出てきます。
どうやら、ブートローダは生きているようです。

では、ファームを流していきます。
必要なものはTFTPサーバと、純正ファームウエアです。TFTPサーバはググれば色々出てきますので、適当なのをインストールしてください。ファームは解凍し、中のbargx_130.fimをTFTPサーバの転送用ディレクトリに配置します。
ルータのLANポートとPCをLANケーブルでつなぎ、PC側のIPを192.168.1.100にします。
また、PCに無線LANやBlueToohなどが有る場合は無効化し、Windowsファイヤーウォールやアンチウイルス系のファイヤーウォールは無効化します。
無効化しないと、TFTPでの転送が出来なかったり、コケたりします。また、Bluetoothや無線LANが生きているとうまく転送されなかったりしますので、ルータとPCを直結させることが重要です。
シリアルコンソールはつないだままです。こちらでモニターしつつ、LAN経由でファームを流していきます。
では、ファームを流していきます。TFTPサーバを起動し、LANケーブルの接続など準備できたら、
いったんルータの電源を切り、電源を入れたら、シリアルコンソール上ですばやく「2」を押します。
こんな画面になればOKです。

2: System Load Linux Kernel then write to Flash via TFTP.
 Warning!! Erase Linux in Flash then burn new one. Are you sure?(Y/N)
と聞かれるので、Yキーを押します。

 Please Input new ones /or Ctrl-C to discard
        Input device IP (192.168.1.1) ==:
ときかれるので、そのままEnterをおします。

        Input server IP (192.168.1.5) ==:
ここで、192.168.1.100と入力します。

        Input Linux Kernel filename (firmware.bin)==:

では、ファームウエアのファイル名bargx_130.fimを入力します。

ファームの転送が開始されます。


 ETH_STATE_ACTIVE!!
Start httpd!!!
In GemtekHttpdStart...
HTTPD from server 192.168.1.100; our IP address is 192.168.1.1

 HTTPD_TIMEOUT_COUNT=10,Load address: 0x80100000
Waiting: T T T T T

とでたら、ブラウザを開き、192.168.1.1にアクセスしますと、ファームをアップロードする画面が出ますので、再度ファームをアップロードします。

再度ファームが書き込まれます。

シリアルコンソール上に

 Copy 2871296 byte from 80100289 to Flash... bf060000 => OK!!!
done

At fw success!!!

とでたら、一旦ルータの電源を入り切りし、再起動させると、通常起動します。
ブラウザで192.168.1.1にアクセスすると、管理ページが開けます。

以上で修理完了です。

なお、この要領でDD-WRTなど純正以外のファームに書き換えることも技術的には可能です。
UBootさえ生きていれば、文鎮化しても純正ファームに戻すことが出来ます。

余談ですが、このルータ、シリアルコンソールで特にPWなしでいきなり中のLinuxにアクセスできます。
FWの構成自体はIPTablesのようですね。
FWのVer1.0のころはTopコマンド使えたのですが、最新の1.3 では削除されたようです。容量の問題かな?
/proc/status_led_ctrlにあるファイルをcatで開くと、Lチカしたりできます。









0 件のコメント:

コメントを投稿