昨日の夜、自分の手持ちの3台目のFONルーターのLa Foneraをdd-wrt化をしていたが、ファームウェアのインストールに失敗してしまった。
失敗は、ファームウェアのアップデートをしている最中に、SSHコンソールのPuTTYが(たった1回だけ!)Enterキーを押してしまったことにより落ちてしまった事に起因する。
その後いろいろトライ(リセットボタンを押しっぱなしとか)するが、イーサネット経由でLa Foneraに接続が一切できなくなってしまったのだ。
元々500円で購入しものとは言え、このままあきらめてしまうのはもったいないと思いググって調べてみると、La Foneraのシリアル信号(TTL)は、PCのRS-232Cのシリアルと信号のレベルが異なるみたいで、そのままでは接続できないようである。
変換するための回路が必要で、旧式の携帯電話のデータ転送ケーブルが流用できるらしいが、私はそんなものとっくの昔に捨ててしまった。
・携帯電話転送ケーブルによるLa Foneraへの接続方法
http://mycroft.blog.drecom.jp/archive/77
改めて、La Foneraよりも高価な転送ケーブルを購入するのもどうかと思い調べていると、変換回路の回路図も検索すればいろいろ出てきた。
・RS-232CからTTLへの変換回路
http://sodoityourself.com/max232-serial-level-converter/
なぜか自分の手元には、偶然にも今回の回路作成に必要な必要なパーツである、信号レベルの変換用のICである、MAX232が1つと、コンデンサーが4つある。これで作らないわけにはいかないと、今日はシリアル経由での接続に挑戦してみた。
La Foneraは、裏のゴム足内にある2箇所のねじを外せば蓋が開く。
内部に10ピンの端子があるが、ここにシリアル接続をすることになる。端子のピン配置は以下のサイトを参照した。
・La Foneraのピン配置
http://wiki.livedoor.jp/hide_system/d/FON%20La%20Fonera%20FON2100E
さっそく接続してみる。いろんなサイトで、電源(Vcc)は接続の必要が無いと書いてあるのだが、今回作成した回路では接続しないと通信ができなかった。写真の赤い線が後で追加した電源(Vcc)である。
TTSSHで接続開始。RedBootが立ち上がってるのが見えるが、ファームウェアアップ失敗によっておかしなことになっているのがわかる。
そこで、La Foneraの電源を入れなおして、すぐにCtrl-Cを押してRedBootを中断させ、コマンドを打ち込みながら再度ファームウェアアップにチャレンジした。
ここからがシリアル経由でのファームウェアアップデートであるが、まず以下から最新の「root.fs」と「vmlinux.bin.l7」をダウンロードしておきます。
http://www.dd-wrt.com/dd-wrtv2/downloads.php
次はパソコン側でPoor TFTPを起動しておく。Poor TFTPを起動したら、Authorized Directory(ホームディレクトリ)を、先ほどダウンロードした「root.fs」と「vmlinux.bin.l7」の場所に設定(Select)をしておく。
準備ができたら、La FoneraとパソコンをLANで接続し、パソコンのIPアドレスを192.168.1.1 にする。
RedBoot> ip_address -l 192.168.1.2/24 -h 192.168.1.1
RedBoot> fis init
RedBoot> load -r -v -b 0x80041000 root.fs
RedBoot> fis create -b 0x80041000 -f 0xA8030000 -l 0x002C0000 -e 0x00000000 rootfs
RedBoot> load -r -v -b 0x80041000 vmlinux.bin.l7
RedBoot> fis create -r 0x80041000 -e 0x80041000 vmlinux.bin.l7
RedBoot> fis create -f 0xA83D0000 -l 0x00010000 -n nvram
RedBoot> reset
ここまで、回路の自作を思いついてから約2時間、リセットの後、LANケーブルでのdd-wrtへの接続ができるようになりました ヤッタ-