[Gen8 Android Development] CalcProgrammer1:
Last summer I got Ubuntu 11.04 working on my A43 but didn't post anything about it. With the progress made on kexec and the new kboot bootloader, it is now possible to have multiple kernels for multiple OS'es. This means it just got a whole lot easier to boot Ubuntu without losing the ability to run OpenAOS or UrukDroid Android OS'es.

As far as I'm aware, Ubuntu doesn't work on the 2.6.29-omap1 kernel that Archos uses and is the base for most other development on gen8. However, for A43 and A101 users, OpenAOS member Nicktime made some headway in porting the 2.6.37+ kernel to gen8, but appears to have abandoned the project. I've cloned his repository and have been working to add features that he did not finish implementing. However, his kernel did have the ability to boot an Ubuntu rootfs and it works very well for desktop Linux distributions (this also works on Debian and I would assume other ARM distros as well).

As I have been unable to build an Ubuntu 11.10 rootfs using the rootstock method that Ubuntu describes here, I've started working with the HP TouchPadBuntu rootfs from this thread. This rootfs boots well on my TouchPad and I've removed the TP-specific items from it and added the gen8 items as necessary. The display is working and the touchscreen works as well (calibrated correctly as I copied my calibration from my 11.04 install). It boots into Unity 2D which is the default. I'm having issues getting the wl1271 wireless module up, I have had it running once but NetworkManager said device was not ready despite being able to iwlist scan and see a list of AP's and then connect to them manually.

RELEASE 1

You will need the rootfs and the modifications.

To install, mount your destination partition (should be at least 4GB and ext3 formatted) to a location, then run the following:

cd /media/UbuntuPartition (change this to wherever your Ubuntu partition is mounted)
tar xzf /path/to/TouchPadBuntuRootfs.tgz ./
tar xzf /path/to/Gen8Modifications.tar.gz ./

If you do not have a microSD card in the slot, you need to edit the file etc/fstab and change anything mmcblk1 to mmcblk0, this is because the SD card will identify as mmcblk0 if it exists, but if it does not exist then the internal storage gets identified as mmcblk0 instead. This is a kernel issue I have yet to find a solution to.

Kernels for Release 1

These boot from partition 3 of internal memory (/dev/mmcblk2p3)

Normal and Rotated 90 Degrees

This boots from partition 1 of external sdcard (/dev/mmcblk0p1)

Normal

These files do not need an initramfs, but to flash to device or to use with kboot you need one anyways. Simply create an empty (0 byte) file named 'initramfs.cpio.gz' and use it for this purpose.

INFO ON KERNEL MMC/SD INITIALIZATION

mmc0 (mmcblk0pX) - Micro SD card

mmc1 (mmcblk1pX, mmcblk2pX) - System and Data blocks of internal memory

mmc2 - wl1271 SDIO interface

I installed the rootfs to an 8GB microSD and boot it using root=/dev/mmcblk0p1 on the kernel command line.

[YOUTUBE]pHWLY0l4p54[/YOUTUBE]

USEFUL LINKS

http://dev.openaos.org/wiki/Gen8Linux2.6.37

https://github.com/CalcProgrammer1/archos-gen8-kernel-2.6.37

http://xdaforums.com/showthread.php?t=1304475

http://www.omappedia.org/wiki/OMAP_WiLink_Connectivity_Home

http://www.omappedia.org/wiki/MAC802.11_based_Wilink