Update paths

From OLPC
Revision as of 22:51, 26 November 2008 by Skierpage (talk | contribs) (obsolete template also points to Release notes/8.2.0)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
542-stopicon.png This page has a more up-to-date location: Upgrading the XO, or 8.2.0 Release notes for instructions for upgrading specifically to release 8.2.0
Merge-arrows.gif
It has been suggested that this article or section be merged with Upgrading the XO. (Discuss)


This is on how to update your laptop's operating system; it may cause third party applications to become uninstalled (such as Opera and Adobe Flash). However, applications installed as Activities should continue to work. If you simply want to update the XO's firmware, see Upgrading firmware.

Users

Update paths for users:

  • With internet connectivity (if your internet works) - Keeps changes made to your laptop
  • Without internet connectivity - Wipes all changes to your laptop

It would be a good idea to plug in your laptop, so as to minimize hassle if your laptop loses power. However, it is not required, and the update process can safely be interrupted and redone later.

With Internet Connectivity (faster update)


  english HowTo [ID# 182834]  +/-  

olpc-update is a command-line program to update your system software. It preserves your files (journal) and activities you have installed.

olpc-update can download the new version from the internet, or from a file on a USB drive. See Updating the XO for other update scenarios.

The old software version is erased the first time the new version is booted, but this can be prevented.

(Certain really old builds, like 656, can't olpc-update to recent builds. Check the release notes of a recent build to find out if olpc-update can be used from a really old build. If not, then you must install the recent build afresh.)

What version do I have now?

To tell what version of the system software you have, follow How to check the OS and firmware versions.

Disk space requirements

Due to its fail-safe design, olpc-update must store all of the changed files in the release that you are updating to, alongside the existing release that you are running, for a short time. olpc-update cannot complete if there is not enough disk space available.

If upgrading between minor releases within the same release series or between development releases in the same development stream, the space required will be low. However, if upgrading from one major release to another (e.g. 10.1.3 to 11.2.0), you will probably need more than 300mb of disk space available (even though the upgrade process will finish with approximately the same amount of disk space available).

How to upgrade

See the Releases page for the releases that are available. The release notes for each recent release will explain exactly how to use olpc-update to update to that particular version. Be sure to read the release notes before starting the update.

The instructions below are generic.

Simple online update

Note: You should always back up important files; e.g., to a USB drive or to a school server before updating, just in case.

</noinclude>:Main article: olpc-update

olpc-update is designed to work with even the worst internet connections, and will do no harm if it is interrupted during download. It will resume from where it left off, without having to download what it has already downloaded. To manually upgrade your machine when a new version is released:

  1. Plug the XO into an electrical outlet
  2. Connect to the internet. If you are upgrading because you have a WPA hotspot at home, you might want to go to a Public Hotspot to connect to the internet for an online upgrade, such as a T-Mobile hotspot or a local libary.
    Firewall note: olpc-upgrade requires outgoing TCP PORT:873 to be unfiltered by the hotspot's firewall. In otherwords if the laptop has functional-access to the internet but olpc-upgrade returns the message "I don't think you're connected to the internet." check the hotspot's firewall is not blocking the outgoing TCP Port 873.
  3. Start the Terminal Activity Activity-terminal.svg (or if you cannot do so, open a console) and type the following (press the Enter key after it):

sudo olpc-update build-identifier The build-identifier is normally identified on the release notes of the release you are upgrading to. Historically, build identifiers were simple numbers (e.g. 802), for newer builds prefixes are used to separate between the different laptop models (e.g. 10.1.3_xo1.5-860). If you get an error saying "command not found", type "su -", press enter and then "olpc-update build-identifier" and press enter. For example: su - /usr/sbin/olpc-update 802 If olpc-update successfully connects to the update server, some messages should display Downloading contents of build build-identifier Updating to version hash xxxx Making clean /versions/updates/... Trying irsync_pristine update from rsync://updates.laptop.org/build-build-number - Cleaning tree. - Fetching contents. - Performing incremental rsync. Verifying update. Installing update in /versions/{pristine,run}/xxxx Where xxxx is a version-specific number. The olpc-update program uses several methods to update. If "irsync_pristine" fails, it will try "irsync dirty update", and then try "Performing full rsync". As long as the last method completes without errors, you're fine. This process may take more than thirty minutes. When the process is complete, you need to reboot, unless you supplied the -r option to olpc-update. If the new build includes newer firmware, then your XO will reboot twice. When the XO restarts the update will be complete. After updating, you should run the Sugar activity updater from the control panel. If not, you may find that various activities are not working.

Simple offline update

Unless you are running a very old release, you can also download the new release data onto a USB disk from an internet-connected computer, and then use olpc-update on an XO to perform the update, without requiring any internet connection.

Prepare a USB drive

Your USB drive needs to be writable from the computer on which you'll download the files, and readable from a running XO (as /media/YourDriveName).

  • (Note that /media changes to /run/media/olpc for Fedora 17 based builds used in 12.1.0 and later).

Download .usb and .toc files onto USB

Insert a USB drive into a computer connected to the Internet.

Go to the download.laptop.org site to fetch the latest XO-1 release or the latest XO-1.5 release. You need to download two files from the build's directory to the top directory of your USB drive: osNNN.usb and osNNN.toc, where NNN is the numeric part of the build you are updating to. For example, if you are updating to build 711, the files would be named os711.usb and os711.toc; if you are updating to build joyride-1452, the files would be named os1452.usb and os1452.toc. Right-click (Ctrl-click for Mac) on each of the two names and choose "Save Target As" ("Save Link As" for Firefox). Save both files to the USB drive. Do not open the files.

USB update

  1. Plug the XO into an electrical outlet
  2. Insert your USB drive with the .toc and .usb files on it into your XO.
  3. Start the Terminal activity (or if you cannot do so, open the console), and enter:
sudo /usr/sbin/olpc-update --usb

If you get "command not found" errors, enter:

su -
/usr/sbin/olpc-update --usb

When olpc-update is finished, reboot to start using your new build.

Retention of previous versions

As of release 11.2.0, olpc-update only keeps 1 software version available by default (i.e. the old version is deleted after booting into the new version for the first time).

Older releases maintained two versions ("primary" and "alternate"), so that you could switch between the two (accepting any strange side effects caused by a software downgrade, not really supported by OLPC or the software that it ships).

Avoiding purge of previous versions

You can avoid olpc-update from deleting old versions in any situation by marking them as sticky, e.g. for build 802:

touch /versions/sticky/802

Restoring a previous OS

If you are using an old release where 2 versions are maintained, or if you are running a modern release and have requested olpc-update to not purge one of the versions, you can switch between the 2 versions as follows:

  1. shutdown the XO
  2. power-on while holding down the ' O ' gamepad key.
  3. release the key when you're instructed to do so
  4. check the OS version

Purging a previous OS

If you have marked a version as sticky and now wish to remove it, or if you are running an old release where the old version is maintained and you wish to free up the disk space occupied by it, you can follow the example Terminal session log shown below.

Identify what is present

List the available builds on the system.

# ls /versions/pristine/*/boot/olpc_build
/versions/pristine/802/boot/olpc_build
/versions/pristine/ed3fcf7128610f1f6fe07890f2315742/boot/olpc_build
# cat /versions/pristine/*/boot/olpc_build
802
851

This shows there are builds 802 and 851 available on the system.

Identify what is running

# cat /boot/olpc_build
851

This shows that the build currently running is build 851. Do not purge a build if it is the one running now — things break badly.

Measure free space before purge

# df /
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/mtdblock0         1048576    708572    340004  68% /

This shows roughly 340004 KB available.

Purge the unused build

# rm -rf /versions/pristine/802 /versions/contents/802 /versions/run/802

Removes all the files of the unused build. Takes a few seconds.

Measure free space after purge

# df /
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/mtdblock0         1048576    495944    552632  48% /

This shows roughly 552632 KB is available, a significant increase.

Verify builds present

# ls /versions/pristine/*/boot/olpc_build
/versions/pristine/ed3fcf7128610f1f6fe07890f2315742/boot/olpc_build
# cat /versions/pristine/*/boot/olpc_build
851

This shows only the one build is now present.

There is no need to reboot or restart after purging the alternate build.

More information

The olpc-update script works by transferring only the differences between builds from a USB drive or across the internet link from an updates server. This makes updating easier, mostly quicker, and almost always with less data transfer.

As an example of the data efficiency gain,

  • A full reinstallation from OS build 602 to 603 would normally take about 279Mb of download data, whereas olpc-update takes 16Mb of download data,
  • A full reinstallation from OS build 603 to 608 would normally take 262Mb of download data, whereas olpc-update takes 6.5Mb of download data,
  • An olpc-update from OS build 602 to 625 takes 33Mb of download data.

The time efficiency gain is less easy to characterize. It depends on the speed of the internet link, the speed of the updates server, and whether the update was able to use its server-friendly efficiency mode. An olpc-update from 602 to 603 took under 17 minutes.

The current updates server is updates.laptop.org.

Advanced usage

Update using another laptop

Q: How can I re-use the bits for multiple laptops, using a laptop?

A: Imagine that you have two laptops, one is called SOURCE and the other TARGET.

On the SOURCE laptop, add an rsyncd.conf file to /etc:

[contents]
        path = /versions/contents
        uid = root
        gid = root

[pristine]
        path = /versions/pristine
        uid = root
        gid = root

Then start rsync --daemon there.

On the TARGET laptop, use rsync to check access and identify the build that is available:

SOURCE=10.0.0.1
rsync rsync://${SOURCE}/contents

Where 10.0.0.1 is the IP address or domain name of the SOURCE laptop.

Take note of the build identifier. It will be a hexadecimal hash, 64 characters long.

On the TARGET laptop, create an appropriate 'hints' file:

export SOURCE=10.0.0.1
export BUILD=dd44...597f
python2.5
>>> import os, bitfrost.util.json as json
>>> hints = ('%(BUILD)s' % os.environ, 'normal', [('rsync','rsync://%(SOURCE)s/pristine/%(BUILD)s' % os.environ)])
>>> open('hints.json','w').write(json.write(hints))
>>> exit()

Now on the TARGET laptop, use olpc-update to upgrade or downgrade to that build:

sudo olpc-update --hints hints.json

Several laptops can all be updated in the same way from one source with the same 'hints.json' file.


Setting up a local updates server

The school server integrates with olpc-update. The XS-rsync component accepts software images and makes them available to olpc-update clients.

A dated, alternative solution is described at Upgrade Server.

For Developers

Original specification: XO updater

Source:

Maintainer: User:DanielDrake

olpc-update uses olpc-contents for most of the heavy lifting.

Off-line (big download)


Main article: Secure upgrade

0. Before performing the upgrade, please note that EVERYTHING previously created will be deleted!

1. Read release notes for your target release!

Activities must be installed separately.

2. You need a formatted USB flash drive that is larger than 325 MB, and it is better that you format it before copying any files over.

3. To install build 767 (Release 8.2.0) download the following two files from the Internet and put them on the USB flash drive:

http://download.laptop.org/xo-1/os/official/767/jffs2/fs.zip

http://download.laptop.org/xo-1/os/official/767/jffs2/os767.img

  • To download those files, plug the USB flash drive into another computer that is connected to the Internet. Right-click (Ctrl-click for Mac) on each of the above two URLs in the browser and choose "Save Target As" ("Save Link As" for Firefox). Save both files to the USB flash drive. Eject/Remove the USB flash drive, and unplug it.

The first file is about 154Kb, and the second file is quite large (about 233 Mb), which might take a while to download.

After you have finished this step, there should be two files on the USB flash drive, the fs.zip file, and the img file.

4. Make sure the XO laptop is OFF. Make sure that the battery is installed, and that you have external (AC) power plugged in as well. Plug in the USB flash drive, and do not unplug it until instructed.

5. With the USB flash drive inserted, power up the laptop while holding down ALL four game buttons on the right side of screen (the four buttons above the power button, and they are marked with O, V, X, and square). Please be sure to press all of them firmly; use two thumbs if that helps.

6. When the screen says 'release the game key to continue', release all four buttons.

7. You will see arrays of colored grids running on the screen. We are now re-writing the laptop with the new operating system.

8. Once done with re-writing, the laptop will reboot itself.

9. Next, the laptop may update the firmware, if necessary, and reboot itself. It will insist on being plugged in and having a battery present if it needs to update the firmware. (You don't have to do anything; just watch.)

10. After you're done with the update, the laptop will boot to the prompt for your preferred user name. You can now remove the USB flash drive, and it is no longer needed.

Install activities

No activities are included in some versions of the OLPC software. Follow these instructions to install basic activities on release 8.1.0, 8.1.1 and 8.2.0.

  1. Power off the XO
  2. Remove the "fs.zip" file from your flash drive.
  3. Download the activity pack and unzip it to the flash drive (NOT a subdirectory).
  4. Insert the USB flash drive and boot the XO. It will display text on a black screen as the activities are installed, after which it will power off.
  5. Remove the USB flash drive.

Verify your update

12. Go to the Terminal activity (click on the taskbar icon Activity-terminal.svg)

  • The screen should say something like [olpc@xo-05-2D-2F ~]$
  • The numbers don't matter, but be sure that you type things after the $ sign.

14. Type the following to check which version you XO is running:

  cat /etc/issue

15. Press the Enter key

16. If the screen says something that begins with

  OLPC build 767

then we are one step closer to finishing the upgrade process!

17. Go to Home view and mouse over the XO guy in the center.

18. Select the "Shutdown" option to power off the machine. Now you should be able to power it up as usual, with build 767.


Developers

Determine the state of your laptop

This is about determining which way to re-flash a laptop, which deletes all data on the laptop. To upgrade without re-flashing, use olpc-update.

Action: Boot your laptop

If...

  1. Your laptop gives you the option to get to the ok prompt by pressing escape
  2. Your laptop shows pretty boot, meaning you have no option to get to the ok prompt, and you see an XO with dots going around it
  3. Your laptop shows an XO with a red blinking usb key icon below it, and then a blinking wi-fi icon.