sprocket i/o

thomas stromberg on technology, nature, and motorcycles

sprocket i/o header image 2

Ubuntu Hardy Heron on the OLPC XO-1

May 22nd, 2008 · Comments

Want to upgrade your OLPC XO-1, but still not ready to plunk down money on the OLPC XO-2? Install Ubuntu on an SD card! Not only do you suddenly have a faster, more usable machine, but you can just take the SD card out if you want to boot into Sugar. Using this post: XO Hacks: Beyond the Ubuntu Installation, I’ve written up some simplified instructions on how to do it:

NOTE: You will need to get a Developer key before installing any OS on the OLPC!

1. Download the Image

First, make sure you have an SD card. My Ubuntu install uses up 1023MB, so I would consider a 2GB card the minimum.

Next, download OLPCFiles-hardy-20080506.tar.bz2.torrent using BitTorrent, and stick the resulting 243MB file on the OLPC somewhere other than the SD card you intend to use. I used a 4GB USB stick to transfer it to the OLPC, but you can store this file anywhere on the built-in storage if you have space.

More inside the cut…

2. Prepare the System

Most of the next steps must be performed as root. The original OLPC build does not come with sudo, so this will work (the % sign represents the prompt, do not type it in).

% su -

Stop the automount and power management daemon, as they may interfere with the creation of a new volume.

 % service haldaemon stop
 % touch /etc/ohm/inhibit-suspend

If you have inserted the SD card already, you must find the mountpoint and unmount it. Otherwise, you may now put the SD card in.

 % df -h | grep mmc
 /dev/mmcblk0p1       1.9GB   1.1GB   749M   59%   /media/NIKON D50
 % umount /dev/NIKON\ D50

If you get back “device is busy” when you unmount, it’s because one of the automagic OLPC processes has decided to make use of your SD card. You can use fuser to find these commands, and kill the associated process id:

 % fuser -mv /media/NIKON\ D50
                                   USER  PID     ACCESS  COMMAND
  /media/NIKON D50:      olpc    1685   F....        python
                                   olpc    1912   F....        cat
 % kill 1685 1912
 % umount /dev/NIKON\ D50

3. Prepare the SD card

Run:

 
% fdisk /dev/mmcblk0

This will put you in an interactive partitioner. Use “p” to display the partitions that exist:

 Device                        Boot    Start   End     Blocks          Id      System
 /dev/mmcblk0p1                        1               4829    1960320+        6       FAT16
  • Type “d” [enter] for each of the partitions listed above (usually just one)
  • Type “n” to create a new partition
  • Select “p” for primary
  • Select “1″ for partition number
  • Press “enter” for First cylinder
  • Press “enter” for Last cylinder
  • Type “w” to save and exitNow you need to format the partition using the ext3 filesystem:
    % mke2fs -v -j -L OLPCRoot /dev/mmcblk0p1

    3. Installing Ubuntu

    Make a mountpoint for the card and mount it:

     % mkdir /media/OLPCRoot
     % mount /dev/mmcblk0p1 /media/OLPCRoot

    Copy over the security and boot files from the built-in OLPC storage:

    % rsync -vaR /security /boot /lib/modules /lib/firmware /media/OLPCRoot/

    Then extract the Ubuntu image onto the SD card:

    tar -C /media/OLPCRoot -xvjf /path/to/OLPCFiles-hardy-20080506.tar.bz2

    This step will take a really long time, so go grab a coke and a smile.

    4. Cleaning up

    You’ll want to re-enable power management before you reboot:

    rm /etc/ohm/inhibit-suspend

    And then do the deed:

    reboot

    Your machine should now boot into Ubuntu with XFCE. The password for the olpc user is olpcolpc by default. If your machine boots back into Sugar, your SD card might not be in all the way, or may have bad sectors.

    5. Post-Install

    Configure color scheme

    I found the default color scheme to cause tearing and corruption with the OLPC amd video driver. If this happens to you, you can change it by selecting a light background and icon scheme. Right click on the desktop, then select “Settings” and “Settings Manager”. Click on the “Desktop” and “User Interface” icons to get the job done.

    Connect to Wireless

    On the bottom of the screen, the left-most icon is to select your wireless network configuration. Click and select. This selection is not persistent between reboots.

    Update Packages

    Once connected to the Internet, the next thing to do is install the latest patches:

    % sudo apt-get update
    % sudo apt-get upgrade

    sudo

    The next thing I did was set sudo up to not prompt for a password, similar to the OLPC. To do so, you will want to run visudo and uncomment:

    %sudo ALL=NOPASSWD: ALL

    and comment out:

    %sudo ALL=(ALL) ALL

    Automatic Login

    To make it so that you automatically login like the standard OLPC image, edit /etc/gdm/custom.conf as root using gksudo or sudo, and add the following text to the [daemon] section:

    AutomaticLoginEnable=true
    AutomaticLogin=olpc

    Add “Add/Remove Programs” to your menu

    By default the OLPC XO build does not include a GUI for installing or removing applications. This adds it:

    % sudo apt-get install gnome-app-install
  • Tags: other

    Viewing 51 Comments

     

    Trackbacks

    (Trackback URL)

    close Reblog this comment
    blog comments powered by Disqus