【BeagleBoard】Androidのポーティング【イメージ書き込み編】
前回の記事でカーネルもビルドできたので実際にイメージを書きこんで実行してみたいと思います。
実際にはTI SGXグラフィックドライバーのインストールも必要ですが、これは下記の参考資料通りに実施すればうまくいったので割愛します。
まずはイメージ保存用のディレクトリを作成します。
$ mkdir ~/image
次にboot.scriptを作成します。こちらは参考資料ではXM用なので下記のWikiを参考にC3用を作成します。
TI-Android-FroYo-DevKit-V2.2 UserGuide - Texas Instruments Wiki
作成したboot.scriptは下記のようになります。
mmc init fatload mmc 1 80200000 uImage setenv bootargs 'console=ttyS2,115200n8 androidboot.console=ttyS2 mem=256M omapfb.mode=dvi:1280x720MR-16 omapdss.def_disp="dvi" root=/dev/mmcblk0p2 rw rootfstype=ext3 rootdelay=1 init=/init ip=off mpurate=720 omap_vout.vid1_static_vrfb_alloc=y' bootm 0x80200000
次にu-boot用の「boot.scr」を作成します。こちらは参考書通りに実行します。
$mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n "BeagleBoard" -d boot.script boot.scr
最後にビルドしたカーネルをコピーしてきます。
$ cp ~/myFroyo/kernel/arch/arm/boot/uImage .
作成したイメージをSDカードに書きこんでいきます。
~/images$ cp boot.scr /media/boot/ ~/images$ cp uImage /media/boot/
Android本体もSDカードに書きこんでいきます。
/out/target/product/beagleboard$ sudo ../../../../build/tools/mktarball.sh ../../../host/linux-x86/bin/fs_get_stats android_roofs . rootfs android_rootfs.tar.bz2 sudo tar xjvf android_rootfs.tar.bz2 -C /media/rootfs
これで起動したのですが、黒い画面のままで立ち上がりませんでした。
そこでRS232C経由でコンソール画面を立ち上げてみたところ下記のエラーが
PVR_K: (FAIL) SGXInit: Incompatible HW core rev (10205) and SW core rev (10201).
調べてみるとBeagleBoard C3で立ち上げる場合はデバイスドライバを「OMAPES=3.x」のオプションをつけてビルドしなければいけないとのこと
OMAP35x_Android_Graphics_SDK_3_01_00_03$ make install OMAPES=3.x
これでビルドしてから再度Android本体をSDカードに書きこんで実行したところうまく立ち上がった・:*:・(*´∀`*)ウットリ・:*:・
ちょっと解像度があっていないのか、ロゴが中央からずれてる:(;゙゚'ω゚'):
ただ以前でていたディスプレイ側のエラーがなくなったのでやっぱりデモ用だとデバイスドライバーの設定がうまく行っていなかったみたい^^;
起動直後にこのエラーが、更にホームキーとかも効かない(;´Д`)
デバイスドライバーの作成までを目標にしていたけどまだ先は長そうだ(´・ω・`)