2013/08/29

BeagleBone Black に Android を入れた

#メインは、http://salt.air-nifty.com/salt/ だが、こっちの方がコード部分を見やすく表示できるかテスト中。。。


例によって micro SD に入れただけだが。
http://processors.wiki.ti.com/index.php/TI-Android-JB-4.2.2-DevKit-4.1.1_DeveloperGuide
ここの通り。

■ソースの取得。
妙に遅かったから apt-get update & upgrade した。
ら、速くなった。git の version に依るのだろうか?たまたまか?
fatal: early EOF が結構出てたのがなくなった。
mkdir -p work/BBB/android
cd work/BBB/android
repo init -u git://gitorious.org/rowboat/manifest.git -m TI-Android-JB-4.2.2-DevKit-4.1.1.xml
repo sync -j8
sudo apt-get update
sudo apt-get upgrade
repo sync -j8

■u-boot の build
export PATH=~/work/BBB/android/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin:$PATH
cd ~/work/BBB/android/u-boot
make CROSS_COMPILE=arm-eabi- distclean
make CROSS_COMPILE=arm-eabi- am335x_evm_config
make CROSS_COMPILE=arm-eabi- -j4

■kernel の build
cd ~/work/BBB/android/kernel
make ARCH=arm CROSS_COMPILE=arm-eabi- distclean
make ARCH=arm CROSS_COMPILE=arm-eabi- am335x_evm_android_defconfig
make ARCH=arm CROSS_COMPILE=arm-eabi- uImage -j4

■Android の build
cd ~/work/BBB/android
make TARGET_PRODUCT=beagleboneblack OMAPES=4.x -j4
make TARGET_PRODUCT=beagleboneblack fs_tarball
make TARGET_PRODUCT=beagleboneblack OMAPES=4.x -j4 sdcard_build
sdcard_build を付けて make すれば、u-boot も kernel も全部 build してくれるように書かれてるけど、してくれなかった。ので、u-boot, kernel を build してから、sdcard_build を外して make、fs_tarball を付けて make した後に、sdcard_build を付けて make した。


■micro SD に入れる
cd out/target/product/beagleboneblack/beagleboneblack
sudo LANG=C ./mkmmc-android.sh /dev/sdX
例によって、/dev/sdX は環境に依る。
micro SD が Windows で使ってたものだとうまくいかず、一旦、sudo fdisk /dev/sdX して、d で全部消して w で消した状態のを書き込んでから mkmmc-android.sh を実行する必要があった。script 的に fdisk -l /dev/sdX を実行した結果を grep DISK してて、Windows で使っていたものだと DISK になるところが FAT32 とかになってしまって見つからないみたい。
途中で出る
cp: cannot stat `START_HERE': No such file or directory
というエラーは気にしなくていいはず。START_HERE を指定しておくと、そこからもコピーしてくれるっぽい。




追記:ソースから作れるのはすごい安心感があるけど、ちょっと設定変えると System UI が死ぬのを繰り返すから、Ubuntu の方がいいかも。デフォルトの live wallpaper をただの画像に変えただけで、System UI が死ぬのを繰り返すようになってしまう。。
最初の repo init の時に rowboat-jb.xml を指定すれば最新のを取得できると書かれてるので、後で試してみるか。

さらに追記:rowboat-jb.xml なんてなかった。。 web の説明は古いね。。  ls .repo/manifests で manifest のリストが見れるので、確認して、rowboat-jb-am335x.xml を指定すればうまくいった。けど、こっちのが古いかも??

0 件のコメント: