Installing Archos-Ångström in dual-boot mode

This page describes how to set up Archos-Ångström in such a way that the original Archos media player functionality is retained. You will need to reboot to switch between media player and Ångström Linux operation, but all the standard Archos stuff should still work (please log a bug if it doesn't: see How do I log a bug?).
This process requires a Linux desktop computer. There is no known way to use Windows, for example, for this.
The procedure for the dual-boot setup is essentially the same as for single-boot, except that there are some preparatory steps beforehand and some configuration after.
This procedures must be started from a clean, stock Archos firmware. If you have already installed the Special Developer Edition firmware, it's too late -- the Archos bits you need will have been erased. You will need to revert to the Archos firmware and start again.
In the description that follows, user input is in bold.

Step 1: consider legal implications

The process to be described may not be lawful in your jurisdiction. Although we have discussed it informally with Archos engineers, and they have no objection, they have not published an agreement in writing. Whether this lack of a written authorization represents a legal obstacle is something you will need to figure out for yourself.

Because we do not have permission from Archos to do so, we will not distribute the files you need to copy. You must get them from your own Archos unit, using the procedure described below or some other method.

Step 2: back up the original Archos firmware

See above: this is the only lawful way to get this software. Please do not ask us to supply it. The Archos firmware is on a 'hidden' partition on the hard disk. You will need to get access to that partition, and copy the software therein to a safe place, preserving all file attributes.
  • Boot the Archos unit into recovery mode by holding down the volume-up button whilst rebooting. Select 'Repair disk'
  • Connect a Linux computer using USB. If any drives are automatically mounted, unmount them
  • Find the USB device name of the whole disk (not the media partition) by inspecting the output of dmesg. It will typically be /dev/sdc or /dev/sdd depending on what other disks you have. We assume /dev/sdc below -- adjust as appropriate
  • Use fkdisk to find the offset on disk of the hidden partition
[root@lars tmp]# /sbin/fdisk /dev/sdc

Command (m for help): p

Disk /dev/sdc: 250.0 GB, 250059350016 bytes
255 heads, 63 sectors/track, 30401 cylinders
Units = cylinders of 16065*512 = 8225280 bytes
Disk identifier: 0x90820bee

   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1               1       30361   243874701    c  W95 FAT32 (LBA)
The offset is got by multiplying the end of the first partition (30361 in this case) by the cylinder size (8225280). Because these are large numbers, a desktop calculator probably won't work -- use the bc utility:
[root@lars tmp]# bc
bc 1.06
  • Mount the hidden partition, using the offset calculated above
# mkdir -p /tmp/mnt
# mount -o offset=249727726080 /dev/sdc /tmp/mnt
  • Make a tarball of the hidden partition
# cd /tmp/mnt
# tar cvf /tmp/hidden_partition.tar .
Do not copy the numbers above. They apply to a specific Archos model and firmware. Do the calculation yourself. Mistakes here could be very nasty.

Step 3: install Archos-Ångström binaries

Now that you have a backup of the Archos firmware, you can install the SDE firmware and the Archos-Ångström binaries using the procedure described here. Come back to this point once you have a working Ångström installation.

Step 4: restore Archos firmware from backup

  • Mount the hidden partition as described in step 2 above. You should note that it is now empty, as the SDE installation will have erased it.
  • Unpack the tarball you created earlier
# cd /tmp/mnt
# tar xvf /tmp/hidden_partition.tar
Restart the unit when you've done this, and boot into recovery mode again.

Step 5: create boot menu

In recovery mode, create a menu file for the boot manager. The file should be called menu.lst and it must be at the root of the USB partition. If you're using a Windows host, please be aware that this file must be in Unix text format -- a single line-feed at the end of each line, not the carriage-return-line-feed that Windows prefers. The file should look exactly like this (cut-and-paste is your friend here):
Angstrom Linux|/dev/sda1|/rootfs.img|/sbin/init
Archos AVOS|AVOS|AVOS|/sbin/init
This menu file can be customized to support multiple OS images, etc., but for now these two lines are all that is required.

Step 6: test

Remember to unmount correct from your host computer before restarting the Archos unit. When you reboot, you should see the boot menu, and be able to choose Archos or Angstrom. Please note that the boot menu is touch-enabled -- don't poke the screen unless you actually want to select something. You can use the volume/power buttons as well if you prefer.

The boot menu should look something like this:

Yes, we know it looks like something from a Sinclair ZX81. There is a good reason for that, and it won't be changing any time soon.