Some of you might remember the IGEPv2, the board displayed in one of our first posts. I am using this board for various projects and one of them is Android software development. Since I don’t have much spare time, I decided to install the kernel and root filesystem provided by ISEE (http://labs.igep.es/index.php/How_to_get_the_Android_distribution). The “howto” only explains how to copy these files to a NFS server and run them using nfsboot, it doesn’t explain how to install these files to SD card. This post explains the 14 steps required to install Android on an SD card.
- Downloaded the kernel and root file system from : http://labs.igep.es/index.php/How_to_get_the_Android_distribution
- Initialize the SD card (in my case ‘/dev/sdd’, yours might be different.):
dd if=/dev/zero of=/dev/sdd bs=1024 count=2048
- create 2 partitions. First partition is a MSDOS partition, the second one is a EXT2 partition, make sure that the MSDOS partition is big enough to hold the kernel and boot.ini file.
- Create MSDOS partition:
mkfs.vfat -F 32 -n boot /dev/sdd1
- Create Linux partition:
mke2fs -j -L rootfs /dev/sdd2
- mount boot partition:
sudo mkdir /mnt/sd.android.boot; sudo mount -tvfat /dev/sdd1 /mnt/sd.android.boot
- mount rootfs partition:
sudo mkdir /mnt/sd.android.rootfs; sudo mount /dev/sdd2 /mnt/sd.android.rootfs
- Created a boot.ini containing:
# Set bootargs for ubuntu MMC boot setenv bootargs 'mem=512M androidboot.console=ttyS2 console=tty0 console=ttyS2,115200n8 root=/dev/mmcblk0p2 rw rootdelay=3 init=/init rootwait omap-dss.def_disp=dvi omapfb.video_mode=800x600MR-16@60' # Read kernel from FAT partition fatload mmc 0:1 80100000 uImage # and boot ... bootm 80100000 # Save this file as boot.ini.android and convert it using: # mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n 'Boot setup script' -d boot.ini.android boot.ini
- converted the boot.ini.android file so that it can be read by uboot:
mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n 'Boot setup script' -d boot.ini.android boot.ini
- copy boot.ini to SD card:
cp boot.ini /mnt/sd.android.boot
- copy kernel to SD card:
cp uImage-2.6.29-igep0020-20100407145010.bin /mnt/sd.android.boot/uImage
- Extract rootfs to /mnt/sd.android.rootfs:
tar -xvf android-image-eclair-2.1-update1-20100407145010.tar.bz2 -C /mnt/sd.android.rootfs
- Run the sync command
- Unmount the sd card:
sudo umount /mnt/sd.android.boot /mnt/sd.android.rootfs
Following the steps above should give you a bootable Android SD card for your IGEPv2.
It looks like WIFI is not working, but it seems that folks are working on it. See the following posts:
http://groups.google.com/group/rowboat/browse_thread/thread/3e7d82394f31c37a
http://groups.google.com/group/rowboat/browse_thread/thread/89d2df0383a3a804
More information:
A special thank you goes to Manel Caro (ISEE) for providing a few pointers.
Hi
thanks for this tutorial.I
I have got a problem at step 9. What’s the correct syntax? With or without a “-” between “boot” an “ini? And what does this “bo” at the line end mean?
Peter
The dash should be a dot, already corrected it. Thanks for the heads-up.
Thanks – This is just what i’ve been looking for – cant wait to try this tonight.
Hi,
I’m new to Linux and would appreciate any help – thanks in advance….
Ive have followed the steps but at step 8 I get the following message;
No command ‘setenv’ found, did you mean:
Command ‘netenv’ from package ‘netenv’ (universe)
setenv: command not found
Any ideas?
Hi Rob,
The ‘setenv’ inside boot.ini is used by uboot. An updated Android procedure for IGEPv2 is located at: http://labs.igep.es/index.php/How_to_get_the_Android_distribution
Freddy