Test Config Notes

From OLPC
Jump to navigation Jump to search

Builds & Infrastructure

OLPC-Update

This is about how to use sandboxed (differential) updates, this might change in the future.

On builds older than 613, you should flash update to get the most recent versions of the required software. Autoreinstallation image

To use the olpc-update script to upgrade (or to downgrade!),:

First, run

  • rsync rsync://updates.laptop.org | sort
# rsync rsync://updates.laptop.org | sort
build-612
build-616
build-617
build-debian
build-debian-big
build-frs
build-joyride-53
build-joyride-56
build-joyride-58
build-joyride-59
build-joyride-66
build-joyride-67
build-joyride-68
build-joyride-76
build-meshtest
build-meshtest-47
build-meshtest-56
build-meshtest-73
build-meshtest-74

To find the builds available, and make sure that you are connected to the server. Then, run

olpc-update <build-no>

where <build-no> is the number of the build (e.g. 610, 588) to which you would like to move, e.g.,

olpc-update 617

or

olpc-update joyride-74

or

olpc-update meshtest-74

Finally, the update mechanism preserves the build from which you ran the updater as an "alternate" image from which you can boot. To swap the "primary" and "alternate" images, hold the 'O' gamepad key during bootup.

Fixing XO clock Data

From build 641 on (maybe earlier), if you have a good internet connection you can set the date/time by typing:

 ntpdate time.nist.gov


Some pre-test machines (C4s at the moment) don't have valid manufacturing data. This isn't too much of a problem, but they also have clocks which are set to crazy values, which is. To fix this, boot with the X key pressed and press Esc when prompted to get an OFW prompt. At the 'ok' prompt type:

clock-node @ iselect  decimal   00 40 16   14 09 2007  set-time

The numbers here are the time and date: second, minute, hour, day, month, year. You can substitute the current time and date if you like, but the machine will activate correctly as long as it has a somewhat-sane date. You can use the date above, for example.

Customizing a NAND image

Internationalization Testing

Firmware Notes

Mitch Bradley's stuff

Boot Process (as of q2d03)

To check your firmware version:

    cat /ofw/openprom/model

Kernel changelog analysis

At http://dev.laptop.org/~bert/joyride-pkgs.html is the joyride changelog. In it you'll see the version of the kernel.

The kernel was last changed in joyride build #258, and the new version of the kernel is kernel.i586 0:2.6.22-20071111.5.olpc.c1d02f5e6853b99

You can find that information for _any_ kernel by running 'uname -r'.


That 'c1d02f5e6853b99' uniquely identifies the version of the kernel. You can look it up in git (or gitweb) and see the changelog for precisely that kernel: http://dev.laptop.org/git?p=olpc-2.6;a=log;h=c1d02f5e6853b99

From that page, you should fairly easily be able to work out whether the patch you're interested in is included or not.

Sugar & Activities

XO Files

  • See also: {{OBX xobundle}} which will categorize all references to bundles (the category name needs to be determined)

Check Which Activity Version you have

  • Open the /usr/share/activities/{activity_name}.activity/activity.info file
  • Check the activity_version setting

Turning Suspend/Resume or screen saver off

Note: suspend/resume code was included in joyride 258. If you have anything other than a C2 or ECO'd machine, it is fairly likely that going through the cycles will cause the laptop to freeze, reboot itself, etc.

To turn this feature off:

  • For one boot (till the laptop is rebooted):
    • As root, type:
     /sbin/service ohmd stop
  • For all reboots:
    • As root, type:
     rpm -e ohm
  • More recently, you can turn off suspend/resume by typing: touch /etc/ohm/inhibit-suspend
  • Turn off the screen saver: xset dpms force off from the developer's terminal.

Control Panel

Keyboard Shortcuts

Wireless & Network

Connectivity to Apple Extreme

  1. Goto: http://www.corecoding.com/utilities/wep2hex.php and convert the password into a hex phrase.
  2. Click on the AP in the neighborhood mesh view
  3. Choose Hex input for the key; and choose 'shared' key instead of 'open'.
  4. You should be able to associate and authenticate now.


Testing of Different Connection Configurations

  1. Under a Tree
  2. Connected to AP
  3. One Laptop acting as MPP
  4. Same Mesh Same Server

Test the Network and Mesh Details

Modify the Mesh Discovery Sequence

You can put the following values in /etc/NetworkManager/mesh-start

  • school-mpp
  • infra
  • xo-mpp
  • local

These will control where the mesh device starts. Since the mesh device is the first device that gets picked at startup, this affects the immediate connection search of the laptop.

Remember, the current automatic connection cycle is this. You can jump to a specific step in this cycle by putting the string above into mesh-start.

/* Steps:
 *
 * 1. For each channel in [1, 6, 11]:
 *    a. try DHCP
 *    b. if DHCP times out, try next channel
 *    c. if DHCP response includes a non-link-local IP address,
 *      then CONNECTED/DONE
 *
 * 2. Try last successful AP connection
 *    a. if success then CONNECTED/DONE
 *
 * 3. For each channel in [1, 6, 11]
 *    a. try DHCP
 *    b. if DHCP times out, try next channel
 *    c. if DHCP response includes a link-local IP address,
 *      then acquire autoip address and apply DHCP settings (except for
 *      IP address), CONNECTED/DONE
 *
 * 4. Jump to channel 1
 *    a. acquire autoip address, CONNECTED/DONE
 */

Update the wireless firmware

  • First check what version you are running with: ethtool -i eth0
  • Next download the latest Libertas firmware, [1], and unzip it with: tar xzf <filename>
  • Move, delete or rename the 'usb8388.bin' file that is currently being used in /lib/firmware/'
  • Copy the new 'usb8388.bin' file from where you unzipped it into /lib/firmware/' (if the .bin file has a name other than usb8388, change it to usb8388.bin)
  • Reboot; then check the version with: ethtool -i eth0

Turn your XO into a sniffer

  1. Install tcpdump ('yum install tcpdump' will probably do it)
  2. killall NetworkManager (is this really necessary?)
  3. echo ${TRAFFIC_MASK} > /sys/class/net/msh0/device/libertas_rtap
  4. ifconfig rtap0 up
  5. tcpdump -i rtap0 -w outputfile.dump
  6. when you done capturing traffic type ctrl-c

TRAFFIC_MASK bits:

  • Data frames: 0x1
  • Mgmt frames but beacons: 0x2
  • Beacons: 0x4

Capturing wireless data

Instructions for capturing wireless data can be found here.

Turn on MPP Capability

As of build 570, automatic MPP (mesh portal) is turned off. If you want to turn it on, log in as root (either from the VT with Ctl+Alt+F1 or 'su -' from the Dev Console in sugar), and do:

 /sbin/chkconfig --level 345 NetworkManagerDispatcher on
 /sbin/service NetworkManagerDispatcher start

Next time you reboot (or the next time you click on an AP) the mesh portal will come back on.

Mesh and WDS

Some information on issues related to bad interactions between Linksys wireless routers and the XO can be found here.

Setting up Jabber server

Ejabberd Configuration

Security

Activation and Developer Keys

To learn about activation and developer's keys and how to un-secure a laptop, see Activation And Developer Keys.

How to pre-activate a laptop: Pre-Activate an XO

Turning on/off Activity Isolation (containerization)

In Update.1 (build 630+), isolation is enabled.

TO TURN OFF ISOLATION:

rm /etc/olpc-security && reboot

TO RE-ENABLE ISOLATION:

touch /etc/olpc-security && reboot


In earlier joyride builds, to play with activity containerization, you should:

  1. rainbow-daemon
  2. touch /etc/olpc-security
  3. restart sugar (e.g. type Ctrl-Alt-Erase)
  4. try out various activities; perhaps examine the output of rainbow-daemon
  5. rm /etc/olpc-security
  6. restart sugar

Note: it is important that rainbow-daemon be running when Sugar restarts. Therefore, rainbow-daemon should be started either on a virtual terminal (i.e. after htting Ctrl-Alt-F1 [F1 is the mesh-key]) or over SSH.

Please direct questions and comments to me: --Michael Stone 13:02, 17 September 2007 (EDT)


Logs

What logs go with which Bugs

  • Activities
    • All activity logs are located in /home/olpc/.sugar/default/logs
    • Activity logging is turned on by default in builds after 650/joyride 350
    • These logs will contain any warnings and or errors with tracebacks, which should help the developers debug their activity
    • Also, the shellservice.log will sometimes contain information as to why an activity failed to launch.
    • Note: each time you restart X, the old logs will be stored in a directory in the same location, and new ones will be generated.
  • Journal
    • There is a journal log in /home/olpc/.sugar/default/logs
    • Also, the datastore.log file often has implications for problems with the journal.
      • Especially with problems resuming files or transferring files to/from USB keys
  • Network/Collaboration Problems
    • /var/log/messages
      • This is a circular buffer, which contains a lot of low level debugging information
    • in /home/olpc/.sugar/default/logs
      • presenceservice.log contains higher level network debugging information
      • telepathy-gabble.log/telepathy-salut.log (logs for salut and gabble; the collaboration software)
  • Kernel Problems
    • dmesg (another circular buffer, which contains low level debugging information)

Turn on All logs

  • Enable Telepathy log files
  • Copy the /home/olpc/.xsession-example to /home/olpc/.xsession and modify the file to turn on whatever logging you want
  • Restarting X will take the changes into effect.
    • (ctrl + alt + backspace) when in the home view will do this.

To turn on full kernel logging

  • cd /boot
  • modify olpc.fth
  • add ignore_loglevel inside quotations

Get Version info

  • OS version: open a virtual terminal (ctrl-alt-mesh)
  • OFW version: cat /ofw/openprom/model(better) or cat /ofw/ec-name
  • Wireless firmware: in a virtual terminal type 'ethtool -i eth0'
  • Boot2 version: cat /proc/bus/usb/devices | grep 1286

Misc

Reformat a bad USB drive

MAC:

  1. Insert the USB into your mac
  2. Open Disk Utility (which you can find in the applications/utilities directory)
  3. Click on '967.5 MB USB 2.0...', the usb disk on the left.
  4. Click on the Partition tab
  5. Click on Partition to reformat the USB (this erases everything on the stick)

Basic Linux Commands

A list of commands

  • cd  : change directory (e.g. cd {path to directory}
  • pwd  : print working directory (tells you what your current directory is)
  • ls  : lists all in the directory
  • ls -al  : lists everything in directory, including hidden directories
  • nano  : change a file (e.g. nano {path to file}) If the file is in the working directory, then you only need to type the file name.
  • cp  : copy (e.g. cp {path to file} {path to destination})
  • -r  : recursive (makes any command recursive, e.g. cp -r will copy the entire directory)
  • rm  : remove (e.g. rm {path to file})
  • mount  : mount a usb device (e.g. mount /media/{usb_stick_name} (usb sticks are in the /media directory)
  • umount  : unmount a usb device
  • halt -p : shutdown
  • wget  : get file from web (e.g. wget {url_to_file}
  • unzip  : will unzip a file (use with .xo)
  • ifconfig :shows network connections (enter command in root)