Androidの起動

いよいよAndroidを起動させます。
・・・といきたいところですが、前回のユーザーランドの構築部分では
バイスファイルの準備が不十分です。

Androidのキー入力は/dev/input/event0〜を監視していますが、
Armadillo-500標準のnorのユーザーランドには/dev/event0〜に入力デバイスが割り当てられています。

以下のように事前にNANDにデバイスノードを作成しておく必要があります。

mount /dev/mtdblock7 /mnt
mknod /mnt/dev/input/event0 c 13 64
mknod /mnt/dev/input/event1 c 13 65
mknod /mnt/dev/input/event2 c 13 66

※USBキーボードの場合、マイナー番号の割り当ては66のようです。

また、フレームバッファは/dev/graphics/fb0をオープンしにくるのでこれも作っておく必要があります。

mknod /mnt/dev/graphics/fb0 c 29 0

以下のようにして標準のユーザーランドにある他のデバイスノードもコピーしておいたほうがいいでしょう。

(cd /dev; tar cf - *) | (cd /mnt/dev; tar xf -)
sync

ここまで準備できたら、NANDに構築したユーザーランドをrootfsに設定して、いよいよAndoridの起動です。

Armadillo-500のジャンパーピンを保守モードにして、電源をいれます。
hermitのコンソールで

setenv root=/dev/mtdblock7 noinitrd init=/init console=ttymxc0

とすることで、NANDをrootfsにし、ルートにあるinitを実行するようになります。

ブートさせましょう。

init: HOW ARE YOU GENTLEMEN

の表示が出ればAndroidは起動しています。
一瞬止まったかのように見えますが、Binderのログが出てしばらくすると、赤い玉が左右に揺れるはずです。
うまくいっていれば赤い玉が出てからほどなくしてエミュレーターで見慣れた待ち受け画面が出るでしょう。