Kindle 3のシリアルコンソールに接続する方法は、さきほど書いたとおりです。
USB-TTLシリアルを使ってパソコンと接続すれば、あとはrootでログインするだけなのですが、rootのパスワードが分かりません。が、海の向こうには凄い人がいるものです。ubootのloadyでシリアルからkernelなど一式をYMODEMを使って転送して、シングルユーザーモードでKindle 3を起動する方法を公開している方がいらっしゃいました。
まず、僕は、minicomをインストールする方法を書いたとおり、MacOS Xでminicomをメインで使っています。minicomはYMODEMを外部プログラムと連携することで喋れるようになるので、まずはじめにYMODEMをインストールします。
といってもカンタンで、
$ sudo port install lrzsz
とするだけです。MacPortsって本当に便利ですね。これでYMODEMが /opt/local/bin/sb にインストールされるので、minicomの設定をしてやります。
あと、さきほどの書き込みにあったファイルをダウンロードしておきます。
で、Kindle 3にシリアルコンソールを接続した状態で、Kindle 3を再起動してやります。普通にKindleを操作してrebootしてやるだけです。すると、
Hit any key to stop autoboot:
というメッセージがKindleの起動直後に表示されるので、素早くEnterキーなどを押してやります。起動が中断できると、
uboot>
というプロンプトが出ますので、
loady 0x84000000
とタイプして、YMODEMでファイルを転送できる状態にします。受け入れ可能になると、”CCC”といった具合に”C”という文字が出るので、ここでminicomを操作して(Ctrl-A, z, sだったはず)でYMODEMを使ってさきほどのファイル、uImage-Kindle3-single-shellを転送します。115200bpsなので、2.1MBのファイルを転送するには少々時間がかかります。
転送中はこんな画面が出るはずです。
転送が終わったら、次に、
bootm 0x84000000
とタイプして、転送したバイナリを使ってKindle 3を起動します。ちなみに、起動してもプロンプトは表示されないので注意してください。Uncompressing Linuxと表示されたあと、数秒で起動するはずです。
この状態で、
mkdir /root
mount -t ext3 /dev/mmcblk0p1 /root
chroot /root /bin/sh
といったコマンドを次々とタイプしてやります。最後のchrootをすると、コマンドプロンプトが出てくるはずです。
あとは、
/bin/vi /etc/shadow
とコマンドを打って、viエディタでパスワードファイルを編集してやります。
root:4tqE8dgorG49A:10933:0:99999:7:::
という行をの”:”の間を削って、
root::10933:0:99999:7:::
としてやればrootのパスワードが削除できます。
できたら、”:wq”でviエディタを終了して、
sync
を数回しましょう。(1回でいいはずなのに、僕は3回くらいやっちゃいますw)
で、
exit
とコマンドを2回打ち込むと、2回目でKindleがpanicするはずです。電源スイッチを長く引いていると強制的に電源を切れるので、20〜30秒くらい引いたあと、もっかい引いて再起動してください。再起動すると、”kindle login: “とログインプロンプトでrootと打ち込むことで、パスワードなしでログインできるはずです。
一応、パスワードないマシンってのも気持ち悪いので、
mount -n -o remount,rw /
passwd root
として、私はパスワードを付けておきました。