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:
Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as a software engineering manager, and starting to write daily news, and reviews full time later in 2011.
Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress
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?
@Adit Lal
Repo is a python script built on top of git – http://source.android.com/source/version-control.html
I’m not sure how to exactly, but If you know the directories to clone, you should be able to use git to do so.
Alternatively, I’ve just found a patch @ http://rowboat.googlecode.com/files/Beagleboard_ICS_patches.tar.gz.
For details see http://code.google.com/p/rowboat/wiki/ICSonBeagleboard
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.
I should have mentioned that I am using the prebuilt image..@Mike Trethowan
@Mike Trethowan
Hi Mike,
I don’t have a Beagleboard-xM, the guy who made the images is Sola, I’ve linked to his blog at the top of this post. You’d have a better change of getting an answer there.
@Mike Trethowan
I’ve checked the FAQ at http://beagleboard.org/support/faq. Your problem could be caused because of the boot arguments:
“I built my own custom kernel but I don’t see any boot messages?
You may be passing the wrong bootargs to the kernel. Linux kernels >= 2.6.36 are using ttyOn instead ttySn for the serials on OMAP, so set console=ttyO2,115200n8 in U-boot.”
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.
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.
@Mike Trethowan
Good to hear you fixed your problem. Thanks for commenting and providing the solution.
Rowboat released the code and instructions to Build Android 4.0 for Beagleboard with GPU support.
http://code.google.com/p/rowboat/wiki/ICSonBeagleboard_WithSGX
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
I don’t have a Beagleboard, so I have not tried those instructions. You could try to ask the original author (Sola). Link at the top of this post.
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
@ Venkat Reddy
Thanks for providing the solution.
@ 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.
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
I don’t have a board, so I would not be able to help you here.
I recommend you check the instructions and ask at http://code.google.com/p/rowboat/wiki/ICSonBeagleboard
OR
This week TI released Android 4.0.3 devkit for Beagleboard-xM / Beaglebone. See http://www.cnx-software.com/2012/04/16/texas-instruments-releases-android-4-0-3-devkit-for-beagleboard-xm-and-beaglebone/ for details.Sorry your board is using OMAP3530, it won’t be relevant to your board.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 support in use)
request_suspend_state: wakeup (3->0) at 34657470707 (2000-01-01 00:00:29.772460939 UTC)
root@android:/ # 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
Is your USB Hub an High Speed hub ? You can try by connecting it to a linux PC.
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..
@ patrik
The rowboat guys are the experts with TI boards and Android. Find “Where to get support” in http://code.google.com/p/rowboat/ and select your preferred method to contact them. That’s the best way to get a proper answer.
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
sudo cp -a ./root/* ./rootfs/ This cmd getting problem… please help me…
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
@vimal
That means there’s no ./root directory, so there must have been an error message shown in one of the previous commands.