コンピュータカウボーイ見習いのメモ帳

仕事や趣味の備忘録です

【BeagleBoard】Androidのポーティング【イメージ書き込み編】

前回の記事カーネルもビルドできたので実際にイメージを書きこんで実行してみたいと思います。

実際にはTI SGXグラフィックドライバーのインストールも必要ですが、これは下記の参考資料通りに実施すればうまくいったので割愛します。

基礎から学ぶ 組み込みAndroid

まずはイメージ保存用のディレクトリを作成します。

$ 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」のオプションをつけてビルドしなければいけないとのこと

Issue 74 - rowboat - Booting fail: PVR_K: (FAIL) SGXInit: Incompatible HW core rev (10205) and SW core rev (10201). - Android for Texas Instruments Devices (Sitara) - Google Project Hosting

OMAP35x_Android_Graphics_SDK_3_01_00_03$ make install OMAPES=3.x

これでビルドしてから再度Android本体をSDカードに書きこんで実行したところうまく立ち上がった・:*:・(*´∀`*)ウットリ・:*:・

f:id:countzero_channel:20140720192532j:plain

ちょっと解像度があっていないのか、ロゴが中央からずれてる:(;゙゚'ω゚'):

ただ以前でていたディスプレイ側のエラーがなくなったのでやっぱりデモ用だとデバイスドライバーの設定がうまく行っていなかったみたい^^;

f:id:countzero_channel:20140720192157j:plain

起動直後にこのエラーが、更にホームキーとかも効かない(;´Д`)

 

デバイスドライバーの作成までを目標にしていたけどまだ先は長そうだ(´・ω・`)