Android 4.0 on BeagleBoard and Beagleboard-xM

Sola has written the instructions (in Japanese) to build Android 4.0 (ICS) for Beagleboard and Beagleboard-xM.

Here’s the same in English:
Get the source code:

$ mkdir -p /home/sola/work/ics
$ cd /home/sola/work/ics
$ export ANDROID_ROOT=$PWD
$ repo init -u https://bitbucket.org/sola/android_manifest
$ repo sync -j8

Build Android:

$ cd $ANDROID_ROOT
$ source build/envsetup.sh
$ lunch full_beagleboard_xm-eng [for BeagleBoard-xM]
$ lunch full_beagleboard-eng [for BeagleBoard]
$ time make -j8

Generate the rootfs:

$ cd $ANDROID_ROOT/out/target/product/beagleboard_xm/ [for BeagleBoard-xM]
$ cd $ANDROID_ROOT/out/target/product/beagleboard/ [for BeagleBoard]
$ mkdir rootfs
$ sudo cp -a ./root/* ./rootfs/
$ sudo cp -a ./system/* ./rootfs/system/

Build the kernel:

$ export ARCH=arm
$ export CROSS_COMPILE=$ANDROID_ROOT/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-
$ cd $ANDROID_ROOT/board/beagleboard/kernel
$ make omap3_beagle_android_defconfig
$ make uImage modules -j8

Partition the SD card (bootloader, media, rootfs):

$ cd $ANDROID_ROOT/board/beagleboard/sdcard
$ sudo LANG=C ./mksdcard_beagle.sh /dev/sdx

where /dev/sdx depends on your setup (e.g. /dev/sda).

Generate boot.scr:

$ cd $ANDROID_ROOT/board/beagleboard/bootscript
$ ./mkbootscr

Copy MLO/u-boot.bin/uImage/rootfs to the SD card:

$ cd $ANDROID_ROOT
$ sudo cp -a board/beagleboard/x-loader/MLO /media/boot/
$ sudo cp -a board/beagleboard/u-boot/u-boot.bin /media/boot/
$ sudo cp -a board/beagleboard/bootscript/boot.scr /media/boot/
$ sudo cp -a board/beagleboard/kernel/arch/arm/boot/uImage /media/boot/
$ cd $ANDROID_ROOT/out/target/product/beagleboard_xm/ [for BeagleBoard-xM]
$ cd $ANDROID_ROOT/out/target/product/beagleboard/ [for BeagleBoard]
$ sudo cp -a ./rootfs/* /media/rootfs/
$ sudo chmod 777 -R /media/rootfs

Prebuilt images are also available:

25
Leave a Reply

avatar
25 Comment threads
0 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
8 Comment authors
vimalswapnpatrikspatialVenkat Reddy Recent comment authors
  Subscribe  
newest oldest most voted
Notify of
Adit Lal
Guest

This is the guide i took for reference and changed the repositories address to the one for beagleboard , using this command
[CODE]repo init -u https://bitbucket.org/sola/android_manifest%5B/CODE%5D
Yet all 239 odd projects got downloaded , how to only download the beagleboard source files and not all aosp project on the main android source code git

Please clarify this (i know how to use -b option in repo sync to take only branches of a project from the manifest i point it to)
repo should only download files from bitbucket.org and not all android sources files correct?

Mike Trethowan
Guest

Hi, I am working on the BB-xm using the DVI and a standard LCD monitor (all works with rowboat and angstrom.) Currently I have no way to use the serial port to watch what’s happening. Being familiar with Rowboat’s boot, this is what I see. The LEDs go through the same sequence during boot then go off as expected. Next the LED on my monitor comes on but no display of a boot screen as I would expect and never does have a display. I am using a USB hub and have a really good power source, (a nice 5v 4A wall-wart switcher.) This is probably simple, but I am still fairly new to Android and to Linux.

Mike Trethowan
Guest

I should have mentioned that I am using the prebuilt image..@Mike Trethowan

Mike Trethowan
Guest

Thank you for the response. I have been on many android user groups and never had someone reply to a question.. I did look in boot.scr and compared it with rowboat’s and the arguments were mostly the same: The boot.scr from this prebuilt has console=ttyO2,115200n8. The differences had to do with partition format, ext4 vs ext3 and with root=’dev/mmcblk0p2 vs root=’dev/mmcblk0p3. Wait states are handled different where rowboat uses rootdelay=1, this uses rootwait and noinitrd.

There are two additional arguments that don’t exist within rowboat, but they are DVI related which may actually be a problem. The first is omapfb.mode=dvi:640x480MR-16 and omapdss.def_disp=”dvi”

I will play with the boot arguments and see what I get. Again, thanks and I will check out the link.

Mike Trethowan
Guest

I decided to change root=’dev/mmcblk0p3 to root=’dev/mmcblk0p2 and delete omapfb.mode=dvi:640x480MR-16. This seems to have fixed the problem. Again, Thanks.

Venkat Reddy
Guest
Venkat Reddy

Hi,

I had downloaded the source from this source and re-created the Kernel and Android images. I am getting “Unfortunately,System UI has stopped” message is coming for every one 1sec. I am using beagle-xm board. Could you please help me here?.

Br,
Venkat

Venkat Reddy
Guest
Venkat Reddy

I have found work around to this issue. Download beagleboard ICS patches
$ cd ~
$ curl http://rowboat.googlecode.com/files/Beagleboard_ICS_patches.tar.gz > Beagleboard_ICS_patches.tar.gz
$ tar -zxvf Beagleboard_ICS_patches.tar.gz

and apply patch

frameworks/base

$ cd /frameworks/base
$ git am /0001-change-default-device-type-for-touch-screen.patch
$ git am /0002-disble-hardware-renderer.patch

you can find more information at http://code.google.com/p/rowboat/wiki/ICSonBeagleboard

spatial
Guest
spatial

@ Venkat Reddy
I was using the beagleboard xm with the original Kingston SD Card. Basically I think the card to too slow to run the operating system.

patrik
Guest
patrik

Hi,

I have successfully followed the above instructions to port Android 4.0 ICS on OMAP 3530 beagleboard. The issue is ith the USB.
I have powered my Beagleboard with 5V DC supply and tried to connect the USB hub with Keyboard and mouse to both USB HOST and USB OTG and at both times the devices are not recognised and I(even if I am not plugging the hub to the Beagleboard) always get USB enumeration failure.

Also, upon boot, although the root command prompt comes up, I get these messageson the minicom serial terminal:
request_suspend_state: sleep (0->3) at 107356268123 (2000-01-01 00:01:42.518621636 UTC)
PM: Syncing filesystems … done.
mmc0: card 0001 removed

and then none of my keystrokes on the serial console gets executed on the command prompt of android.

Please help!

patrik
Guest
patrik

These are what I see on my serial console:

[email protected]:/ # hub 1-0:1.0: Cannot enable port 2. Maybe the USB cable is bad?
hub 1-0:1.0: Cannot enable port 2. Maybe the USB cable is bad?
ehci-omap ehci-omap.0: port 2 cannot be enabled
ehci-omap ehci-omap.0: Maybe your device is not a high speed device?
ehci-omap ehci-omap.0: USB host (EHCI) controller does not support full speed or low speed device on it’s root port.
ehci-omap ehci-omap.0: Please connect full/low speed device via a high speed hub.
hub 1-0:1.0: unable to enumerate USB device on port 2
warning: `zygote’ uses 32-bit capabilities (legacy support in use)
request_suspend_state: wakeup (3->0) at 34657470707 (2000-01-01 00:00:29.772460939 UTC)

[email protected]:/ # request_suspend_state: sleep (0->3) at 108676286655 (2000-01-01 00:01:43.791276887 UTC)
PM: Syncing filesystems … done.
mmc0: card 0001 removed

patrik
Guest
patrik

Yes, it is a high speed hub. When I connect to my Linux PC immediately the mouse and keyboard are recognized. By the way the instructions on Beagleboard ICS seems so complicated. Your instructions are damn easy to follow. I’d also downloaded the patch mentioned above. However I do not know which one to apply and how. Any help? I didnt find help in the website you mentioned..

swapn
Guest
swapn

hi sir, i have Beagleboard-XM (Arm cortex A8) and used prebuild image from ti.com,
link is http://processors.wiki.ti.com/index.php/TI-Android-ICS-4.0.3-DevKit-3.0.0_UserGuide

my hdmi output is completely working than i change boot arguments for s-video output(i change boot arguments according to the ti guide for froyo ) ..

than the s-video output is not getting and than i saw terminal it stucked at uncropessing kernel….

what to do for getting the s-video out..??? have a android 4.0.3 have s-video support..??

Thanks in advance

vimal
Guest
vimal

sudo cp -a ./root/* ./rootfs/ This cmd getting problem… please help me…

vimal
Guest
vimal

Error Msg:

[email protected]:/media/jamesreetha/VIMAL/ANDROIDNEW/out/target/product/beagleboard$ sudo cp -a ./root/* ./rootfs/
cp: cannot stat ‘./root/*’: No such file or directory