Gian Pablo Villamil

Gian Pablo Villamil

Solving new problems in video, electronics and strategy

Gian Pablo Villamil RSS Feed


Health Warning: this page is now quite out of date, and I strongly suggest going to the forum at OLPCNews instead. Many things have changed, in particular the release of a new and much improved version of the Sugar interface, and a fully functioning port of Ubuntu Linux for the OLPC. Both of these make the OLPC considerably more useful, and obviate the need for many of the tips I list below.

I’ve decided to leave the page up since it still has some interesting links, and and since my initial critique of the OLPC project is still mostly valid.

Duly warned, read on below if you’re still interested.

I’ve had the OLPC XO for a week now, and have started to figure out how to make it more useful. This page is a repository of tips and techniques that I’ve found to be helpful. Some of the tips are meant to work with the default Sugar interface: these tips will make life easier for a child with an OLPC. Other tips suggest ways of replacing Sugar, making the OLPC usable as a lightweight computer for e-mail/web/etc.

My plan is to set up my OLPC so that it can be used as a controller for installations, instead of dedicating a full-blown laptop or desktop computer. I have already done most of what I need for this, by getting the Processing and Arduino environments working on the OLPC.

Assessment of the OLPC laptop and program

I have gotten quite frustrated with the Sugar user interface on the OLPC, and have written a rant about its shortcomings. In a nutshell, I think Sugar is crippling the OLPC project. I think OLPC should be split into a software project, that runs on any available hardware, and a laptop project, that provides a good platform for the former.

Read my rant here.

Useful sources of info

The “official” support forum

The OLPC News forum

Cat Moran has useful page of OLPC tips and tweaks

Making Sugar sweeter

There are a number of things you can do to make the default Sugar interface smoother and easier to use:

  • Connect an external, three button mouse. Using a mouse is quicker than the touchpad, and enables a crucial feature: cut and paste into the terminal window. Practically all the tweaks are well documented on this and other websites, but they involve a lot of typing into the command line. With a three-button mouse (wheel mice work the same way), you can select the text in the Browser, press ctrl-C to copy, switch to the terminal, and click the middle button (or the wheel) to paste. Saves a lot of typing and a lot of mistakes.
  • Disable active corners – moving to the screen corners activates the Sugar frame. This is completely useless, since there are already dedicated hardware keys for most of the frame’s functions, and a dedicated key for toggling it on and off. Disabling this “feature” makes life easier for everyone.
  • Install Flash, and remove click-to-play – the OLPC ships with an Open Source Flash clone called Gnash. Unfortunately, it performs rather poorly. Best to remove it entirely, and install Adobe Flash. Also, you can then remove the “click to play” screen which pops up before allowing Flash apps to run.
  • Set the clock – setting the OLPC clock is strikingly complicated, and requires using the command line.
  • Install Opera browser – the Opera browser allows tabbed browsing, Java applets, and access to the “real” filesystem, not just the Journal datastore.
  • Install multilingual fonts – The OLPC as shipped comes with a very small set of international fonts. You can install support for pretty much all major languages (eg. Japanese, Chinese, Korean, Hindi, etc.) by installing a Unicode font with the appropriate characters. You do this by finding an appropriate .ttf file, and copying it into the /usr/share/fonts directory on the OLPC. Top tip: if you have access to a Windows XP machine, open the Fonts control panel, and copy the Arial Unicode font to the desktop. Put it on a USB drive, and copy it into usr/share/fonts on the OLPC. This font, though large (22MB), contains glyphs for all the major languages. You can check it by going to and looking at the top banner – it should display all the non-Western languages in their own script.
  • Install multilingual input – the previous tip will let you display fonts in most major languages, but you should install the SCIM input manager to actually enter text using those. I find the Japanese input system most useful.
  • Set as Jabber server – if you are not around a lot of people with XO laptops, you won’t be able to try out the chat and collaboration features. However, by switching to another Jabber (chat) server, you can use these features over the Internet.
  • Get a developer key and Update software – the joyride builds implement a lot of useful features (notably power management) and include interesting additional utilities, such as the Clock. Backup any important files, but do give it a try. You need to get a developer key and disable firmware security in order to use the development builds.
  • Automate – if you find yourself doing a lot of these tweaks over and over, think about preparing a shell script containing all the commands. For all the files that you need to edit, eg. to deactivate active corners, remove click-to-play, etc keep an edited copy on a USB drive. That way, after reflashing, all you need to do is plug in the USB drive and run your script, in order to reset all your tweaks.

Growing up

However, Sugar is pretty limited. If you want to use the OLPC as a lightweight, walk-around computer, you will probably want to install a more capable user-interface. You can either upgrade to a full-featured Linux build, such as Debian or Ubuntu, or just install a desktop interface such as XFCE.

  • Install XFCE – this is a nice Linux desktop. You can run many full-blown applications under this environment, notably full versions of browsers like Firefox, word processors like Abiword, and other Linux utilities such as WiFi Radar.
  • Install Enlightenment – this is another Linux desktop. It is more modern (and looks nicer) than XFCE. I suspect (but have not tried) that you can apply many of the same tweaks documented for XFCE to enable battery monitoring, brightness and volume control
  • Tip: If you install XFCE and set it as the default by editing your .xession file, you can have the XO “dual-boot” by replacing the line that says “exec startxfce4″ with “exec terminal”. When you reboot, the XO will start up with a command line. You can then type “sugar” to start the Sugar UI, or “startxfce4″ to start XFCE. Very handy when testing. Also, since networking sometimes doesn’t work well under XFCE (on the XO), this gives you the option to set up a connection using Sugar, then restart X by pressing Ctrl-Alt-Erase, and then entering XFCE with networking already started. I have heard that this does not work properly with some recent Joyride builds. If this happens, make sure to specify the complete execution path for the terminal, ie “exec \usr\bin\terminal” (do check this!).

It is possible to install a completely different Linux build on the OLPC. I am not terribly enthusiastic about these options, since it seems that you lose some of the device-specific drivers and features of the Fedora distro that comes with the OLPC. However, they’ve been tried and are documented, so if you would prefer something else, follow the links below.

  • Upgrade to Debian – Debian is a full-fledged Linux distribution. Upgrading to Debian is supported by the olpc-update utility.
  • Install Ubuntu – Ubuntu is a very popular Linux distribution. Installing it on the OLPC is somewhat more complicated than Debian, but leaves you with a very nice working environment.

Working tools

There are a number of programing tools and development environments that I use for my projects. Two important ones are the Arduino IDE for programming microcontrollers, and the Processing environment for lightweight Java development. It is possible to run Arduino on the OLPC XO – since it is very similar to Processing, this should also be possible.

  • Install Arduino on OLPC – Arduino is a development environment for AVR based microcontrollers. The environment is written in Java, but the Arduino programming language is C.
  • Install Processing on OLPC – Processing is a simplified, Java-based, programming environment for artists and educators. If you have installed Java and an alternative window manager like XFCE, it runs fine on the OLPC!
  • Install Java on the OLPC – both Arduino and Processing IDEs are made in Java. Note that Java 6 does not work well on the OLPC. Install version 5 instead. Also, the OLPC’s Browse activity doesn’t work well with Java, use the Opera browser instead. Java works well enough on the OLPC to run ambitious projects smoothly!

Leave a Reply

You must be logged in to post a comment.