Nepal: Testing, QA, and Configuration


Jump to: navigation, search

We are using this page to organize our configuration, testing, and QA for the upcoming Bishwamitra and Bashuki pilots. When this page is complete, I intend to link the relevant portions to the main Testing and QA pages. Berrybw 23:24, 15 April 2008 (EDT)



Receipt of XO's

This stage will be done by Upaya, Bryan, and Sulochan. Covers receipt and basic testing

  1. At airport, count # of XO's if individually packed
  2. Upon arrival at office, recount XO's and note any discrepancies
  3. Inventory the XO's in a spreadsheet. The spreadsheet should record the XO's serial #, whether it shows any physical damage, or won't boot. Here is a inventory template spreadsheet you can use Image:XO-Inventory-template.xls
         * If there is physical damage, write "physical damage" on the box w/ a red

marker. If it won't boot, write "won't boot" with red marker.

         * In case of damage or not booting, put in the damaged stack 
  4. Attach a label to the XO that has the Inventory Label as the identifier
  5. Write the Serial Number on the bottom of the laptop using a black permanent marker
  6. Type the Serial Number in the speadsheet next to the Inventory Number
  7. Insert USB key, containing and, see Procedure for Collecting UUID's and Serial Numbers
         * You should see a message like "SHFxxxxxxxx nnnnnnnnnnnnnnn; Laptop data recorded successfully"
         * The XO will then reboot, remove the USB key and turn it on again 
  8. Send file to OLPC containing the information needed to get developer keys for each XO to
  9. Once you have done this procedure for half of your XO's backup the laptops.dat and inventory spreadsheet w/ timestamps in the filenames (yes, I am paranoid) 

How to check you have Serial Numbers and UUID's for each laptop

uniq laptops.dat > laptops-tmp.dat
wc -l laptops-tmp.dat

This should match the exact number of XO's that you have.

Notes: It is very hard to attach any kind of sticker to the XO because of its nobby exterior. We placed the inventory label on the smooth green plastic above the screen. We used inventory labels only to keep track of the XO's while they are in our possession, part of a regulatory requirement. We will take off the inventory labels before we give the XO's to kids. [edit] Stage 2 - Serious Testing

Stage 2 will be done by Bryan, Upaya, Rajeev, Sulochan, Rabi, and Saurav [edit] What you Need

For Stage you need a USB key with the following contents:

  • os699.img and os699.crc,
  • /security/develop.sig -- developer key specific to the XO
  • /bundles/ containing library and activity bundles for our customized build
  • The Customization_key unpacked into the root directory

Firmware Testing

We won't be able to test the firmware until we get the developer keys for all XO's

  1. Write the Serial # for the XO on Testing Plan
  2. Place develop.sig specific to the XO you will test onto the USB key
  3. Hit the "X" Escape key in the upper left-hand corner of the keyboard
  4. At the OK prompt, type disable-security
  5. The XO will reboot. Type disable-security again
  6. Type test-all at the OK prompt
         * Note down any error messages you see during this process, basically any individual test that does not produce an OK result
         * You need to put pressure on the touchpad during the touchpad test, then hit the space bar
         * Don't hit the keys during the keyboard test, for some reason that causes a problem.
         * If you do get an error message, write Firmware -- Component xxx failed w/ a red marker on the XO's box 
  7. after test-all completes, it is time to change the locale to Nepali from within the firmware (note: the XO's we received in Nepal had US as the locale)
         * At the OK prompt, type change-tag LO ne_NP.UTF-8 -- Note LO not LA
         * Turn off the XO and remove USB 
  8. If no problems, mark the XO's label w/ a blue checkmark, if there is a problem check the label w/ a red marker. 

It may not be necessary to test the custom build for all of our XO's. We may be satisfied if we test 25-30 XO's without getting any errors.

Note: We had to make a special change to our build. We changed the default Jabber server to our local school server. Do this by changing the value of DEFAULT_JABBER_SERVER in /usr/lib/python2.5/site-packages/sugar/

USB Stick should contain:

   * os699.img and os699.crc,
   * /security/develop.sig -- developer key specific to the XO
   * /bundles/ containing library and activity bundles for our customized build
   * The Customization_key unpacked into the root directory 


  1. Insert the USB key
  2. Hit the "X" Escape key in the upper left-hand corner
  3. At the OK prompt, type copy-nand u:\os699.img
  4. The XO should reboot on its own. Leave the USB key in.
  5. Type in the XO's serial number as the user name
  6. Check that the default interface is in Nepali
  7. Use the camera activity to take a picture
  8. Connect to the Access Point 'Access-point Name' and connect to
  9. Open the E-Paati activity
 10. Turn off the XO and put it back in the box
 11. If everything tested fine, write Software OK in blue marker on the box. Write Software Failed in red marker if otherwis

Load Testing

Documenting the testing procedure with this document


Wifi Routers


EJabberd Configuration
Nothing custom here, simply changed the name of the jabber server to for Bashuki school
and for Bishwamitra School. The wiki page on installing jabber is quite excellent.

Custom XO Build Configuration

We are using build os703 and firmware Q2D14 for our deployment

Method 1 (doesn't yet work)

How to customize the build by mounting editing the jffs2 image Note: This currently doesn't work
losetup /dev/loop4 nand.img
modprobe block2mtd block2mtd=/dev/loop4 
cat /proc/mtd    # inspect status
mkdir mtd
modprobe jffs2
mount -t jffs2 mtd0 mtd
make changes
then umount /mnt/mtd
modprobe -r block2mtd
losetup -d /dev/loop0
How to create new crc:
git clone git://
cd pilgrim/crcimg
./crcimg myfile.img
Right now, this method doesn't work Berrybw 06:41, 17 April 2008 (EDT)
May try downloading the tarball for 703, making changes, and then building an image per Michael Stone's suggestion

Method 2 - does work but not elegant

How to customize the image by installing a stock OLPC os703.img, Making Changes, and then Cleaning up the machine specific settings.

  1. Install os image 703 from Forth prompt copy-nand u:\os703.img --> you must have os703.img and os703.crc on your USB key
  2. Power off
  3. Insert USB key that has Customization Key v2 installed on it
  4. Hold down X game key then turn on the XO
  5. Release the game key when prompted to do so
  6. The Activity pack should install itself and then power off
  7. Boot up and make your changes, such as installing rpms
  8. When done, delete the user-specific changes you have made
    • rm -r /home/olpc.sugar/default
    • rm /var/lib/dbus/machine-id
    • There may be other machine-specific settings that I am not aware of but should be deleted
  9. Reboot
  10. Go to the Forth prompt and type save-nand u:\os703-b1.img, this will also generate a u:\os703-b1.crc file
  11. Clone other XO's using these two files

Method 3 - Not yet tried

Michael Stone's suggestion:

download the 703 tarball, unpack it, make your modifications, then re-run 'mkfs.jffs2' and sumtool.;a=blob;;h=2e958e4220cce762bd3ac3189c258d0a3e08c7a6;hb=devel_jffs2

Nepal Activity Pack

Activities Added using the Customization key

After Installing all these activities, we have 456 MB of SSD remaining.

Additional Rpms Installed
  • RPM's to display man pages, man-1.6e-3.fc7.i386.rpm, diffutils-2.8.1-16.fc7.i386.rpm, groff-
  • gnuchess
  • flash 9 plugin

Activity Ordering

The order is set in Nepal's custom Activity defaults file. to use it you will need to change the file to /home/olpc/Activities/.defaults

  • org.laptop.Chat
  • org.laptop.AbiWordActivity
  • org.laptop.WebActivity
  • org.laptop.RecordActivity
  • org.laptop.Oficina
  • org.olenepal.EPaatiActivity
  • org.olenepal.PustakalayaActivity
  • net.gcompris.gcomprisActivity
  • com.socialtext.SocialCalcActivity
  • org.vpri.EtoysActivity
  • org.laptop.SimCity
  • vu.lux.olpc.Speak
  • org.laptop.TamTamMini
  • org.laptop.TamTamJam
  • org.laptop.TamTamEdit
  • com.ywwg.CartoonBuilderActivity
  • org.worldwideworkshop.olpc.storybuilder
  • org.worldwideworkshop.olpc.JigsawPuzzle
  • org.worldwideworkshop.olpc.SliderPuzzle
  • org.worldwideworkshop.JokeMachineActivity
  • org.laptop.BlockPartyActivity
  • org.laptop.StarChart
  • com.garycmartin.Moon
  • org.laptop.Memorize
  • vu.lux.olpc.Maze
  • org.laptop.Terminal

Other Customizations

  • Firmware changes ** Not supported by OLPC **
    • Updated firmware to Q2D14
    • Disabled security -- disable-security
    • Changed locale (LO) in the firmware to ne_NP.UTF-8
  • Sugar
    • changed DEFAULT_JABBER_SERVER in /usr/lib/python2.5/site-packages/sugar/ to or (specific to OLE Nepal)
    • installed Flash rpm, rpm -ivh flash. . .plugin.rpm
    • Installed latest Language pack for Nepali
    • Added update-script that check for updates to the EPaati activity - written by Sulochan
    • Added non-FOSS codecs
  • Adding Man pages
    1. Install groff-1.18.***.i386
    2. Install man-1.6f-***.i386
    3. copy /etc/man.config from linux machine to xo under same location
    4. Copy Man folder /usr/share/man into into xo
  • Setting up Gnuchess
    1. rm /usr/games/gnuchess -- for some reason there appears to be a symbolic link here by default that causes problems
    2. cp /usr/bin/gnuchess /usr/games/ note: for whatever reason, ln -s /usr/bin/gnuchess /usr/games doesn't work

Contents of My Customization Key

  • customization 2 unzipped to the root of the key
  • q2d14.rom, q2d14.asc in /ofw
  • Copies of the .xo files for activitity bundles in /bundles
  • flash-plugin-
  • Customized version of os703.img, os703.crc
  • /security/develop.sig

Add-ons and other Modifications

Personal tools
  • Log in
  • Login with OpenID
About OLPC
About the laptop
About the tablet
OLPC wiki