ド素人がKindle2のシリアルコンソールに挑戦

Kindle Globle Wireless(Kindle 2 Int’l版)でシリアルコンソール接続ができたのでその備忘録。日本語表示やPDFファイルのダウンロード等のハックで便利になってきたKindle。一方で文鎮化するリスクはすぐそこにある。「備えあれば憂いなし」ということでコンソール接続にチャンレジしてみた。相応の知識やスキルがあれば諸先輩方のサイトに書いてあるママやればできるはずなのだが、なかなかド素人の作業はそうもいかない。つまづいた部分を回想しながらまとめてみた。

—Updated on Feb 19, 2010—
このエントリは、2010年2月17日にKindle Softwareのバージョン2.3.3が配信されたことで古い記事となっております。フォントハックのアップデータ等のバージョンに注意してください。

04minicom

<注意喚起情報>
Kindleのハックは非常に危険です。文鎮化するリスクはもちろん、同一ハックでもそのインストール/アンインストールの方法や異なるハックの組合せ等によっては初期状態のファイルを失い工場出荷状態に戻せないリスクがあります。またハックした状態で”Restore to Factory Default”した場合やFirmwareの自動バージョンアップでも文鎮化しますので注意が必要です。さらに基板回路部分に触るため不慮の事態を招く恐れがあります。いかなる事象に対しても当方、または紹介するツールの開発元およびサイト運営者による保証はありません。完全に自己責任です。

【準備したもの】
・ミニUSBケーブル(どこでも売ってる)
・FT232RL – USBシリアル変換モジュール(秋月電子通商からネット経由で購入)
・ICピンクリップ(秋葉原の若松通商)
・リード線
・ZIFケーブル(変換名人:Amazonから注文)

まず、ミニUSBケーブルは家にあったものを使えばいいので、その他のものを買いに秋葉原のヨドバシへ。パソコンを自作した経験すらないので恐る恐るPCパーツ売り場へ足を踏み入れる。さっぱりワカラン。こんな部品みたことないというモノばかり。結局買ったのはホビーコーナーに置いてあったリード線のみ。探すのが面倒になり、USBシリアル変換モジュールは秋月電子、ICピンクリップは若松通商へWebで注文、ZIFケーブルもついでにネットで注文(次回行ってみたらヨドバシには置いてあった)。なんとかモノは揃った。

IMG_7088

IMG_7033

【Mac側の準備】
1)FTDI社のサイトからUSBシリアル変換モジュールのMac用ドライバをダウンロード・インストール
2)ターミナル minicom のコンパイルするためのXcodeのインストール
3)minicom-2.2のダウンロードとコンパイルおよび初期設定
ターミナルの”minicom”というのが高機能でいいらしい。モデムとか聞くとパソコン通信の頃のピーガーと鳴ってた時代を思い出し懐かしい気分になったのは束の間。バイナリベースでの配布はしていないらしく、ソースコードから自分でコンパイル作業が必要。まず、コンパイラーがないのでアップルのADCメンバー登録をしてXcodeをダウンロード。1GB近くあるのでダウンロードしてインストールするのも結構大変なわけで。さて、いよいよminicomをコンパイルするが、大昔にC言語で”Hello, world!”をktermに表示させた頃を思い出しつつ、ターミナルを起動して “Mac OS X (Snow Leopard)でSerial Console (シリアルコンソール)“にあるとおりにやってるはずだが上手くいかない。ゴチャゴチャしたメッセージがズラーっと流れている。なんのことはない、無視してよいwarningだったらしい。。。ただ、”% make“した後に、”% sudo make install“とsudoが必要だったが、rootでもないのにそのままmake installをしていたのでダメだったと。

無事にminicomのコンパイル作業が終了して、”% minicom -s” で起動と思いきや、”There is no global configuration (with minirc.dfl)”と出て起動しない。もう、何が何だかで頭から白いケムリが出てたはず。初回は “% sudo minicom -s” で起動らしい。またここで問題発生。無事起動して “Serial port setup” が完了したと思ったら、”/usr/local/etc”のディレクトリが存在しないので設定ファイルを保存できない。rootではないのでまたもやsudoの出番。 “% sudo mkdir /usr/local/etc”で保存場所を用意してやっとminicomの初期設定が完了した。

【Kindle側の準備】
1)usbnetwork接続でrootのパスワードを消す
2)裏ブタを外す
3)Kindleの端子部分とUSBシリアル変換モジュールの端子を接続
あらかじめKindleにusbnetworkハックを適用してあるので、Kindle側で必要なコマンドを打ってやる。母艦に接続したら”% mntroot rw” でwritableにして、”% vi /etc/shadow” でrootのパスワードを消す。これをやらないとシリアル接続してもKindleにログインできない。/etc/shadow は念のためバックアップをとっておく。ちなみにviなんてそうそう使わないが、操作方法はググればいくらでも解説が出てくるので問題はなかった。ちょっとした作業ならむしろ便利。

いよいよシリアルの端子を出す。裏ブタを外す作業はすでにSIMカードを引っこ抜いた時に経験済みなので手馴れたもの。カバーのあるZIFコネクタと広い端子が4つあるので、リード線の芯を出して広い方のむき出し下にセロテープでとめる(にしざわ流)。熟練者はコネクタ部分にZIFケーブルを挿して反対側をリード線とハンダ付けをするらしいが、とても無理なのであきらめた。セロテープなら簡単だと思いきや想像以上にスペースがない!イライラしながらなんとか貼付けようとするのだが、結局、内カバー全てとっぱらった。ネジが20個くらいあるのでしんどいが、おかげで貼りやすくなった。端子の接続方法で注意が必要なのは、Kindle側のTxDとRxDは、USBシリアル変換モジュールのTxDとRxDをクロスして接続しなければならないということ。まずリード線の芯をセロテープでしっかりと固定した後にICピンクリップ側でUSBシリアル変換モジュール側のピンを探して接続する。ICピンクリップ側を後にするのは間違っててもすぐに直せるから。Kindle側の端子のスペースは狭いので隣同士が干渉しないように、リード線の芯は短めが良いようだ。

クライマックスに突入。ターミナルでminicomを起動してKindleをリブート。ブートする様子がターミナル上をスクロールしていくではないか!仕事でもそうそう味わえない達成感、最後にWelcome to Kindleが。ガッツポーズ!!あとはrootでログイン(パスワードは不要)するだけ。これで鬼に金棒。ファームウェアの不意のバージョンアップやハックの競合等で文鎮化してもリカバリーできるのだから。

シリアルコンソールで接続できるとわかれば、あとはサッサと片付け。裏蓋をパチンと閉め終わった後、またこれを開ける作業をするのか?と。。。ちょっと萎えた。そんなことはやってられないので、ZIFケーブルの必要な部分に慎重にハサミを入れて、ICピンクリップでつかむという方法を試したところうまく行った。ただ、ZIFケーブルの1本は非常に頼りなく細いので乱暴に扱うとポッキリおれてしまいそう。ちなみにZIFケーブルにも種類があるようで、両端が青、片方が白でもう一方が青、両端が白の3種類だ。青い部分が固いのでKindleのコネクタカバーを開けてカチッと固定できる。そして白い方が薄いのでハサミを入れやすい。この方法で上側のフタだけをあければよいので遥かに楽に接続できる。ただし強度の問題とZIFケーブルのクリップの仕方によって接触が悪くなることがあるのが難点か。今度はハンダ付けに挑戦しよう。

IMG_7085

IMG_7075

最後に自分のような超ド素人に懇切丁寧にご指導いただいた @ytsuboi さん、@ichinomoto さん、@nishizawa さんの3氏にこの場を借りて改めて御礼申し上げたい。

参考サイト
@ichinomotoさんのブログ

@ytsuboiさんのブログ

今回の環境
Kindle Global Wireless(Kindle 2 International Wireless) FW2.3
+ update_ufh_icustom+p_install-k2i_20100202.bin
+ update_usbnetwork-k2i.bin (usbnetwork23-0.10)
+ update_anti_bunchin_install-k2i.bin v.0.31
+ update_news_auto_downloader_install-k2i_0.3.bin
MacBook(MB404J/A) Mac OS X 10.6.2
+ Xcode3.2.1
+ FTDIUSBSerialDriver_10_4_10_5_10_6.mpkg
+ minicom-2.2.tar.gz