geko のファームウェアアップデート

先日書いた、geko でとったログの日時がおかしい件。検索してみたところ、どうも 2010 年になってから発生したバグで、最新のファームウェアに更新すれば解決するらしい。ということで、ファームウェアの更新を試みる。
Garmin GPSファームウェア更新は、以前は Windows でしかできなかったが、現在は WebUpdater というソフトを使い、Mac でも実行できるようになった。とはいえ、対応しているのは USB 接続になった最近の機種だけで、geko (知らなかったが、いつのまにか geko 201 は discontinued になっていた) などのシリアル接続の古い機種には対応していないようだ。試しに、Keyspan USA-19HS 経由で接続 (ログの抽出はいつもこれを使って行なっている) して WebUpdater を起動してみたが、やはり見つけてくれなかった。
となると、Windows 版を使うしかないのだろう。まずは、VirtualBox 上の Windows XP で USA-19HS を認識させて……、と考えたのだが、「使用中」と言われてうまくいかなかった。確かに、ネットワークアダプタに現われたりしていることから、OS かそれに近い部分でつかまれてしまっているのだろう。
では、Mac 側で見えているシリアルポートを、なんとかして VirtualBox 上の Windows XP から接続できるようにすることはできないだろうか。バーチャルマシンの設定で、Ports → Serial Ports を開くと、ホストデバイスのポートを COM ポートとして見せることができるようだ。早速、Port Mode で Host Device を選択し、Port/File Path に /dev/tty.KeySerial1 を入力。そして起動……、起動しない。起動中の画面のままで止まってしまう。むう、指定の方法がおかしいのだろうか。。/dev/tty.USA19H1623P1.1 も試してみたが、やはり同じ。いい方法だと思ったのだが、だめか。
いろいろと検索してみると、どうも SerialClient という、パイプを使ってホストのシリアルポートとゲストのシリアルポートを中継してくれるようなソフトがあるらしい。が、残念ながら配布元が閉鎖されていた。WebArchive からなんとか入手して試してみると、今度はちゃんと起動した。シリアルポートもちゃんと見えている (その前にハードウェアの再スキャンをしたのだったか)。まずはカシミール3D を起動して、ログの転送を……、なにかしようとはしているようだが、反応がない。SerialClient のログを見るとなんらかのデータは送られているが、geko の方が反応していないようだ。うーむ、手詰まりか。
こうなると、もはや Mac 上でなんとかするのは難しそうだ。Windows マシンでやるしかないか。しばらく動かしていないのでちゃんと動くかどうか心配だが……。まずは、比較的あたらしいマシン (といっても Pentium II とかだ) を起動。例によって日付がふっとんでいるので、BIOS 設定で日付だけあわせて起動……、なんか時間がかかるな……、あれ? SCSI ディスクを認識していない? ……、お、片方だけ認識したぞ。あー、でも、そっちは OS が入っている方じゃないような……、むー、案の定起動しない。何度か再起動を繰り返してみたが、やはり認識したりしなかったりで起動不能。これはちょっと重症だな。SCSI コントローラの問題か、ディスクの問題かわからないが、geko のファームウェアをアップデートするだけのためにこの原因を究明するのは厳しい。では、もう一台に賭けてみるか。
もう一台はさらに古い。しかも電源もなにもつながっていない状態。電源やらディスプレイやらマウスやらネットワークやらをつないで、電源オン。お、なんとか起動している様子。なんだかなつかしい Windows 98 の起動画面が現れ、無事立ちあがった。かなり古そうなバージョンの カシミール3D を起動して、ログの転送をテスト。うむ、やはり日時はおかしな状態だが、転送は問題なし。さて、WebUpdater をダウンロードしよう。IE6 を起動して Garmin の Web サイトへ接続。WebUpdater のダウンロードページへ。Windows XP 以前の場合は若干古いバージョンのものしかないようだ。ちょっと不安だが、まあ仕方がない。
ダウンロード、インストールが済み、いよいよアップデートに挑戦。起動すると、最新バージョンじゃないからアップデートするか、というダイアログが現れる。いや、だから、対応してないから古いのをダウンロードしたのだけど……。ダイアログをスルーして、GPS の検索開始。あっさり COM1 につながった geko を発見。最新のファームウェアのバージョンである、2.9 という数字も表示されている。うむ、順調だ。更新の途中で止まったりしないように、他のアプリケーションを終了させて、更新開始。ファームウェアをダウンロードして、geko へ転送。geko に LOADING と表示される。そして待つこと、2、3分。アップデート完了!
geko が再起動して、無事動きだした。これは、成功かな? ファームウェアのバージョンはちゃんと 2.9 に変わっている。日付がなぜか 1916年の 1月 1日とかになってしまっているけど、GPS の電波を捉えられればちゃんとしたものになるはず。時刻が 9:00 になっているのは、日本標準時だからか? この状態で再度ログを転送してみたが、日付はおかしいまま。アップデートしても、記録済みのログは直らないようだ。ま、これは仕方ないか。
あとは geko を屋外に持ちだしてログとり (と、正しい日時の取得) をすればテスト完了。日付がおかしなことになっているので、なんとかして (というか方法を忘れた) コールドスタートモードにしてやらなければいけないかと心配したが、外に持ち出したら、あっさり位置も日時も取得できた。これなら大丈夫そうだ。適当に自転車で 10km ほど走ってログをとってみた。これも問題なし。あとは転送してみてどうか、ってところ。とりあえず今日はここまで。

(11/13 追記) 取り込みも問題なし。これで大丈夫かな。
しかしファームウェアのバージョンアップにこの手がいつまで使えるかわからないことを考えると、別の方法を確保しておくべきなのかなとも思う。ま、geko 自体が discontinued になったことで、今後ファームウェアの更新があるのかどうかわからないけども。