Introduction to the "Special Developer Edition" firmware

The Special Developer Edition (SDE) firmware can be installed on Archos A5 and A7 devices, turning them essentially into bare-metal development platforms. There are essentially two components to the SDE which get installed at the same time, replacing the standard media player and all its Linux infrastructure.

Part 1: a new recovery manager and bootloader

The SDE contains a new recovery manager which is able to install the developer's choice of Linux kernel and initial ramdisk (initrd), and a new bootloader that is able to boot that kernel. In recovery mode the A5 exposes its hard disk as a USB device in the familiar way, and will read the kernel and initrd from the root of the device. The kernel file must be called zImage, and the initrd initramfs.cpio.gz. The latter is, as the name suggests, a gzip'd cpio archive of a root filesystem. The recovery manager is a bit fussy about format, and expects the initrd to be created using the -H newc switch to cpio. These files are read into flash memory, and used by the bootloader on the next boot. The recovery kernel and initrd are not affected, and it should not be possible to break the recovery mode by installing a bad kernel or initrd. In fact, installing a bad kernel or initrd is almost inevitable, perhaps many times.

For some simple applications, the entire Linux system might fit into the initrd. In practice, it's more likely that the initrd will contain just enough code to mount a real root filesystem from some other place and invoke a script on it to initialize a proper Linux distribution. With the stock Archos non-SDE firmware, the initrd reads a compressed cramfs filesystem into memory, and mounts that as the root filesytem. An alternative approach is to provide the root filesystem as an image somewhere on the main partition of the drive. You could even use the main partition itself, but this would be tricky unless you reformatted it from FAT32 to something more Unix-friendly.

As supplied, the initrd mounts the file `rootfs.img' from the root of the main partition; this file is expected to be an image of an ext3 filesystem, not compressed. But you can put anything you like in the image. If it stops the unit booting, you can reboot in recovery mode and edit the image again over the USB connection.

Part 2: a demonstration Linux distribution based on Angstrom

As supplied, the SDE firmware installs a kernel, initrd, and root filesystem from the Angstrom Linux distribution. Angstrom is based on OpenEmbedded, and includes all the tools needed to build a complete ARM, X-based Linux distribution from source. Angstrom on the A5 is really only a proof-of-concept, because very little has been done to integrate it with the A5 hardware. However, Angstrom can be made to work quite usefully with a bit of development work and configuration: see here.

All the Angstrom stuff could be removed or overwritten with another Linux build if required. Alternatively, you could install the Angstrom source on a workstation and use it to build a better version of Angstrom for the A5.

Before you install the SDE

Read this first! There are some important issues with the SDE.

1. Installing the SDE takes away the ability to play DRM-encoded media, probably forever. Although a normal Archos firmware can be installed, overwriting the SDE, this by itself won't recover the DRM support. There may be some nasty hack that does, but I doubt you'll get the information from Archos.

2. Installing the SDE deletes the stock Archos firmware, including the AVOS application and all its helpers. In fact, it blanks the HiddenPartition hidden partition on the disk that contains all this stuff. This is a shame, because the original root filesystem rootfs.cramfs.secure is a good source for proprietary drivers that Archos can't release as open source. So I would recommend backing up the hidden partition, or at least the rootfs file, before installing the SDE.

On the gen8 devices this is no longer true. SDE is dual boot, by holding the volume down key at starting up your archos you get a choice between developer edition and original android.

3. Installing the SDE installs a magnificently ugly boot logo. I mean, really breathtakingly ugly. And there's no obvious way to get rid of it.

On the gen8 devices the boot logo stays the same archos logo.

4. There are plenty of helpful people around, but there is little formal documentation of the Archos hardware and its kernel interfaces. To work on porting any kind of Linux distribution to the A5 you should expect to have to spend a fair amount of time digging around in the kernel sources (most of the Archos-specific kernel stuff is now open source) and doing a lot of trial-and-error. There are similarities with other ARM-based embedded platforms like the BeagleBoard, but there still a lot that is Archos-specific.

Don't install the SDE expecting to get a fully working Linux development platform -- that's just not where things are right now.