First of all, note these steps are still experimental and not meant for end users, so if you don't know what you are doing, skip this and wait for something more end user friendly to come.
The "multi root" will let you choose between multiple rootfs images at the startup from your archos.
It uses the same kernel for your different rootfses, namely a modified archos android kernel.
The final goal is to be able to use for example kexec, so it would also be possible to boot different kernels. Sources for the kernel and initramfs are available on gitorious:
Installing Multi Root on Gen8
First, you have to install SDE from Archos (65MB download).
Instructions on how to install SDE are provided on the page. Once installed, you can proceed.
Download initramfs.cpio.gz and zImage from https://openaos.org/wp-upload/gen8/2012-12-25/kernel_gen8_20121225_093548.tar.gz.
Unpack the archive (using 7zip/WinRar/"tar -zxvf"/…) and keep only initramfs.cpio.gz and zImage.
NOTE: Builds linked here can change and may have bugs
Connect your archos to your PC with the usb cable.
Shutdown your archos by holding down the power button. Go into recovery by holding down the "volume down" button and switch on your archos.
Keep the button pressed until you see the white recovery menu.
Go to "Developer Edition Menu" ➔ "Flash Kernel and initramfs"
Copy the downloaded files to the archos and unmount safely.
When the bootmenu is started it will look for menu.lst on the internal storage of your archos.
In menu.lst you will be able to define your boot menu. If it doesn't exists, it will create a default one for you with the following content:
Note the blank line at the end; it is required. Your rootfs image files are expected to be on the internal memory.
Installing OSes (rootfs filesystems)
|Name:||How to install:||Download:||Sources:||How to build your own:|
|Guidelines to install Gingerbread||openaos.org/wp-upload/gen8/2013-01-27/||gitorious.org/openaos-cyanogenmod||Setting up buildenvironment Cyanogenmod gen7/gen8|
|Debian LXDE||Debian gen8||openaos.org/wp-upload/gen8/debian/||Debian gen8|
Currently known problems:
- Archos init is not replaced because of issues with original archos firmware. You will have to start the boot menu by going into recovery and choose developer edition.
- On Android, the on-touchscreen buttons of the Archos 24 and 32 won't work (will be fixed in next release)
More info on multiroot Bootmenu
If you are not a developer or not willing to debug and build things, consider this sentence as the end of the wiki page.
In the bootmenu, Advanced menu ➔ Debugging will bring you the serial menu where you can choose a debugging method:
- None = no debugging
- Serial = USB serial
- Ether = ethernet
- Both = USB + ethernet
If you enable serial, 3 connections will be available on your PC
On a Debian-based distro (Ubuntu & others), in a shell, you should get:
coder@devpc~$ dmesg | grep cdc_acm [3365540.510632] cdc_acm 1-4:2.0: This device cannot do calls on its own. It is not a modem. [3365540.510749] cdc_acm 1-4:2.0: ttyACM0: USB ACM device [3365540.512000] cdc_acm 1-4:2.2: This device cannot do calls on its own. It is not a modem. [3365540.512277] cdc_acm 1-4:2.2: ttyACM1: USB ACM device [3365540.517070] cdc_acm 1-4:2.4: This device cannot do calls on its own. It is not a modem. [3365540.517222] cdc_acm 1-4:2.4: ttyACM2: USB ACM device
- /dev/ttyACM0: Used for android console
- /dev/ttyACM1: Gives you a shell in initramfs
- /dev/ttyACM2: Output of kernel messages (/proc/kmsg)
Use a serial terminal emulator such as minicom, screen or putty to connect with the following parameters:
- Speed: 115200 (can be set higher or lower, doesn't matter much, we're on USB)
- Data bits: 8
- Stop bits: 1
- Parity: none
- Flow Control: none
Using minicom: Enable USB serial debugging.
Start your shell by entering the following on your pc:
$ minicom -D /dev/ttyACM1
Show kernel messages output by entering the following on your PC after the command choose on your archos the rootfs you want to start:
$ minicom -D /dev/ttyACM2
Building your own kernel from the openaos git source
This will build a GCC crosscompiler. At the very end, zImage should be located in buildroot/linux/arch/arm/boot.
$ git clone https://git.gitorious.org/archos-buildroots/gen8.git $ cd gen8 $ git clone https://git.gitorious.org/archos-buildroots/gen8-kernel.git linux $ cd buildroot $ make (or make kernel should only build the zImage and crosscompiler)
When done with building the kernel you can build initramfs.cpio.gz
$ cd gen8 $ make dist
Everything including the zImage will be in openaos/target, it will also create the md5sum files for you. As a bonus there is the modules tarball as well.
Note: Make sure you have all the dependencies installed. Below are the dependencies needed for Ubuntu 10.04. That should give you a good starting point for other distros.
sudo aptitude install autoconf automake bison build-essential cmake flex gawk gperf intltool libbz2-dev libcap-dev libglib2.0-dev libxml-simple-perl libxml2-dev lzma m4 rpm subversion texinfo x11-xkb-utils xmlto zlib1g-dev ncurses-dev expect libtool libmpfr-dev libgmp3-dev libgphoto2-2-dev
Other useful links for developers
- How to repack initramfs
- How to make a custom splash image
- FBmenu bootmenu
- Unpacking original archos firmware
Feel free to contribute more or make changes...