Tech と Culture

テクノロジーとカルチャー

Android2.2 on BeagleBoard-Xm

Beagle BoardでAndroidを動作させたいと思いチャレンジしてみました。
これもオープンソースハードウェア+オープンソースソフトウェアのシステムになります。

Androidについて全然知識が無いのですが、大丈夫。オープンソースの場合、大抵誰かエライ人が動作させて情報を提供してくれているはずです。
検索してみると、、、、ありました。

ここのページに開発環境ごとUPしてくれています。ありがたく、ここに従ってインストールしてみます。
その他、SDカードのパーティション等でここのページも参照させてもらいました。

少し戸惑ったのが、Java1.5が必要だったことと、TI_Android_SGX_SDK/Rules.make だけでなく, TI_Android_SGX_SDK/SDK/Rules.makeも微修正が必要だったことぐらいで問題なくブート用のMicroSDを作成できました。
MicroSDを差し込んで、ディスプレイ接続し、Teratermをシリアル接続して電源を入れます。そのままだとkernelブートした後、ルートファイルシステムが無いとなってkernel panicになってしまいます。電源を入れてキー受付状態の時にリターンキーを押して、カーネルコマンドライン用の変数を設定します。

<間違い>
setenv bootcmd 'mmc init; fatload mmc 0:1 0x80000000 uImage; bootm 0x80000000'
setenv bootargs androidboot.console=ttyS2 console=ttyS2,115200n8 console=tty0 init=/init omapfb.mode=dvi:1024x768MR-24@60 root=/dev/mmcblk0p2 rootfstype=ext3 rw rootwait

<訂正>
setenv bootargs console=ttyS2,115200n8 noinitrd root=/dev/mmcblk0p2 rootfstype=ext3 rw rootdelay=1 init=/init
setenv mmcboot 'mmc init;fatload mmc 0 0x80300000 uImage;bootm 0x80300000'



と入力した後に boot と入力すると簡単にAndroid2.2がブートしました。

beagle-xm-android.jpg


ネットワークも問題なくつながり、ブラウザーも動作します。
beagle-xm-android3.jpg

すばらしい。

Androidではなく、普通のLinux (Ubuntu)を動作させる情報もネットに沢山あります。
ハードウェアを理解するために、一応知識のあるUbuntuもブートさせてみるつもりです。