[[Software/Android]] - Android for beagleboard - test edition~ ~ 使用した機材~ ・beagleboard:revision B5 ~ ・HostOSはubuntu8.04 ~ ・ミニAピンUSBケーブル~ ・セルフパワードUSBハブ~ ・USBキーボード~ ・USBether(型番:LUA2-TX、Pegasus/PegasusIIのドライバーで動作)~ ~ 今回のAndroid portingでは以下のサイトを参照しました。~ Android Porting Guide to Beagle Board ~ http://labs.embinux.org/index.php/Android_Porting_Guide_to_Beagle_Board ~ 注:このサイトは近々抹消される予定だそうです。~ 以下のサイトがメインになるようです。~ Android For OMAP3 with Gstreamer Integration ~ http://labs.embinux.org/index.php/Android_For_OMAP3_with_Gstreamer_Integration ~ ~ -Androidのビルド環境手順は以下のサイトを参照ください。~ http://source.android.com/download ~ ~ * Android Sorce File 取得 [#zf1fbed3] 以下の手順でrepo init,repo sync,makeを行います。~ $ mkdir ~/beagledroid $ cd ~/beagledroid $ repo init -u git://labs.embinux.org/repo/android/platform/beaglemanifest.git/ $ repo sync 注意:repo syncの際、fetch出来なくて止まってしまうことがよくありました。~ その時は都度repo syncを行い最後まで取得しました。~ * Toolchain [#db21f8af] 以下のサイトを参考にしarm-eabi-4.4.0にバージョンアップしました。~ http://labs.embinux.org/index.php/Toolchain_For_Android ~ 上記サイトを参考にrepo sync後arm-eabi-4.4.0にtoolchainを置き換えました。~ * Android ビルド [#r67c9aef] repo syncが完了し、Toolchainの変更をした後ビルドを行います。 $ make * Android RootFile Systemの設定 [#s3024213] ビルド完了後、root file systemを一箇所に集めます。~ $ cd ~/beagledroid/out/target/product/generic $ mkdir RFS $ cp -a root/* RFS $ cp -a data/* RFS/data/ $ cp -a system/* RFS/system/ $ cd RFS $ sudo chown -R root.root * $ sudo chmod -R 777 data system -init.rcの設定 ~ eth0を有効にするため ~ basic network init に ~ ifup eth0 setprop net.dns1 208.67.222.222 を追加します。~ -default.propの設定 ~ default.propの末尾に ~ net.eth0.dns1=208.66.222.222 net.dns1=208.67.222.222 を追加します。~ * kernelビルド [#j4e1a7ef] 現状のembinux.orgで配布されているイメージではUSB-etherなどのドライバーが入っていないので ~ カーネルをビルドしなおします。~ PATHを通した状態で、~/beagledroid/kernel/kernel/arch/arm/configs にある ~ omap3_beagle_android_defconfigを、~/beagledroid/kernel/.configにコピーしリネームします。 ~ $ cd ~/beagledroid/kernel/kernel/arch/arm/configs $ cp omap3_beagle_android_defconfig ~/beagledroid/kernel/.config $ make menuconfig ここでUSB-etherのドライバを入れます。~ 今回はPegasus/PegasusIIのドライバーをいれます。~ -> DeviceDrivers -> Network device support (NETDEVICES[=y]) -> USB Network Adapters にありますので、チェックをいれます。~ 設定が完了したらビルドを行います。~ $ make CROSS_COMPILE=arm-eabi- ARCH=arm uImage * SDイメージ作成 [#a44976e7] 注:今回はPanasonic製の256MBのSDカードを使用しました。~ SDカードをgpartedなどで~ 1st partision:FAT32 2nd partision:ext3 でフォーマットします。~ - 1st partision ~ http://www.embinux.com/download_beagle.php ~ からイメージをダウンロードし、MLO,u-boot.binの順で1st partisionにコピーします。~ またビルドしたuImageもコピーします。~ - 2nd partision ~ ビルドしたAndroidをコピーします。~ $ cd ~/beagledroid/out/target/product/generic/RFS $ cp -a * /media/{ext3-partision} * キー配置 [#f3bb6785] デフォルトビルドのままのキー配置は ~ BACK:ESCキー MENU:windowsキー HOME:Endキー(起動後End call behaviourにて設定) です。~ * beagleboard起動 [#ce9105ff] イメージを作成したSDカードをbeagleboradに挿入し電源を入れます。~ 「OMAP3 beagleboard.org #」このプロンプトが表示されるので以下のコマンドを打ちます。~ OMAP3 beagleboard.org #setenv bootargs console=ttyS2,115200n8 noinitrd root=/dev/mmcblk0p2 video=omapfb.mode=dvi:1280x720MR-24@50 init=/init rootfstype=ext3 rw rootdelay=1 nohz=off androidboot.console=ttyS2 OMAP3 beagleboard.org # mmcinit OMAP3 beagleboard.org # fatload mmc 0 0x80300000 uImage OMAP3 beagleboard.org # bootm 0x80300000 これで、Androidまで起動します。~ * 制限事項 [#o0fffeaf] - ネットワーク ~ usb-etherを接続した際にeth0がDOWNもしくはDHCPが取れていないことがあります。~ その場合は以下のコマンドを入力してみてください。~ # netcfg eth0 up # netcfg eth0 dhcp - アプリケーション ~ 一部のアプリケーションが正しく動作していません。~