Android開発スタータキット †本キットは以下の環境を前提として開発しています。
PICO821 BIOS 設定 †PICO821 での BIOS 設定で必要になる箇所について記載します。
以下の2項目は 2D 描画1枚での速度向上のためのものになります。
ビルド済みイメージの CF インストール †USB_boot からのインストール †USB boot ディスクの作成 †VMware 内 /home/beat/ pico821usb_boot/usb_boot/android-system/
1. USB ディスク(1GB 以上) を ext3 でフォーマットします。 2. USB ディスクに grub をインストールします。 $ sudo grub-install --root-directory=/media/ext3 --no-floppy /dev/sdb 3. usb_boot ディレクトリ以下の android-system/ 、 $ sudo cp -fr usb_boot/android-* /media/ext3/ 4. usb_boot ディレクトリにある menu.lst を boot/grub にコピーします。 $ sudo cp -fr usb_boot/menu.lst /media/ext3/boot/grub 以上で USB boot ディスクの作成は完了です。 CF へのインストール †1. CF のフォーマット 2. PICO821 の起動 3. CF へのインストール 4. CFでの起動 CF 起動 †起動の際は BIOS の変更した Hard Disk Boot Priority の CFが「1」になっていることを確認し、 kernel /android-2010-10-29/kernel root=/dev/ram0 androidboot_hardware=pico821 acpi_sleep=s3_bios,s3_mode SRC=/android-2010-10-29 vga=ask ここではキーボードの「b」キーで boot を開始し 画像解像度を 640x480x16bit (311)で起動します。 (注):
稀に grub で Error 15 (ファイルが存在しない)というエラーがでることがあります。 起動オプション確認表 †color depth 32bit はブレンドにて失敗しているので 16 bit の VESAで起動するようにしてください。
以上で CF カードへの img インストールは完了です。 制限事項は『制限事項について』をご覧ください。 キーバインド †ボタンのそれぞれの割り当ては以下のようになっています。
VMwareビルド環境構築手順 †VMwareの構成 †VMware仮想マシンの構成は以下のようになっています。
(注):仮想マシンの起動前に仮想マシン管理画面でメモリー割当量やCPU数を自分の環境 Ubuntu 10.04 アカウント †VMware Player などでVMイメージを起動するとUbuntuが起動しログイン画面が表示されます。
ホームディレクトリ内のファイル配置 †Desktop デスクトップフォルダ Downloads Firefox、chromeのデフォルトダウンロードディレクトリ android-s5 vilivs5.git.sourceforge.netリポジトリから取得したソースコード一式 android-sdk-linux_x86 Android SDKツールズ android-x86 android-x86.orgリポジトリから取得したソースコード一式 bin repoコマンドの置き場 eclipse Eclipse IDE(ADTプラグインインストール済み) kernel_work android-s5をPICO821向けにビルドした際のkernel調整作業ディレクトリ pico821boot-image PICO821のファイルシステム上へ直接配置するAndroidの起動イメージ(kernel+userland) pico821usb_boot PICO821向けのUSBビルドイメージ sample_media Android-x86で使用するサンプルの画像、動画 workspace Eclipseのデフォルト作業ディレクトリ(Eclipse起動時に適宜変更できます。) deb パッケージインストールおよび削除 †以下のパッケージをインストールしています。 $ sudo apt-get install openssh-sever nautilus-open-terminal vim lv gparted また開発に必要のないいくつかのパッケージを削除してあります。 android ビルドツールのインストール †androidのビルドに必要な以下のパッケージを取得してインストールしています。 $ sudo apt-get install git-core gnupg flex bison gperf libsdl-dev \ libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev \ zlib1g-dev $ sudo apt-get install valgrind $ sudo apt-get install libreadline5-dev java5 のインストール †androidのビルドに必要なsun-java5-jdkはUbuntu 9.10以降リポジトリから外されているため、
$ sudo vi /etc/apt/sources.list ## respective vendors as a service to Ubuntu users. deb http://archive.canonical.com/ubuntu lucid partner deb-src http://archive.canonical.com/ubuntu lucid partner deb http://archive.ubuntu.com/ubuntu lucid-security main restricted deb-src http://archive.ubuntu.com/ubuntu lucid-security restricted main multiverse universe #Added by software-properties deb http://archive.ubuntu.com/ubuntu lucid-security universe deb http://archive.ubuntu.com/ubuntu lucid-security multiverse + deb http://us.archive.ubuntu.com/ubuntu/ jaunty multiverse + deb http://us.archive.ubuntu.com/ubuntu/ jaunty-updates multiverse
$ sudo apt-get update $ sudo apt-get install sun-java5-jdk
$ sudo vi /etc/apt/sources.list ## respective vendors as a service to Ubuntu users. deb http://archive.canonical.com/ubuntu lucid partner deb-src http://archive.canonical.com/ubuntu lucid partner deb http://archive.ubuntu.com/ubuntu lucid-security main restricted deb-src http://archive.ubuntu.com/ubuntu lucid-security restricted main multiverse universe #Added by software-properties deb http://archive.ubuntu.com/ubuntu lucid-security universe deb http://archive.ubuntu.com/ubuntu lucid-security multiverse - deb http://us.archive.ubuntu.com/ubuntu/ jaunty multiverse - deb http://us.archive.ubuntu.com/ubuntu/ jaunty-updates multiverse もう一度 apt-get update で現状のリポジトリ情報に更新して元の状態に戻します。 $ sudo apt-get update grub の入れ替え †Ubuntu 10.04はdefaultではgrub2(パッケージ名grub-pc)がbootloaderとしてインストールされますが、 synapticパッケージマネージャを起動し grubを「インストール指定」にします。 $ grub --version grub (GNU GRUB 0.97) バージョン確認後 grub (0.97) の設定を行います。 $ sudo update-grub $ sudo grub-install /dev/sda Android SDKのセットアップ †http://developer.android.com/sdk/installing.html export PATH=${PATH}:/home/beat/android-sdk-linux_x86/tools Eclipse v 3.5.2 (for Java Developers)を /home/beat/eclipse にインストール。 export PATH=${PATH}:/home/beat/android-sdk_r7-linux_x86/tools:/home/beat/eclipse ADT Plugin for EclipseをEclipseにインストール。 android-x86 †froyo-x86と各プロダクトのリビジョンについて †x86版のandroidをビルドするため、android-x86.orgのソースコードを利用しています。 repoの設定 †android のソースコードを取得するためにrepoの設定を行います。 $ cd ~ $ mkdir bin $ curl http://android.git.kernel.org/repo >~/bin/repo $ chmod a+x ~/bin/repo 一度ログアウトしてログインし直すと ~/bin へのPATHは通っています。 $ export PATH=~/bin:$PATH .bashrc に設定する場合は以下のように追記します。 $ export PATH=~/bin:$PATH >> .bashrc ソースコードの取得(android-s5) †PICO821向けandroidのソースコードのリポジトリとして、 http://sourceforge.net/apps/mediawiki/vilivs5/index.php?title=Main_Page 以下のようにコマンドを実行しvilivs5.git.sourceforge.netからfroyo-x86のソースコードを取得します。 $ mkdir android-s5 $ cd android-s5 $ repo init -u git://vilivs5.git.sourceforge.net/gitroot/vilivs5/manifest.git -b froyo-x86 $ repo sync ソースコードの修正 †(注):VMware 仮想マシンイメージに含まれているソースコードは修正済みです。
extern "C" { JNIEXPORT void JNICALL Java_com_android_gljni_GLJNILib_init(JNIEnv * env,jobject obj, jint width, jint height); JNIEXPORT void JNICALL Java_com_android_gljni_GLJNILib_step(JNIEnv * env,jobject obj); JNIEXPORT void JNICALL Java_com_android_gljni_GLJNILib_changeBackground(JNIEnv * env, jobject obj); - }; + }
PICO821ビルド †後述するPICO821向けビルド設定を使用してビルドを行います。 $ cd /home/beat/android-s5 $ source build/envsetup.sh $ lunch pico821-eng $ make -j2 usb_img TARGET_PRODUCT=pico821 TARGET_ARCH_VARIANT=x86-atom 2>&1 | tee make2010xxxx_x.log (注):TARGET_ARCH_VARIANT=x86-atom については後述の『build target について』
$ cd out/target/product/pico821/obj $ mkdir ~/kernel_work $ cp -fr kernel ~/kernel_work/ $ cd ~/kernel_work/kernel $ make modules $ sudo make modules_install ......... INSTALL /lib/firmware/radeon/RV710_pfp.bin INSTALL /lib/firmware/radeon/RV710_me.bin DEPMOD 2.6.32.15-android-x86-pico821 DEPMOD が表示されますのでその名前に下記のkenrel versionを合わせてください。 $ mkinitramfs -o initrd.img 2.6.32.15-android-x86-pico821 イメージファイルの配置 †前述の『ビルド済みイメージの CF インストール』を参照してください。 ファイルの配置 (Experimental) †(注):この項目はイメージではなく各ファイルをCFに配置してAndroid を起動する手順です。
dev/sdb1にラベル名x86がマウントされていますので/dev/sdb1にgrubを導入します。 $ df /dev/sdb1 3850292 1194464 2460240 33% /media/x86 デバイス名、デバイス位置を確認したらgrub-installを実行します。 $ sudo grub-install --root-directory=/media/x86/ --no-floppy /dev/sdb $ ls /media/x86/boot/grub/ default fat_stage1_5 minix_stage1_5 stage2 device.map installed-version reiserfs_stage1_5 xfs_stage1_5 e2fs_stage1_5 jfs_stage1_5 stage1
$ sudo vi boot/grub/menu.lst title Android-x86 root (hd0,0) kernel /boot/bzImage-2.6.35-android-x86-pico821 root=/dev/sda1 androidboot.hardware=pico821 rw init=/init vga=ask initrd /boot/initrd.img-2.6.35-android-x86-pico821
$ cd ~/kernel $ sudo cp arch/x86/boot/bzImage /media/x86/boot/bzImage-2.6.35-android-x86-pico821 $ sudo cp initrd.img /media/x86/boot/initrd.img-2.6.35-android-x86-pico821
$ cd out/target/product/pico821 $ sudo cp -fr root/* /media/x86/ $ sudo cp -fr system/* /media/x86/system/ $ sudo cp -fr data/* /media/x86/data/ $ cd /media/x86 $ sudo chown -R root:root * $ sudo chmod -R 777 data $ sudo chmod -R 777 system 起動準備はこれで完了です。 ソースコードの取得(android-x86) †本キットの起動イメージには使用していませんが、android-s5の派生元である 取得は以下のようにコマンドを実行して行います。 $ mkdir android-x86 $ cd android-x86 $ repo init -u git://git.android-x86.org/manifest.git -b froyo-x86 $ repo sync git://git.android-x86.org/ が接続できない場合ミラーとして
git://android-x86.git.sf.net/gitroot/android-x86/ があります。 変更前 $ repo init -u git://git.android-x86.org/manifest.git -b froyo-x86 変更後 $ repo init -u git://android-x86.git.sf.net/gitroot/android-x86/manifest.git -b froyo-x86 $ repo sync ソースコードの修正 †(注):VMware に含まれているソースコードは修正済みです。
extern "C" { JNIEXPORT void JNICALL Java_com_android_gljni_GLJNILib_init(JNIEnv * env,jobject obj, jint width, jint height); JNIEXPORT void JNICALL Java_com_android_gljni_GLJNILib_step(JNIEnv * env,jobject obj); JNIEXPORT void JNICALL Java_com_android_gljni_GLJNILib_changeBackground(JNIEnv * env, jobject obj); - }; + } generic_x86 ビルド †android-x86.org の froyo-x86 をTARGET_PRODUCT=generic_x86 $ cd ~/android-x86 $ make -j2 usb_img TARGET_PRODUCT=generic_x86 TARGET_ARCH_VARIANT=x86-atom 2>&1 | tee make2010xxxx_x.log 注:build target については後述の 『build target について』 イメージの配置 †前述の『ビルド済みイメージのCFインストール』を参照してください。 キーバインド †ボタンのそれぞれの割り当ては以下のようになっています。
制限事項 †GMA500 Graphic Driver †今回はGMA500 Graphic Driver (EMGD)が使用できなかったこと、コミュニティベースの Q:Where is the graphics driver? A:The hardware accelerated graphics driver (Intel EMGD) is a closed source software component that requires a EULA (End User Licensing Agreement). Intel EMGD is currently under development. Pre-release versions of the Intel EMGD require a signed NDA. After release, later this year, the driver will be posted at edc.intel.com. Once the driver is publicly available (with a EULA), this FAQ, and the MeeGo IVI release notes, will be updated with instructions describing how and where to acquire the Intel EMGD, as well as how to integrate the driver. If you require the pre-release version of this driver, please contact your Intel representative. http://meego.com/devices/in-vehicle/in-vehicle-faq#q7 アプリケーション †
ファイル配置 (Experimental)の追加制限事項 †
Android デバッグ ブリッジについて †Android デバッグ ブリッジ(adb)について記述します。 Android開発スターターキット デバッグにはEthernetを経由して同じサブネット上のホストPCからadb接続でapkを 以下はandroid-sdk-linux_x86/toolsディレクトリからのadb接続の例です。 export ADBHOST=192.168.0.1xx ./adb kill-server ./adb start-server ./adb devices 開発機が表示されていれば、deviceのリストに表示され接続可能です。 ./adb shell その他のadb オプションは adb --helpで参照して下さい。 build target について †froyo-x86には以下のtargetがあります。
$ make usb_img TARGET_PRODUCT={target_name} (*)usb_imgはusb用のイメージになります、この部分をiso_imgに変更すると x86-atom: SSE2,SSE3にbionicを最適化しAtom 用にdalvikのバイトコード高速化した $ make usb_img TARGET_ARCH_VARIANT=x86-atom x86-atom 用の設定ファイルは以下の場所にあります。 $ vi build/core/combo/TARGET_linux-x86.mk ...略... ifeq ($(TARGET_ARCH_VARIANT),x86-atom) # Enable recent IA friendly memory routines (such as for Atom) # These will not work on the earlier x86 machines TARGET_GLOBAL_CFLAGS += -mtune=i686 -DUSE_SSSE3 -DUSE_SSE2 endif ...略... pico821ではgeneric_x86 の設定を上書きしています。ビルドの際は 上記の PICO821向けビルド設定 †villiv s5 を参考に作成したビルド設定を android-s5/device/axiomtek/pico821 に 更新記録 †2010/11/05 labs 記載(マニュアル未記入のものは赤字で記載) |