極小LinuxボードVoCoreで遊ぶ【復旧か?!編】
ということでレンガと化した僕のVoCoreですが、ここまでを振り返りたいと思います。
初boot→WiFi接続→Webから管理ツールLuciにアクセス(ちなみに初期のパスワードはvocoreだよ)→公式の注意書きでLuciでは設定するな→しょうがないからsshで接続して様子を見る→先日ビルドしたFirmwareを試してみよう→LuciからFirmwareの更新→再起動完了→再度WiFiで接続→でもWebアクセスができなくなった(Luci不在)→sshで接続を試みるもパスワードがわからない→どうやらrootパスワードは未設定の様子→telnetでloginできるらしい→telnetでloginしpasswdコマンドでパスワード設定→sshでの接続に切り替え→Luci探すも入ってなさそう→Firmwareの再ビルド→scpしてからmtbコマンドでFirmware書き換え→再起動→WiFi消えたー!(イマココ)
ということで、さっそく復旧を試みましょう。
WiFiで繋げなくなってしまったので、しょうがないのでシリアルコンソールから接続してみます。bootは無事にしてるといいな。
ところがこの極小基板、ピンソケットもとても小さく、またUART2のTX/RXはまだピンソケット未実装。ピンソケット自体は付属してたのではんだづけしてもいいけど…と思ってたら、公式のFacebookアカウントでこんな投稿が。
ジャンパケーブルのピンの先を折り曲げて引っ掛けてるっ!ってことで、これはそのままパクらせてもらうことにして、接続。
この状態で、
sudo cu -l /dev/tty.usbserial-A101NX25 -s 57600
で接続すると、コンソールの確認ができる。どうやらbootはしているようだが、WiFiが立ち上がっていないようだ。とりあえず、loginはできた。
次に、UbootでのFirmwareの更新に進む。
ファイル転送はkermitで行うということで、macで使えるkermitをインストールする。
brew install c-kermit
そしてkermitの立ち上げ。
kermit
ここから先の手順については、ここを参考にした。
Topic: Connecting and flashing through UART & U-Boot with OSX | Vonger's Blog
set line /dev/tty.usbserial-A101NX25 (※利用するUSBシリアル変換ボードに合わせる)
set speed 57600
set serial 8N1
set carrier-watch off
set flow-control none
set prefixing all
set modem none
set file type bin
set file name litconnect
ここで、VoCoreの電源をいれるとともにキーボードの「x」を連打。すると通常のブートプロセスではなくUbootが立ち上がり、プロンプトがVoCore>となる。
setenv bootdelay 10
saveenv
環境設定をした後、ファイルの転送にうつる。
loadb
すると、転送モードに入るので、Crtl-\(円マーク)を押してからcを押すとkermitのプロンプトに戻る。
そこで
send /Volumes/VoCore/openwrt/bin/ramips/openwrt-ramips-rt305x-vocore-squashfs-sysupgrade.bin
するとファイルの転送が始まる。およそ10分でファイル転送終了。
再びkermitのプロンプトに戻るので、
connect
で再びVoCoreのUbootに接続。
Connecting to /dev/tty.usbserial-A101NX25, speed 57600
Escape character: Ctrl-ö (ASCII 28, FS): enabled
Type the escape character followed by C to get back,
or followed by ? to see other options.
----------------------------------------------------
## Total Size = 0x00300004 = 3145732 Bytes
## Start Addr = 0x80100000
このファイルサイズを記録しておく。
erase linux
で今のLinuxファームウェアを消去して、いよいよFirmwareの書き込み。
cp.linux 300004
ここでさっきの数字を使う。
これで、書き込みのlenが、この数字と一致すればコピー完了!のはずが…。
なんで!書き込まないじゃん!…orz
さっきのページを見ると…
Attention:
Make sure that cp.linux outputs the same length as given as input parameter! In my example: 340004
I had some issues that cp.linux used another size and only after several re-loads and re-flashing it worked!
って、何度やってもうまくいかないよ。
一応立ち上げてみたら…
U-Boot for VoCore(based on RT5350)Warning: un-recognized chip ID, please update bootloader!
..
Version: May 30 2014 20:52:36Press 'x' to console...
Booting image at bc050000 .Bad Magic Number,FFFFFFFF
おうふっ、さっきよりも圧倒的に悪化してるよ…。
今晩は泣きながら寝ることにします…。