My favorites | Sign in
Project Home Downloads Wiki Issues Source
Search
for
FroyoOnBeagleBoard  
BeagleBoard に Froyo をのせる
Android, BeagleBoard, Froyo
Updated Jul 24, 2010 by sola.198...@gmail.com

概要

BeagleBoard に Froyo をのせる。

android-2.2_r1.1 を使用して確認しています。

Linux Kernel は 0xlab の 2.6.32 をベースに手を入れてます。

TI's Android SGX SDK を使用しています。



1. 準備

BeagleBoard を用意。



前提知識は、Android1.6のものを参照。

http://code.google.com/p/android-development-environment/wiki/Android1_6r1onBeagleBoard

Android ソースコードのダウンロード先を定義する。

ここは環境に応じて変える。以下は一例。

$ export ANDROID=/home/sola/android/omap3-droid

以降、$ANDROID を Android ソースコードのダウンロード先として扱う。



2. Android ソースコードのダウンロード

$ mkdir -p $ANDROID
$ cd $ANDROID
$ repo init -u git://android.git.kernel.org/platform/manifest.git -b android-2.2_r1.1

local_manifest.xml を追加。

ALSA 関連のファイルを追加します。

$ emacs .repo/local_manifest.xml

local_manifest.xml の内容

<?xml version="1.0" encoding="UTF-8"?>
<manifest>
  <project path="external/alsa-lib" name="platform/external/alsa-lib" revision="froyo"/>
  <project path="external/alsa-utils" name="platform/external/alsa-utils" revision="froyo"/>
  <project path="hardware/alsa_sound" name="platform/hardware/alsa_sound" revision="froyo"/>
</manifest>

local_manifest.xml を保存後、以下を実行。

$ repo sync

ダウンロード完了まで待つ。



3. BeagleBoard 用の変更ファイル、追加ファイルを適用する

$ cd $ANDROID
$ wget http://android-development-environment.googlecode.com/files/vendor_sola-omap3-froyo.tar.gz
$ mkdir vendor
$ tar zxvf vendor_sola-omap3-froyo.tar.gz -C $ANDROID/vendor/
$ $ANDROID/vendor/sola/omap3/patch/omap3-patch.sh

4. kernel をビルドする

$ cd $ANDROID
$ wget http://sola-dolphin-1.net/data/android/BeagleBoard/kernel_beagle.0xlab.sgx.tar.bz2
$ tar jxvf kernel_beagle.0xlab.sgx.tar.bz2
$ cd $ANDROID/kernel-beagleboard
$ make ARCH=arm CROSS_COMPILE=../prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi- sola_omap3_beagle_android_defconfig
$ make ARCH=arm CROSS_COMPILE=../prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi- uImage modules

$ANDROID/kernel/arch/arm/boot/uImage

が作成される。

5. Android をビルドする

$ cd $ANDROID
$ source build/envsetup.sh
$ lunch beagleboard-eng
$ make -j8

6. BeagleBoard にのせるイメージを作成する

$ cd $ANDROID
$ $ANDROID/vendor/sola/omap3/image/beagleboard-image.sh

$ANDROID/vendor/sola/omap3/image/beagleboard/android

が作成される。

7. TI's Android SGX SDK を組み込む

$ cd $ANDROID
$ git clone git://gitorious.org/rowboat/ti_android_sgx_sdk.git TI_Android_SGX_SDK
$ cd TI_Android_SGX_SDK
$ ./OMAP35x_Android_Graphics_SDK_setuplinux_3_01_00_03.bin

インストール先はどこでも良い。

ここでは、OMAP35x_Android_Graphics_SDK_setuplinux_3_01_00_03.bin を実行したディレクトリを指定する。

インストール完了後、Rules.make を編集します。

以下の5項目を直してください。

※直した後の状態を書いてあります。

HOME=$(ANDROID)
GRAPHICS_INSTALL_DIR=$(ANDROID)/TI_Android_SGX_SDK
ANDROID_ROOT=$(ANDROID)/vendor/sola/omap3/image/beagleboard/android
CSTOOL_DIR=$(ANDROID)/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/
KERNEL_INSTALL_DIR=$(ANDROID)/kernel-beagleboard

編集後、

$ cd $ANDROID/TI_Android_SGX_SDK
$ make
$ make install OMAPES=3.x

$ANDROID/vendor/sola/omap3/image/beagleboard/android に必要なファイルがコピーされる。

Comment by sm.kha...@gmail.com, Jul 2, 2010

This is really good work. Thanks for integrating SGX drivers, let us know if you have faced any difficulties in integrating SGX drivers. We will be looking forward to get your comments on the SGX and Kernel / driver deliverables on http://arowboat.org.

Comment by keith.ra...@gmail.com, Jul 5, 2010

I cannot extract the kernel files from kernel_beagle.0xlab.sgx.tar.bz2

The wget gave no errors, md5sum 68728a250d5d42e5261c364f6d055631 Duplicate downloads give the same file and md5sum.

I am using Ubuntu 10.04

The error is:

$ tar jxf kernel_beagle.0xlab.sgx.tar.bz2 tar: Skipping to next header

bzip2: Data integrity error when decompressing.

Input file = (stdin), output file = (stdout)

It is possible that the compressed file(s) have become corrupted. You can use the -tvv option to test integrity of such files.

You can use the `bzip2recover' program to attempt to recover data from undamaged sections of corrupted files.

Comment by project member sola.198...@gmail.com, Jul 5, 2010

Sorry. Fixed now.

Comment by keith.ra...@gmail.com, Jul 6, 2010

Many thanks.

Comment by keith.ra...@gmail.com, Jul 7, 2010

The kernel builds without problems, but libasound does not build because the following files all try to include sys/shm.h

external/alsa-lib/src/pcm/pcm.c external/alsa-lib/src/pcm/pcm_generic.c external/alsa-lib/src/pcm/pcm_hw.c external/alsa-lib/src/pcm/pcm_mmap.c external/alsa-lib/src/pcm/pcm_null.c external/alsa-lib/src/pcm/pcm_plugin.c external/alsa-lib/src/pcm/pcm_share.c

Is there a fix or workaround? I don't need audio.

Comment by project member sola.198...@gmail.com, Jul 7, 2010

Please try again repo sync. alsa-lib has been updated. http://android.git.kernel.org/?p=platform/external/alsa-lib.git;a=summary

Comment by ankith.p...@gmail.com, Jul 10, 2010

Thanks for the Beagle patch for the froyo release. I successfully ported the froyo onto the Beagle, but the GUI is unable to load and stops to proceed further after showing up ANDROID on the initial command line prompt.

Please let me know how to fix this.

Comment by project member sola.198...@gmail.com, Jul 11, 2010

Does not occur in my environment. Please tell us the information. For example, information logcat.

Comment by ankith.p...@gmail.com, Jul 12, 2010

Hi,

Thanks for the reply and the logcat messages that I'm getting are as follows,

I/DEBUG ( 737): debuggerd: Jul 8 2010 19:50:36 E/keystore( 745): chdir: /data/misc/keystore: No such file or directory I/Vold ( 735): Vold 2.1 (the revenge) firing up I/Netd ( 736): Netd 1.0 starting D/Vold ( 735): Volume sdcard state changing -1 (Initializing) -> 0 (No-Media) W/Vold ( 735): No UMS switch available D/AndroidRuntime?( 739): D/AndroidRuntime?( 739): >>>>>>>>>>>>>> AndroidRuntime? START <<<<<<<<<<<<<< D/AndroidRuntime?( 739): CheckJNI is ON E/dalvikvm( 739): Can't open dex cache '/data/dalvik-cache/system@framework@core.jar@classes.dex': No such file or directy I/dalvikvm( 739): Unable to open or create cache for /system/framework/core.jar (/data/dalvik-cache/system@framework@core) D/dalvikvm( 739): Unable to process classpath element '/system/framework/core.jar' E/dalvikvm( 739): Can't open dex cache '/data/dalvik-cache/system@framework@ext.jar@classes.dex': No such file or directoy I/dalvikvm( 739): Unable to open or create cache for /system/framework/ext.jar (/data/dalvik-cache/system@framework@ext.j) D/dalvikvm( 739): Unable to process classpath element '/system/framework/ext.jar' E/dalvikvm( 739): Can't open dex cache '/data/dalvik-cache/system@framework@framework.jar@classes.dex': No such file or dy I/dalvikvm( 739): Unable to open or create cache for /system/framework/framework.jar (/data/dalvik-cache/system@framework) D/dalvikvm( 739): Unable to process classpath element '/system/framework/framework.jar' E/dalvikvm( 739): Can't open dex cache '/data/dalvik-cache/system@framework@android.policy.jar@classes.dex': No such filey I/dalvikvm( 739): Unable to open or create cache for /system/framework/android.policy.jar (/data/dalvik-cache/system@fram) D/dalvikvm( 739): Unable to process classpath element '/system/framework/android.policy.jar' E/dalvikvm( 739): Can't open dex cache '/data/dalvik-cache/system@framework@services.jar@classes.dex': No such file or diy I/dalvikvm( 739): Unable to open or create cache for /system/framework/services.jar (/data/dalvik-cache/system@framework@) D/dalvikvm( 739): Unable to process classpath element '/system/framework/services.jar' E/dalvikvm( 739): ERROR: no valid entries found in bootclasspath '/system/framework/core.jar:/system/framework/ext.jar:/s' W/dalvikvm( 739): JNI_CreateJavaVM failed E/AndroidRuntime?( 739): JNI_CreateJavaVM failed I/ ( 789): ServiceManager?: 0xacd0 W/AudioHardwareInterface?( 789): Using stubbed audio hardware. No sound will be produced. D/AudioHardwareInterface?( 789): setMode(NORMAL) I/CameraService?( 789): CameraService? started: pid=789 I/AudioFlinger?( 789): AudioFlinger?'s thread 0xb3d8 ready to run E/keystore( 795): chdir: /data/misc/keystore: No such file or directory D/AndroidRuntime?( 794): D/AndroidRuntime?( 794): >>>>>>>>>>>>>> AndroidRuntime? START <<<<<<<<<<<<<< D/AndroidRuntime?( 794): CheckJNI is ON E/dalvikvm( 794): Can't open dex cache '/data/dalvik-cache/system@framework@core.jar@classes.dex': No such file or directy I/dalvikvm( 794): Unable to open or create cache for /system/framework/core.jar (/data/dalvik-cache/system@framework@core)

Comment by project member sola.198...@gmail.com, Jul 12, 2010

Please check permissions. I think there is no write access.

Comment by frankle...@gmail.com, Jul 12, 2010

Thanks a lot, I can run android 2.2 on my board now.

further questions, there are only 2 language supported, Japanese and English, I need Chinese simplified support, How should I hack the code?

Comment by project member sola.198...@gmail.com, Jul 13, 2010

Please change the following file.

$ANDROID/vendor/sola/beagle/beagle.mk

Before change.

PRODUCT_LOCALES := \
	ldpi \
	hdpi \
	mdpi \
	ja_JP \
	en_US

Modified.

PRODUCT_LOCALES := \
	ldpi \
	hdpi \
	mdpi \
	ja_JP \
        zh_CN \
	en_US
Comment by frankle...@gmail.com, Jul 13, 2010

Thanks

Comment by frankle...@gmail.com, Jul 14, 2010

I find another line about the flash player package installation:

W/PackageManager?( 865): Unknown permission android.webkit.permission.PLUGIN in package com.adobe.flashplayer

Comment by vijayde...@gmail.com, Jul 15, 2010

Hi

I am getting error when I run Froyo on Beagle Board, Appreciate your help and thanks in advance: I checked the permissions of /system/bin/ .

Warning: unable to open an initial cnsole. Z+�: /init.rc: 247: ignored duplicate definition of service 'pvr' init: cannot open '/initlogo.rle' init: cannot find '/system/bin/sgx?rc.pvr', disabling 'pvr' init: cannot execve('/system?bin?mediaserver'): Permissin denied init: cannot execve('/system?bin/keystore'): Permissin denied

Comment by gergely.kis@gmail.com, Jul 21, 2010

Hi,

Will this port also work on a DevKit8000? from Embest?

Thanks, Gergely

Comment by project member sola.198...@gmail.com, Jul 23, 2010

Hi, gergely.kis

I have never tried. I do not have information on DevKit8000?. I think the kernel needs to be changed.

Comment by project member sola.198...@gmail.com, Jul 23, 2010

Hi, vijaydeepg

Please check permissions.

Comment by project member sola.198...@gmail.com, Jul 23, 2010

Hi, franklee73

MP3 issues are fixed in the next update. Player FLASH is because you are not sure, I know. Please tell me if you know the cause.

Comment by frankle...@gmail.com, Jul 24, 2010

Hi,sola

I think it is the packagemanager that forbids the installation of Adobe flash player 10. The permission "android.webkit.permission.PLUGIN" is not recognized by packageManager. Below is the log: W/PackageManager??( 865): Unknown permission android.webkit.permission.PLUGIN in package com.adobe.flashplayer

As far as I know, all permissions are defined at framework/base/api/current.xml, but there is no android.webkit.permission.PLUGIN in this file. I think as long as I can add the android.webkit.permission.PLUGIN, I can install flash player successfully, but I donot know where can add this permission in this file.

In many mobile phone that use Android, for example Motorola Milestone, Nexus1, which has the permission android.webkit.permission.PLUGIN, but the source code from google has not.

Comment by moquett...@gmail.com, Aug 2, 2010

Hi Sola,

great work you done !!!

can we know the list of patch you done to 0xlab kernel to obtain yours (http://sola-dolphin-1.net/data/android/BeagleBoard/kernel_beagle.0xlab.sgx.tar.bz2) ?

On my device, I have a working 2.6.32 kernel, but heavily patched already. So I would like to use your port of Android but with my kernel (by adding modifications relatives to android 2.2 and maybe yours also...)

Thanks for help. thanks

Comment by grego...@gentil.com, Aug 9, 2010

Same here. Do you have a list of patches for your kernel? Thanks.

Comment by Mephisto...@gmail.com, Aug 20, 2010

hi sola. thanks for the great work. but when i power off the phone. there is huge amounts of flicker in power off dialog. any suggestions?

Comment by saminath...@gmail.com, Sep 15, 2010

Hi Sola,

I am try to port android 2.2. on the Devkit8000 using above procedure. I am facing few problems while porting. Touch screen not working and display screen locked by message 'Connect charger'. any suggestion?.

Comment by Strickly...@gmail.com, Sep 27, 2010

Trying to activate the I2C2?? bus so I can use the expansion connector I2C2?? port. Is the code to do this activation included in the binary portion of the distribution? Is there a way to turn on I2C2?? otherwise?

I have a clean build running but can not find the magic to get the I2C2?? working.

Comment by yujiangy...@gmail.com, Oct 5, 2010

Hi Sola

i am try to port android 2.2. on my board, when i boot android the below error is happened. can you give me some suggest?

# warning: `zygote' uses 32-bit capabilities (legacy support in use) init: waitpid returned pid 650, status = 00000009 init: process 'zygote', pid 650 exited init: process 'zygote' killing any children in process group request_suspend_state: wakeup (3->0) at 181415856002 (1970-01-01 00:03:01.415850002 UTC) init: starting 'zygote' init: Created socket '/dev/socket/zygote' with mode '666', user '0', group '0' init: waitpid returned pid 715, status = 00000009 init: process 'zygote', pid 715 exited init: process 'zygote' killing any children in process group request_suspend_state: wakeup (0->0) at 187439940002 (1970-01-01 00:03:07.439934002 UTC) init: starting 'zygote' init: Created socket '/dev/socket/zygote' with mode '666', user '0', group '0' init: waitpid returned pid 734, status = 00000009 init: process 'zygote', pid 734 exited init: process 'zygote' killing any children in process group request_suspend_state: wakeup (0->0) at 193506835002 (1970-01-01 00:03:13.506828002 UTC)

Comment by RalfBone...@gmail.com, Oct 20, 2010

Hi saminathmail probably the follwoing description migth give you some hint to solve the "charger" issue: http://nb-no.facebook.com/note.php?note_id=91068179361

This ist about faking the battery status

Comment by varun555...@gmail.com, Oct 27, 2010

Hi

There is a zImage in the "kernel-beagleboard/arch/arm/boot" folder. But How to put it in the SD card for it to run on beagle board. I am stuck here please help.

Comment by therobst...@gmail.com, Nov 16, 2010

I would like to have the kernel git available... do you have a git URL for this?

And Varun, you put the uImage file on a FAT partition #1. The bootloader should pick it up with fatload:

mmc init fatload mmc 0 80000000 uImage bootm 80000000

Comment by callnage...@gmail.com, Jan 5, 2011

Hi Sola, I am using your patch, I am getting the below error

target SharedLib?: libaudioflinger (out/target/product/beagleboard/obj/SHARED_LIBRARIES/libaudioflinger_intermediates/LINKED/libaudioflinger.so) /usr/krush/froyo/froyo/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/../lib/gcc/arm-eabi/4.4.0/../../../../arm-eabi/bin/ld: skipping incompatible out/target/product/beagleboard/obj/lib/libaudio.so when searching for -laudio /usr/krush/froyo/froyo/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/../lib/gcc/arm-eabi/4.4.0/../../../../arm-eabi/bin/ld: cannot find -laudio collect2: ld returned 1 exit status make: [out/target/product/beagleboard/obj/SHARED_LIBRARIES/libaudioflinger_intermediates/LINKED/libaudioflinger.so] Error 1

I have not configured the manifest file for ALSA as I do not need ALSA now. Thanks and Regards, Nagendra

Comment by callnage...@gmail.com, Jan 5, 2011

Hi Sola, I am using your patch, I am getting the below error target SharedLib?: libaudioflinger (out/target/product/beagleboard/obj/SHARED_LIBRARIES/libaudioflinger_intermediates/LINKED/libaudioflinger.so)

/usr/krush/froyo/froyo/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/../lib/gcc/arm-eabi/4.4.0/../../../../arm-eabi/bin/ld: skipping incompatible out/target/product/beagleboard/obj/lib/libaudio.so when searching for -laudio

/usr/krush/froyo/froyo/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/../lib/gcc/arm-eabi/4.4.0/../../../../arm-eabi/bin/ld: cannot find -laudio

collect2: ld returned 1 exit status

make: [out/target/product/beagleboard/obj/SHARED_LIBRARIES/libaudioflinger_intermediates/LINKED/libaudioflinger.so] Error 1

Thanks, Nagendra

Comment by Yakisoba...@gmail.com, Jan 26, 2011

こんにちわ solaさん 上記の通りにfroyoを生成しようとしたのですが

4.kernelのカーネルをビルドするのことろで

   :~/android/beagle/kernel-beagleboard$ make ARCH=arm CROSS_COMPILE=../prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi- sola_omap3_beagle_android_defconfig
   HOSTCC  scripts/basic/fixdep
   HOSTCC  scripts/basic/docproc
   HOSTCC  scripts/basic/hash
   HOSTCC  scripts/kconfig/conf.o
 scripts/kconfig/conf.c: In function ‘conf_askvalue’:
 scripts/kconfig/conf.c:105: warning: ignoring return value of ‘fgets’, declared with attribute warn_unused_result
 scripts/kconfig/conf.c: In function ‘conf_choice’:
 scripts/kconfig/conf.c:307: warning: ignoring return value of ‘fgets’, declared with attribute warn_unused_result
   HOSTCC  scripts/kconfig/kxgettext.o
   SHIPPED scripts/kconfig/zconf.tab.c
   SHIPPED scripts/kconfig/lex.zconf.c
   SHIPPED scripts/kconfig/zconf.hash.c
   HOSTCC  scripts/kconfig/zconf.tab.o
   HOSTLD  scripts/kconfig/conf
 #
 # configuration written to .config
 #

このようになるのは大丈夫でしょうか?また、

    :~/android/beagle/kernel-beagleboard$ make ARCH=arm CROSS_COMPILE=../prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi- uImage modules 
make: ../prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi-gcc: コマンドが見つかりませんでした 
scripts/kconfig/conf -s arch/arm/Kconfig 
make: ../prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi-gcc: コマンドが見つかりませんでした
    CHK include/linux/version.h 
make[1]: `include/asm-arm/mach-types.h' は更新済みです
    CHK include/linux/utsrelease.h 
    SYMLINK include/asm -> include/asm-arm 
    CC kernel/bounds.s 
/bin/sh: ../prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi-gcc: not found 
make[1]:  *** [kernel/bounds.s] エラー 127 
make: *** [prepare0] エラー 2 

上記のようなエラーが発生します.ちなみにOSはubuntu10.04 64bit版です

どのように解決すればよろしいのですか?

おねがいします.

Comment by emact2...@gmail.com, Jan 31, 2011

こんにちは sola さん 4.のkernelをビルドする所で

$ make ARCH=arm CROSS_COMPILE=../prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi- uImage modules make: ../prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi-gcc: コマンドが見つかりませんでした scripts/kconfig/conf -s arch/arm/Kconfig make: ../prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi-gcc: コマンドが見つかりませんでした

CHK include/linux/version.h
make1?: `include/asm-arm/mach-types.h' は更新済みです
CHK include/linux/utsrelease.h SYMLINK include/asm -> include/asm-arm CC kernel/bounds.s
/bin/sh: ../prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi-gcc: not found make1?: [kernel/bounds.s] エラー 127 make: prepare0? エラー 2

上記のようなエラーが発生しました コマンドが見つかりませんと言われていますが、ディレクトリを辿ると、その名前のファイルは存在することが分かります。

OSはubuntu10.04 64bit版です

解決策をよろしくお願いします

Comment by project member sola.198...@gmail.com, Feb 1, 2011

kernel ビルド時の warning は問題ないと思います。

コマンドが見つからないのは、恐らく環境の問題です。 こちらの通りにビルド環境を構築してみてください。 http://blog.sola-dolphin-1.net/archives/3075261.html 64bit 版と 32bit 版はインストールするソフトウェアが異なります。

Comment by atpyo...@gmail.com, Mar 14, 2011

hi Everyone,

i am facing the following problem when booting the kernel. AMDISK: gzip image found at block 0 mmc0: host does not support reading read-only switch. assuming write-enable. mmc0: new high speed SDHC card at address 1234 List of all partitions: No filesystem could mount root, tried: ext2 Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(1,0)

rds atpyouth

Comment by shunji.e...@gmail.com, Aug 7, 2011

Hi こんにちは。参考にしています。

3月注文以降の BeagleBoard?-xM Rev.B => Rev.C になってからは、 画面赤くなってUSB効かず動かないまま放置され残念におもいましたが TI から July 13 Rev.C対応 DevKit? がTIからリリースされたので TI Android Devkit Gingerbread-2.3.4-Devkit-2.1 (Rev.C supported) で Prebuildから少しずつ手さぐり状態で手直し中です。 Makefileも少しかわった感じかもしれませんが、solaさんの、参考にしています。

BeagleBoard?-xM 上では GingerBread? は FroYo? にくらべて動きがスローで、PicoTTSも動かず Default では有線LAN非対応なので、 暫く検討して様子みてから通常のAndroid実機とか PandaBoard? に移ろうとは思います・・・。

サイト、今後も楽しみにしています。頑張ってください。


Sign in to add a comment
Powered by Google Project Hosting