Nepal: Testing, QA, and Configuration
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)
Testing
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 runos.zip and actos.zip, 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 help@laptop.org 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/profile.py
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
Steps:
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 www.google.com 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
Configuration
Wifi Routers
XS
EJabberd Configuration
Ejabberd configuration for schoolserver on build XS-160
Requirements: A. Erlang package version erlang-R11B .....does not seem to support the newer erlangE12 package that yum updates to. B. Install the mod_ssl-2.2.6-1 package for fedora...it will also install some dependencies, openssl-0.9.8b, openssl-devel-0.9.8b, krb5-devel, expat-devel,zlib-devel-1.2.3-10.fc7, and all the e2fsprogs http://fedora.laptop.org/xs/stable/updates/7/i386/e2fsprogs-libs-1.40.2-2.fc7.i386.rpm Get the RPM's from OLPC's server here: http://fedora.laptop.org/xs/stable/updates/7/i386/
- Get ejabberd source folder ejabberd-2.0.0
- Untar and put it in some location [on this server I put it in /library on the XS
- Get the four patch files push2.diff, recent.diff, online.diff and mod.diff from the olpc website. These files basically create an online roster that will have all online xo's and other machines connected to the jabber server to show up on you xmpp client.
- cd /library/ejabberd/src
- cp *.diff /library
- Run command patch -p1 < ../your patch name [for all four patches] -- MUST be in order
- Get into the src folder and run commands
- ./configure ----------and if no error shows up then run
- make------------------and if no error shows up then run
- make install
- You can also run make clear if you want to --it will remove temp files that were created during the make process
- Once the installation process is succesfull check to see that ejabberdctl and jabber services are in the path if not just add them.
Now go to /etc/ejabberd and open your ejabberd.cfg file
- Find the line that defines hosts and change the host which is something like"jabber.laptop.org" to your jabber server name.
- On ACL, find the line that defines admin ---it probably says jtest --again change the server name--again something like "jabber.laptop.org" to your jabber server name.
Save the file and quit.
To start ejabberd:
- Service ejabberd start or
- ejabberdctl start
- Register your admin "jtest" by running ejabberdctl register jtest servername password
- you can open a xmpp client and do that.
This will get jabberd up and running. Associate your XO with it by running sugar-control-panel -s jabber servername
To check if it associated you can open a browser and type http://servername:5280/admin or go to the terminal on the XO and type olpc-netstatus. The name of your jabber server and Telepathy: gabble should appear If this page does not exist go back to your /etc/ejabberd.cfg file and make sure that there is a http_poll and web_admin options for your port 5280. Jabbered runs on port 5222. Create a roster for everone and relax :)
Custom XO Build Configuration
How to customize the build
http://wiki.laptop.org/go/Mounting_jffs2_images
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://git.fedoraproject.org/git/pilgrim cd pilgrim/crcimg make ./crcimg myfile.img
Right now, this method doesn't work Berrybw 06:41, 17 April 2008 (EDT)
Nepal Activity Pack
Activities Added using the Customization key
- Chat-35.xo
- Write v55
- Browse - v86
- Read v45
- Record v54
- EPaati Activity version 10
- Pustakalaya-- launches browse and points to Nepal's E-Pustakalaya (E-Library) website
- GCompris big bundle
- SocialCalc
- Paint v19
- EToys v80
- Scratch v1
- SimCity v4
- TamTamMini v46
- TamTamJam v48
- TamTamEdit v47
- Speak v5
- Slider Puzzle v5
- Jigsaw Puzzle v3
- Cartoon Builder 1.7
- Story builder v12
- Joke Machine v8
- Block Party v7
- Maze v5
- Memorize v26
- Starchart v3
- Moon v3
- Map v1
- Terminal v9
- Watch and Listen v10
Possible late additions: Sonata,
Additional Rpms Installed
- RPM's to display man pages
- gnuchess
- flash 9 plugin
Activity Ordering
The order is set in Nepal's custom /home/olpc/Actvities/.default
- org.laptop.AbiWordActivity
- org.codewiz.XaoS
- org.laptop.WebActivity
- org.laptop.Oficina
- org.laptop.Calculate
- com.laptop.Ruler
- org.laptop.AcousticMeasure
- tv.alterna.Clock
- net.gcompris.geographyActivity
- net.gcompris.tangramActivity
- org.laptop.Chat
- org.laptop.RecordActivity
- edu.mit.media.ScratchActivity
- org.laptop.StopWatchActivity
- org.laptop.TamTamMini
- org.laptop.TamTamJam
- org.laptop.TamTamEdit
- org.laptop.TamTamSynthLab
- org.laptop.TurtleArtwithSensors
- org.vpri.EtoysActivity
- org.laptop.Pippy
- org.laptop.Memorize
- com.jotaro.ImplodeActivity
- org.laptop.Connect
- vu.lux.olpc.Maze
- org.worldwideworkshop.olpc.JigsawPuzzle
- org.worldwideworkshop.olpc.SliderPuzzle
- vu.lux.olpc.Speak
- net.gcompris.chess_computerActivity
- net.gcompris.scalesboardActivity
- net.gcompris.sudokuActivity
- org.laptop.MeasureActivity
- 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/profile.py to schoolserver2 (specific to OLE Nepal)
- installed Flash rpm, rpm -ivh flash. . .plugin.rpm
- Installed latest Language pack for Nepali
- Customized icon to the EPaati icon
- Added update-script that check for updates to the EPaati activity
- Added non-FOSS codecs
- Changing the icon to the custom epaati.svg
- su
- cp activity-epaati.svg /usr/share/icons/sugar/scalable/device/computer-xo.svg
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-9.0.115.0-release.i386.rpm
- ne_lang_pack.sh
- Customized version of os703.img, os703.crc
- /security/develop.sig