[Server-devel] Upgrade many machines

James Cameron quozl at laptop.org
Tue Dec 31 02:06:37 EST 2013

Summary: use a few USB drives or NANDblaster, not the server.

On Tue, Dec 31, 2013 at 01:18:16AM -0500, Adam Gordon wrote:
> Is there a good way to upgrade allot of XO's (1.5 + 1.75) from a
> custom unsigned 12.1 to an unsigned custom 13.2 using the server?

No, not really.  Using the server is very slow, because of the
bandwidth limitations.

The transfer speed from the media to the internal storage is the
critical factor.  The fastest is USB drive (~5min).  The next fastest
is NANDblaster (~25min).  The slowest is a server and a wireless
access point (~45min).

Consider the simplest child driven upgrade trigger: the four game key
power up method.  It searches for signed builds on USB drive, SD card,
a school server over wireless, and then NANDblaster.

You asked about using the server, so that suggests the second last
step.  But this step is broken in current firmware (XO-1.5, XO-1.75),
due to #12740, and so you would have to upgrade the firmware first,
which would bring you to using a USB drive anyway.

Next, your builds are unsigned.  Unsigned builds don't benefit from
the four game key method used by the signed builds, when using USB
drives.  They do work with NANDblaster.

If the number of laptops is large enough, injecting deployment keys
into them, and signing the build, will restore the use of the four
game key method when using USB.

It is not necessary to secure the laptops; the four game key method
enables the security mode temporarily on unsecured laptops.

This again brings you to having to use USB drives to inject deployment
keys, so you may as well use the USB drive for the build as well.

The next best options are either a collection of USB drives or
the NANDblaster feature, depending on what you have most of; USB
drives or XOs.

Unsecured laptops will boot from a USB drive.  You can use that
feature to craft a boot script for an unsigned build [3].  The boot
script can pick a build file that matches the hardware.  The Tiny Core
Linux boot script has an example where it uses bundle-suffix$ [4].

NANDblaster is the simplest overall solution, but it is way slower
than USB drives, and you have to do the XO-1.5's separate from the
XO-1.75's.  Separate by time or large enough distance.  See [1] and

Eventually, there's the hybrid method being used by HaitiOS, which
is a four game key method trigger to load the signed build, followed
by a Tiny Core Linux boot script to customise it.  Since you are using
an unsigned build, this method is not applicable.

CC: devel@


1.  http://wiki.laptop.org/go/Nandblaster_for_XO-1.5

2.  http://wiki.laptop.org/go/Nandblaster_for_XO-1.75

3.  http://wiki.laptop.org/go/Firmware/Storage#How_to_automatically_install_an_unsigned_build

4.  http://dev.laptop.org/~quozl/mktinycorexo/mktinycorexo

James Cameron

More information about the Devel mailing list