読者です 読者をやめる 読者になる 読者になる

そのボード、僕が積んでおきます。

たくさんの電子工作基板が積みっぱなしになってるので、頑張って工作しようとしていますが、どんどん溜まっていっております。

極小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アカウントでこんな投稿が。

VoCore - タイムラインの写真 | Facebook

 

f:id:hine:20141114023458j:plain

ジャンパケーブルのピンの先を折り曲げて引っ掛けてるっ!ってことで、これはそのままパクらせてもらうことにして、接続。

f:id:hine:20141114024439j:plain

この状態で、

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 lit

connect

 ここで、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分でファイル転送終了。

f:id:hine:20141114031502j:plain

再び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:36

Press 'x' to console...


Booting image at bc050000 .Bad Magic Number,FFFFFFFF

おうふっ、さっきよりも圧倒的に悪化してるよ…。

 

今晩は泣きながら寝ることにします…。