OLPC Notes


These are my own personal notes on using/updating/etc the OLPC. The information came from the links listed below, primarily the OLPC News Forum.

Use it at your own risk!


TOC

  1. Links
  2. General Usage
    1. Miscellaneous
    2. Airplane Mode
    3. Find biggest files
    4. Kill a sugar activity
    5. Battery alias
    6. Current OS version
    7. Current firmware version
  3. Reference
    1. Keyboard Shortcuts
    2. Browser Handheld Mode: Button Mapping
  4. Setup
    1. T-Mobile hotspot
    2. Set Time
    3. Change Chat server
    4. Install Flash
    5. MP3 Support
    6. Mplayer
    7. yum installs
    8. Personal list of yum installs approved/failed
    9. Firefox recommended settings
    10. Feh
    11. XFCE Install
      1. Install Packages
      2. Replace NetworkManager with wifi-radar
      3. Default to xfce at boot
      4. Add battery monitor
      5. Add screen brightness and volume controls
      6. Add screen rotate
      7. Run Sugar activies
  5. Hacks & Upgrades
    1. Sugarize an X terminal program
    2. Access the core terminal process
    3. Reorder activities
    4. Abiword the Write activity
    5. Disable hot frames
    6. Set right-click to paste in Terminal
    7. Set buddy icon
    8. Hack: create multiple profiles
    9. Manually mount/unmount an SD
  6. Bug Fixes
    1. Workaround for a stuck alt key
    2. Workarounds for "Filesystem loop detected" error on Find
    3. If wiki.org can't be accessed from browser
    4. Patch Chat
  7. Reinstall
    1. Simple Online Upgrade
    2. Activated Upgrade
    3. Update firmware


Links

Links

Getting started
Support Faq
Wiki
wiki: Game Activities download
wiki: Keyboard layouts
wiki: Developer keys
OLPC News Forum
vi editor commands
thepete's XO page
xfce desktop themes


General Usage


Miscellaneous

Screen shot: Alt-1

User data: /home/olpc/.sugar/default/datastore/store

sugar help: sugar-control-panel -h

disk space: df -h

reset XO colors: sugar-control-panel -s color [color] [shade] [color] [shade]

key shortcuts are defined in /usr/share/sugar/shell/view/keyhandler.py

The XO only looks for networks on channels 1, 6 & 11.

Software updates should be automatic. Instructions for manual updates are here.


Airplane Mode

(source and source)

Disable wireless

rmmod usb8xxx

Enable wireless

modprobe usb8xxx

OR

Go to the Terminal Activity and type:

sugar-control-panel -s radio off
sugar-control-panel -s radio on

OR (only method that persists after reboot)

1. Start Terminal
2. su
3. cd /lib/firmware
4. mv usb8388.bin flying
5. reboot

To exit Airplane Mode, follow the same steps except renaming the file back to its original name in step 4:

4. mv flying usb8388.bin


Find biggest files

(source)

du -aSx | sort -n | tail -n 100


Kill a sugar activity

(source)

From the terminal type:

ps -ef | grep sugar-activity

to get a list of the sugar activities currently running. The first column is the process owner, the second column is the process number. You will need to be logged in as the process owner. (olpc is default, su root for root.) If the process number is 1471, then the command to enter to kill that process is:

kill 1471


Battery alias

(source)

alias battery='echo -n "Battery %= " ; cat /sys/devices/platform/olpc-battery.0/power_supply/olpc-battery/capacity ; echo -n "Battery Status: " ; cat /sys/devices/platform/olpc-battery.0/power_supply/olpc-battery/status'


Current OS version

To find the software version, press ctrl + alt + [Friends key f2]. You should see something like OLPC Build 650 on a black screen. To get back to the desktop, press ctrl + alt + [Home key f3]

OR

cat /etc/issue


Current firmware version

su
cat /ofw/openprom/model


Reference


Keyboard Shortcuts

(source)

The Delete key is the same as Fn-Erase.

KeystrokeDescription
Ctrl-Tab (Try Alt-Tab) Cycle forward through running activities
Shift-Ctrl-TabCycle backward through running activities
Ctrl-TildeCycle forward through running instances of the current activity
Shift-Ctrl-Tilde Cycle backward through running instances of the current activity
Ctrl-cCopy to clipboard
Ctrl-vPaste from clipboard
Ctrl-x Cut (and copy to clipboard)
Ctrl-q Quit activity
Ctrl-EscQuit activity
Alt-EnterToggle full-screen mode
Alt-Space Toggle tray visibility (works in Browse but not in Record)
Ctrl-u View source in Browse
Fn-SpaceView source (system wide, although not enabled in all applications yet)
Ctrl-Alt-EraseRestart Sugar
Alt-1 Screen capture saved to Journal
Ctrl-Alt-F1 (F1 is the Neighborhood key) Console 1
Ctrl-Alt-F2 (F2 is the Friends key) Console 2
Ctrl-Alt-F3 (F3 is the Home key) X Windows
Esc-Frame-Right Arrow-Fn (the four corners keys on the keyboard) Recalibrate touchpad (AKA Four finger salute); Fn should be pressed last.


Browser Handheld Mode: Button Mapping

(source)
As of build 650, scrolling buttons work, but the sharing links one does not. The select link does not work.

ButtonPressHold
LEFTfocus previous linkfocus previous link
RIGHTfocus next linkfocus next link
UPpage upscroll up
DOWNpage downscroll down
NORTHshare linkshared link overlay
SOUTH
panning overlay
EASTselect linkTOC overlay
WESTbacknavigation overlay

* LEFT, RIGHT, UP, DOWN are the keypad to the left hand side of the screen.
* NORTH, SOUTH, EAST, WEST are the buttons on the right hand side of the screen.


Setup


T-Mobile hotspot

(source)

Go to link1 or link2, enter the 7000*** number from the side of the box or Dr. Negroponte's email.

To get it to work, a change may be needed on the back end:

Edit /usr/lib/xulrunner-1.9a9pre/greprefs/security-prefs.js and change
pref("security.OSCP.enabled", 1);
to
pref("security.OSCP.enabled", 0);


Set Time

(source)

Note: ntpdate is not installed by default.

Start a terminal session
su root
ntpdate time.nist.gov
hwclock --systohc (syncs the hardware clock to the software clock)

OR (source)

hwclock --show
hwclock --set --date "mm/dd/yy hh:mm:ss"


Change Chat server

(source)

sugar-control-panel -g jabber
sugar-control-panel -s jabber xochat.org

reboot Sugar with ctrl-alt-erase

(original server: ship2.jabber.laptop.org)


Install Flash

(source)

su
rpm -vi http://fpdownload.macromedia.com/get/flashplayer/current/flash-plugin-9.0.48.0-release.i386.rpm

Verify that the flashplayer works, then:

su
rm /root/oldflashplugins.tar.gz


MP3 Support

(source)

su root
Copy the libgstflump3dec.so file into:
/usr/lib/gstreamer-0.10

Once it is copied over, verify that gstreamer recognises the plugin by doing a 'gst-inspect-0.10 flump3dec'.

Unless this command reports back 'No such element or plugin 'flump3dec' the plugin should be successfully installed and you should have access to playing back MP3 files using GStreamer applications.


Mplayer

(source)

Documentation Man files

To install:
su
cd /bin
wget http://www.orderedpixels.com/xo/mplayer/mplayer.tar.bz2
tar vxf mplayer.tar.bz2

Setup subtitle support:
mkdir -p ~/.mplayer
ln -s /usr/share/fonts/dejavu-lgc/DejaVuLGCSans.ttf ~/.mplayer/subfont.ttf

To run:
mplayer -fs /media/[medianame]/[filename]

In ebook mode, < rewinds (10 second increments?); > fastforwards; {square} mutes; {check} pauses; X quits


yum installs

(original source)

Log in as root.

yum install [package name]

yum upgrade [package name]

yum search [keyword]

To clean up file left over from searches and installs: yum clean all

Before firefox can be installed, /etc/yum.repos.d/olpc-koji-ship2.repo must be modified to remove firefox from the exclude= line. (source)

Note: I have not tested the following steps!

Because of memory constraints you may want to drop into run mode 3 which stops X. To do this log in as root either in the developer console or one of the virtual terminals and type:

init 3

X should exit and you should find yourself either at a login prompt or in the same virtual terminal. Reboot to restart, or enter init 5.


Personal list of yum installs approved/failed

Approved: (reinstall!)
mc : midnight commander faq
lucidlife.i386 : A Conway's Life simulator
firefox : browser
system-config-services: services manager
evince: pdf reader
qalculate-gtk: calculator

Failed:
berusky.i386 : Berusky, 2D logic game
emelfm2.i386 - file manager
pipepanic.i386 : A pipe connecting game
filezilla : ftp package
inkscape : svg creator
ksudoku
xpdf: pdf reader
centericq: icq client
gcalctool: calculator (buggy)
kdirstat: drive status
units: units converter

preinstalled, can be removed:
lincity-ng
totem
totem-plparser
etoys


Firefox recommended settings

Install a high-contrast theme, like HiVisGnome

Install Cache status to manually control cache bloat.

Go to about:config to make these changes:

browser.display.use_system_colors = false

browser.cache.memory.capacity = 5000

network.prefetch-next = false

browser.tabs.loadDivertedInBackground = true


Feh

(source)

Note: I never tried this, it was just something I noted for future reference. Apparently, it isn't working. I suggest checking the thread that this information came from, to see if someone has determined what the problem is.

To turn your XO into a photo frame you need to down load and install a program called feh.

Start Terminal.

su
yum install feh
exit

To use feh:
Put your jpg files on a SD card or a flash drive and plug it into the XO.
Go to the sugar terminal, use the terminal icon.
Type the following at the sugar terminal:

feh -F -D 5 --scale-down /media/SD/ [This assumes your SD card is named SD. Use the name of your SD card or your USB drive in place of SD]

-F plays full screen, you need this or small pictures will be copied several times on the screen.

-D plays the slide show with the number, in this case 5, being the number of seconds to wait between slides.

Q will quit [it may take a picture or two to quit. CTRL+q will also quit]


XFCE Install

source and source

Install Packages

yum install xfdesktop xfce-utils xfce-mcs-plugins xfce4-session
yum install orage xfce4-mixer system-config-date xfce4-genmon-plugin xfce4-systemload-plugin
yum install system-config-services
yum install wifi-radar

Replace NetworkManager with wifi-radar

Create and edit the wifi-radar.conf file:
wifi-rader
vi /etc/wifi-radar/wifi-radar.conf
Change:
interface = eth1
To:
interface = eth0

/etc/init.d/NetworkManager stop
/sbin/chkconfig NetworkManager off
wifi-radar -d

Default to xfce at boot

cp /home/olpc/.xsession-example /home/olpc/.xsession
vi /home/olpc/.xsession
Add:
exec startxfce4

Add battery monitor

vi /home/olpc/battery.sh
echo `hal-device | grep charge_level.percentage | awk '{print $3}'`%


Right-click on a blank spot on an Xfce toolbar, chose Add Item, select Generic Monitor, click Add.
Right-click the new Generic Monitor item, select Properties, and apply the following settings:

Add screen brightness and volume controls

vi /usr/bin/adjustbright
#!/bin/bash
# The first argument is whether to increase the brightness (+) or 
# decrease the brightness (-).
# The second argument is optional and indicates the step size when
# increasing or decreasing the brightness. The default is 1.

if [ $# -eq 0 ]; then exit 1; fi

bright_file="/sys/class/backlight/dcon-bl/brightness"
mbright_file="/sys/class/backlight/dcon-bl/max_brightness"

while read line; do
brightness=$line
done < <(cat "$bright_file")

while read line; do
max_brightness=$line
done < <(cat "$mbright_file")

step=1
if [ $# -gt 1 ]; then
 step=$2
fi

declare -i brightness
if [ $1 = "0" ]; then
  echo 0 > /sys/class/backlight/dcon-bl/brightness
elif [ $1 = "1" ]; then
  echo $max_brightness > /sys/class/backlight/dcon-bl/brightness
elif [ $1 = "-" ]; then
 if [ $brightness -ne 0 ]; then
  brightness=$brightness-$step;
  echo $brightness > /sys/class/backlight/dcon-bl/brightness
 fi
else
 if [ $brightness -ne $max_brightness ]; then
  brightness=$brightness+$step;
  echo $brightness > $bright_file
 fi
fi

chmod +x /usr/bin/adjustbright

/usr/sbin/visudo
Add:
olpc ALL=(root) NOPASSWD: /bin/chgrp olpc /sys/class/backlight/dcon-bl/brightness
olpc ALL=(root) NOPASSWD: /bin/chmod g+w /sys/class/backlight/dcon-bl/brightness
Comment out:
Defaults    requiretty

ctrl-d (exit root)

vi xfcestart.sh
Insert:
sudo chgrp olpc /sys/class/backlight/dcon-bl/brightness
sudo chmod g+w /sys/class/backlight/dcon-bl/brightness

From the xfce taskbar: xfcemenu > settings > autostarted applications
Add new application.
/home/olpc/xfcestart.sh

From the xfce taskbar: xfcemenu > settings > windows manager > keyboard
Add new 'theme'.
Remove all F9-F12 and ctrl F9-F12 shortcuts.
Close.

From the xfce taskbar: xfcemenu > settings > keyboard preferences > shortcuts
Add new 'theme'.
Remove all F9-F12 and ctrl F9-F12 shortcuts.
Add new shortcuts:
adjustbright 0			ctrl-F9
adjustbright 1			ctrl-F10
adjustbright - 2			F9
adjustbright + 2			F10
amixer -c 0 set Master,0 0	ctrl-F11
amixer -c 0 set Master,0 2dB-	F11
amixer -c 0 set Master,0 2dB+	F12
amixer -c 0 set Master,0 31	ctrl-F12

Add screen rotate

Create script xrandr_rotate.sh
current=`xrandr | grep connected | awk '{print $4}'`
if [ $current == "(normal" ]; then val=1
  elif [ $current == "left" ]; then val=2
  elif [ $current == "inverted" ]; then val=3
  elif [ $current == "right" ]; then val=0
fi

xrandr -o $val

Make executable:
chmod 755 xrandr_rotate.sh

Create script xrandr_reverse.sh
current=`xrandr | grep connected | awk '{print $4}'`
if [ $current == "(normal" ]; then val=3
  elif [ $current == "left" ]; then val=0
  elif [ $current == "inverted" ]; then val=1
  elif [ $current == "right" ]; then val=2
fi
xrandr -o $val
Make executable:
chmod 755 xrandr_reverse.sh

Map xrandr_rotate.sh and xrandr_reverse.sh to the desired keys.

Run Sugar activies

source
#!/bin/bash
#
# readit
#
# Runs the Read Activity from the command line.  A specified URI
# is used.  The Read Activity is run in the background. 
#
# Usage:
# readit [URI]
#
# Example:
# readit "file:///usr/share/activities/worldfactbook-maps/asia.pdf"
#
# This script is basically a shortcut for the following command:
# SUGAR_BUNDLE_PATH=/usr/share/activities/Read.activity sugar-activity readactivity.ReadActivity -b org.laptop.sugar.ReadActivity -a fakeactivityid -u [uri] &

SUGAR_BUNDLE_PATH=/usr/share/activities/Read.activity
_ACTIVITY=readactivity.ReadActivity
_BUNDLE=org.laptop.sugar.ReadActivity
_ACTIVITY_ID=fakeactivityid

sugar-activity ${_ACTIVITY} -b ${_BUNDLE} -a ${_ACTIVITY_ID} -u $@ &
Example of running the script:
$ chmod 755 readit
$ ./readit "file:///usr/share/activities/worldfactbook-maps/asia.pdf"


Hacks & Upgrades


Sugarize an X terminal program

(source for libsurgarize.so, source for one of the scripts, source, source and CatMoran)

I know that this works for firefox, I can't vouch for any other program. I know that it does not work for mc. It also doesn't work for roto's current mplayer configuration, because only programs that use the same command every time (ie, no input file name, in this case) can be set up to run this way.

To setup (one time):

Start a Terminal activity. Enter the following commands. (They log you in as root, gets a copy of Albert Cahalan's compiled libsugarize file, and gets the script I created.)

su
wget http://www.catmoran.com/olpc/libsugarize.so
chmod 755 libsugarize.so
wget http://www.catmoran.com/olpc/sug
chmod 755 sug

Optional, if you want to use the icons I've already 'created':
wget http://www.catmoran.com/olpc/plain.svg
wget http://www.catmoran.com/olpc/ff.svg
wget http://www.catmoran.com/olpc/l.svg


To run:

Locate an icon you want to use/reuse.
You can copy any .svg file located in /usr/share/activities/*.activity/activity/*.svg
Or you can use one of the icons I've created. (wget commands above.) plain.svg is a plain circle, ff.svg is a circle with FF (for firefox) inside, l.svg is a circle with L inside. ff.svg and l.svg can easily be edited for any two or one character(s). Open the file in any text editor. Each letter is in plain text just before the </tspan> tags, replace them and save the file.

Enter the following commands, to log in as root and execute the sug script.

su
./sug

> You'll be prompted for an activity name. Enter a short, descriptive name with no spaces or punctuation, such as BibleTime or Firefox.
> You'll be prompted for an icon file to copy into the new task. You can enter the full path and filename of any .svg file. If the icon is in the same directory as the sug file, you can enter just the filename.
> You'll be prompted for the command to start the program. This is the command you entered from Terminal to start the program, such as firefox.
> You'll be prompted for an organization path, such as org.mozilla If you don't know what this is, just enter org.x

(If at any of the prompts you want to quit the script, just enter nothing at the prompt.)

The script will give you a success message. Reboot sugar to see the new task in the sugar taskbar.


Access the core terminal process

To enter:

Press ctrl + alt + [Neighborhood key f1]

To exit:

Press ctrl + alt + [Home key f3]


Reorder activities

(source)

Change the order of the contents of /usr/share/sugar/data/activities.defaults

To reorder additional activities, locate them using
ls /home/olpc/.sugar/default

all of the Activities you installed have entries like:
org.laptop.SimCity
or Opera is
com.opera.OperaActivity


Abiword the Write activity

(source)

To setup:

Open Terminal activity.
su
cd /usr/share/activities/Write.activity
mv keybindings.xml keybindings.xml.orig

To Use:

Start Write activity.
Within the activity, press Ctrl-N. Write is will function as a full abiword install until you exit it.


Disable hot frames

(source)

Comment out lines 56-57 in /usr/share/sugar/shell/view/frame/eventarea.py

# invisible.connect('enter-notify-event', self._enter_notify_cb)
# invisible.connect('leave-notify-event', self._leave_notify_cb)


Set right-click to paste in Terminal

(source)

Map the the middle mouse button onto the trackpad's right button:
xmodmap -e "pointer = 1 3 2"

Restore:
xmodmap -e "pointer = default"

To make it persist between reboots: (source)

Go into root.

Created a file called .xsession in /home/olpc

Add the following to the file:

xmodmap -e "pointer = 1 3 2"


Set buddy icon

(source)

Note: unless you intend to use one of these three color combinations, avoid this section. Only certain colors in certain combinations are allowed by default, and you may break something if you set an invalid combination.

Set colors:

vi /home/olpc/.sugar/default/config
color = #ff8f00,#00ea11

strokefill#00ea11,#ff8f00
strokefill#ff8f00,#00ea11
strokefill#8bff7a,#ff8f00

Change from strike/fill to

vi /usr/share/icons/sugar/scalable/device/computer-xo.svg
path is X
circle is O


Hack: create multiple profiles

(source)
UNTESTED

For each user:

Boot up XO.
Have user select name & icon colors.
Start terminal.
su
cd /home/olpc/.sugar
mv default USERNAME
When all users are created:
Start terminal.
su
cd /etc/rc.d/rc5.d
cp S99local S99choose-user

Put the following script into S99choose-user:

#!/bin/sh
clear
echo"-------------------------------------------"
echo "Enter user profile: (USERNAME1, USERNAME2, etc)"
read name
rm -f /home/olpc/.sugar/default
ln -s /home/olpc/.sugar/$name /home/olpc/.sugar/default
echo "Profile $name is now in effect...."
echo "-----------------------------------------"


Manually mount/unmount an SD that won't mount in Journal

(by CatMoran)

Note: this only mounts the drive for Terminal activity, it will be invisible to the Journal.

Step One (Performed once per SD card, to get the data needed for steps two and three.)

To get the data needed to do this in the future, first start the OLPC with the SD removed.

Go into the Terminal activity.
Type df -h

Insert the SD card.

Type df -h again.

Locate the new Filesystem listed in the output of the second df command. Make a note of the Filesystem name (ex: /dev/mmcblk0p1) and the "Mounted on" device path (ex: /media/SD)

Step Two (Performed each time you start the OLPC and want to use the SD from the Terminal.)

Restart the OLPC.

Start the Terminal activity.
Change to root: su
Create the SD's device path: mkdir /media/SD (substitute the device path noted in step one for /media/SD.)
Mount the SD: mount /dev/mmcblk0p1 /media/SD (substitute the device path as above, and substitute the Filesystem name noted in step one for /dev/mmcblk0p1.)

The SD drive is now mounted and ready for use.

Step Three (Performed each time you shut down the OLPC after performing step two.)

Before shutting down the OLPC, unmount the SD drive.

Start the Terminal activity.
Change to root: su
Unmount the SD: umount /dev/mmcblk0p1 (substitute the Filesystem name noted in step one for /dev/mmcblk0p1.)


Bug Fixes


Workaround for a stuck alt key

(source)

Add the following to /home/olpc/.xession
# remove broken Left ALT key from modifier map
xmodmap -e "remove mod1 = Alt_L"
# disable broken Left ALT key
xmodmap -e "keycode 64 ="
# replace Left ALT with Left Hand key
xmodmap -e "keycode 133 = Alt_L"
# add the Left Hand (as Alt_L) to the modifier map
xmodmap -e "add mod1 = Alt_L"


Workarounds for "Filesystem loop detected" error on Find

(source and source)

find / -name [filename] 2>/dev/null

OR

find . -path ./versions/run -prune -o -name [filename] -print


If wiki.org can't be accessed from browser

(source)

1. Open the Browse activity.
2. In the location bar, type about:config
3. Type ipv6 in the "filter" field; this should show you a line that says something like "ipv6 disabled: false" and some other stuff.
4. Double-click on that line to change it to "disabled: true"
5. Browse away!


Patch Chat

(source)

su
cd /usr/share/activities/Chat.activity/
mv chat.py chat.py.old
wget http://dev.laptop.org/~morgan/chat.py


Reinstall


Simple Online Upgrade

(source)

0. As of build 656, all 'external' applications installed will need to be reinstalled after the upgrade. (Data should be preserved.)

1. Plug the XO into an electrical outlet.

2. Connect to the internet.

3. Open a Terminal and type the following:

su -l
olpc-update -rv build-number

Where build-number is the name of the build to be updated to.

As of 2/14/2008, the latest stable build is 656 and the latest unsupported build not requiring a developer key is candidate-691.

4. This process may take more than thirty minutes. When the process is complete, the XO will restart and the update will be complete.


Activated Upgrade

(source)

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

1. You need a USB stick that is larger than 300 MB, and it is better that you format it before copying any files over.

2. Once you have the formatted USB stick, download the following two files from the Internet:

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

http://download.laptop.org/xo-1/os/official/653/jffs2/os653.img

(the second file is quite large, so it might take a while to download)

3. Make sure the XO laptop is OFF. Plug in the USB stick.

4. With the USB stick 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).

5. When the screen says 'release the game keys', release all four buttons.

6. You will see arrays of colored grids running on the screen. We are now re-writing the NAND image.

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

8. Next, the laptop may update the firmware, if necessary, and reboot itself. (You don't have to do anything; just watch.)

9. After done with the upgrade(s), the laptop will boot to the prompt for your preferred user name.

10. Go to the Terminal activity (click on the taskbar icon; it looks like a rectangle with a $ on the upper left corner) and type the following:

cat /etc/issue


The numbers don't matter, but be sure that you type things after the $ sign.

11. Press the Enter key

12. If the screen says something that begins with

OLPC build 653

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

13. Type the following:

poweroff

14. Press the Enter key

15. Now the laptop is off. You should be able to remove the USB stick and power it up as usual.


Update firmware

(source)

Charge battery.

Connect to external power.

su
wget http://dev.laptop.org/pub/firmware/q2d07/bootfw.zip -O /versions/boot/current/boot/bootfw.zip
reboot

Manual Upgrade

(source)

For developer boxes with security disabled.

Charge battery.

Connect to external power.

su
cd /versions/boot/current/boot/
wget http://dev.laptop.org/pub/firmware/VERSION_NUM/VERSION_NUM.rom

Reboot and press ESC during the countdown. At the ok prompt type:

flash n:\boot\VERSION_NUM.rom