Installing Debian as an upgrade

From OLPC

These instructions assume you are starting from build 612 or later, which has support for booting from multiple images. (This started working some time prior to build 612, but I can't be bothered to look up the exact build right now.)

Note that you require a Developer key to run unsigned operating systems.

Now, boot into sugar. You are currently running from the system in /versions/run/build_number, which is a copy-on-write mirror of /versions/pristine/build_number. We're going to install debian in /versions/pristine/debian. (See Early boot for details on the OS versioning scheme.)

Note that in recent builds, you can magically get to the results of step 3 below by typing:

# /usr/sbin/olpc-update debian

To get the results of step 5, you can type:

# /usr/sbin/olpc-update debian-big

or

# olpc-update debian/debian-big (note: this does not seem to work anymore, dustinlw1987 2009-01-28)

Contents

Shell script alternative

I have created a shell script which automates all steps 1 and 2. All you have to do is put it on the OLPC and run it. However, it is totally unsafe to run software downloaded from a wiki in this way. I could have put all manner of evil in it. So read it first. --65.75.18.227 00:59, 16 December 2007 (EST)

Step 1: Create debian bootstrap

Wait awhile. Eventually, you'll have a complete debian bootstrap system in mnt. But you need to clean up udev's "persistent network" a bit, since the XO doesn't have the same devices as the debian machine you used to bootstrap:

Not exactly ideal, but it works for me. It will take apt a little while to rebuild the cache after you reboot, of course. I think you could achieve persistence by copying the files to/from the tmpfs either in startup/shutdown scripts, or maybe pre-/post-invocation hooks in apt (which might have the added benefit of being able to mount/unmount the tmpfs on demand).

Step 3: Boot into Debian!

Shutdown your XO, then remove your USB flash drive from the XO. As documented at Cheat codes, reboot while holding down the 'O' game pad key to switch to the alternate OS (debian!). (Use "triangle" instead if you've got a B3 or older machine.) Reboot again with the 'O' game pad key pressed down to switch back later.

Log in as root when debian prompts; no password.

If for some reason this doesn't work for you (it didn't for one anonymous user, on version 650), you can do this manually from Open Firmware (of course you'll need a devkey for this, to get one go to file:///home/.devkey.html). Once you have a devkey, hit "esc" (upper left) when it says to, to get into OF.

As of 28 May, user:olpc, pass:olpc works, and root,<blank> does not

In build 766, Login: root (no password option is given and you are in after typing "root"

The last OS you booted (currently the OLPC one) will be in nand:\boot, and the "alternate" OS (currently Debian) will be in nand:\boot-alt

(The modprobe command is unnecessary if udev did it's job. You might look at the output to 'lsmod' to check that it's loaded.)

One user says:

You should also be able to use wifi, my WPA network works fine, once I installed a wpa_supplicant deb from my USB flash drive. iwconfig also sees the mesh device, but I have let to test if it works. One weirdness: my wifi interface is eth5!

Step 5: Install fun stuff

For example:

# apt-get update
# apt-get install emacs

(aptitude will pull in "recommended" dependencies, which will bloat your system. use apt-get or go to "Options->Dependency Handling" and uncheck "Install Recommended packages automatically" instead. If you'd rather use aptitude from the command line, you can use the option -R or --without-recommends.)

You'll probably want to use 'adduser' to add a user to the system, too. The 'olpc' user will be handy:

# addgroup --gid 500 olpc
# adduser --uid 500 --gid 500 olpc

Reboot and voila! Graphical goodness.

Some user say:

I had some troubles getting this to work. In order to get X to work, I used these instructions.

It worked fine for me, but GNOME is too big for a 1GB Nand. XFCE LXDE[3] is more suitable in my opinion.

before you reboot, add a password to root (passwd root), otherwise you will not get into the GUI. Markb 02:05, 15 June 2008 (EDT)

Trivia

The instructions above work ok on a 653 build XO, with the system booting successfully into Debian. In case it wasn't obvious, the system will continue to 'boot alternate' until you switch back to the XO os by once again hitting the 'o' game key while powering up.

Following these instructions one user had to add the write permission for others for /tmp. It was a upgrade from a standard 650 build the default sugar build umask is read+execute for others. Then I could login to the gui.

To preserve this alternate boot even when you olpc-update the main partition, you'll want to do something like: