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:

Share this:

Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress

ROCK 5 ITX RK3588 mini-ITX motherboard
Subscribe
Notify of
guest
The comment form collects your name, email and content to allow us keep track of the comments placed on the website. Please read and accept our website Terms and Privacy Policy to post a comment.
25 Comments
oldest
newest
Adit Lal
Adit Lal
12 years ago

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
Mike Trethowan
12 years ago

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… Read more »

Mike Trethowan
Mike Trethowan
12 years ago

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

Mike Trethowan
Mike Trethowan
12 years ago

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… Read more »

Mike Trethowan
Mike Trethowan
12 years ago

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
Venkat Reddy
12 years ago

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
Venkat Reddy
12 years ago

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
spatial
12 years ago

@ 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
patrik
12 years ago

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… Read more »

patrik
patrik
12 years ago

These are what I see on my serial console: root@android:/ # 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… Read more »

patrik
patrik
12 years ago

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
swapn
11 years ago

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
vimal
8 years ago

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

vimal
vimal
8 years ago

Error Msg:

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

Boardcon Rockchip and Allwinner SoM and SBC products