Upgrading firmware

From OLPC
Revision as of 08:48, 7 December 2011 by Sj (talk | contribs) (Summary)
Jump to: navigation, search
  This page is monitored by the OLPC team.
  For the general public

This page describes how to upgrade only the firmware on a laptop. You should only need to do this if a problem in the firmware affects you.

Upgrading to a new release

If you upgrade to a new release, your firmware will be updated automatically.

However some older firmware (prior to 8.2 / q2e18) may need to be upgraded separately before the latest build can be installed.

The latest stable release is:

version release date
13.2.11 2020-01-29
 

Which Version?

We recommend the latest firmware version, unless you have a specific need for an older version.

Only certain firmware versions are available for secured laptops. The following table has links to the latest signed firmware version:

model version release date
XO-1 Q2E41 bootfw.zip 2009-04-27
XO-1.5 Q3A62 bootfw.zip 2010-12-17

We will refer back to these download links.

Upgrading using a USB drive

Summary

You will need a USB drive, an Internet connection, a battery and external power for your XO, and 10 minutes. Here is the quick overview:

  1. Download the bootfw.zip file for the firmware version you want, and save it into a boot folder on your USB drive.
    The file should be at /boot/bootfw.zip
  2. Make sure your XO is powered off, with battery in, and plugged into a wall outlet. The battery indicator should be on.
  3. Insert the USB drive into the XO, and hold down the X gamepad key while powering on the XO.
  4. Wait 1 minute. Update messages will display on the screen. The XO should automatically restart when finished, or indicate that it is done.

If you need more help, details for each step follow:

Details: Prepare USB drive

Using the computer that is connected to the internet, download the bootfw.zip file linked above, and put it in a boot folder of the USB drive.
The file path should be

/boot/bootfw.zip

Never done that before, or want to check your steps? See below for each popular operating system.

Using Microsoft Windows

Windows
  • insert the USB drive,
  • create a folder on the USB drive called boot,
  • download the bootfw.zip file to the boot folder on the USB drive, (see screenshot for how it should look),
  • eject the USB drive, and
  • go to the Upgrade section on this page.

Mac OS X - Safari

Mac OS
  • insert the USB drive,
  • switch tasks to Finder, display the USB drive, notice the name of the USB drive,
  • create a folder boot on the USB drive,
  • control-click on the bootfw.zip download link above, select Download Linked File As ..., and a Save As dialog will appear,
  • change Where to the name of the USB drive (usually Untitled), then click on the boot folder, then click on Save. The dialog will go away,
  • switch tasks to Finder, display the USB drive, (see screenshot for how it should look),
  • eject the USB drive, and
  • go to the Upgrade section on this page.

Linux - GNOME and Firefox

  • insert the USB drive,
  • create a boot folder on the USB drive,
  • click on the bootfw.zip download link above, and a dialog window will appear asking you what you want done with the download,
  • save the download to the USB drive in the boot folder,
  • close the Downloads window,
  • eject the USB drive, and
  • go to the Upgrade section just below.


Details: Upgrading

Once you have prepared the USB drive above, you must:

  • make sure the XO battery is in place and locked,
  • make sure the XO power cord and adapter are plugged in, the battery indicator must be on,
  • insert the USB drive into the XO,
  • hold down the X game key, and
  • turn on the XO.

Watch for a couple minutes. The upgrade process will begin, with several messages displayed, then the XO will automatically restart, once or twice. Wait for the XO to finish restarting, then:

  • remove the USB drive.

Test to confirm that the XO now works normally.

Using only your XO

How to upgrade firmware using only an XO and a network connection:

  • connect to a wireless or wired network,
  • open the Terminal activity Activity-terminal.svg or a console,
  • type these commands, pressing the enter Key enter.jpg key after each line, changing VERSION to the latest for the laptop model, and carefully noting the spaces:
 su -
 cd /versions/boot/current/boot/
 mv bootfw.zip bootfw.zip.orig
 wget http://dev.laptop.org/pub/firmware/VERSION/bootfw.zip
 reboot
  • (hold down the X game key button if the laptop is unsecured, or if you are not sure)
  • wait for the XO to reboot twice automatically.

The XO will only upgrade the firmware if it finds the installed version is earlier than what is in bootfw.zip.

Troubleshooting

If a USB drive seems to be ignored by the XO:

  • try again with the X game key held down when you turn on the XO, (only affects XOs with developer key installed or security disabled),
  • check that the USB drive meets these conditions:
    • it has a boot folder,
    • there is a file bootfw.zip in the boot folder (in other words, don't unzip the file yourself, the XO will do it), and
    • the partition type of the USB drive is "DOS MBR" rather than "GPT".
  • if you are not sure about the partition type, and all else fails, try using a different USB drive, or
  • check the firmware version; the USB drive will be ignored if the firmware version on the XO is equal to or later than what is on the USB drive.

How it Works

The firmware on the XO runs when the power is turned on. It plays a startup sound. If the laptop is secured, or if the X game key is held down, it looks for boot/bootfw.zip on all available storage devices; internal storage, SD card, and USB drives. If a bootfw.zip is found, the firmware checks to see if the cryptographic signature of the file matches the OLPC keys, and if the version is later than itself. If both checks pass, the firmware checks for external power and a reasonably charged battery. If these are present, then the firmware updates itself from the file, writing to the internal SPI flash chip. Then it reboots, thus running the new firmware version.