Active Antenna Reprogramming: Difference between revisions

From OLPC
Jump to navigation Jump to search
Line 38: Line 38:
lsusb -v -d 1286:2001 | grep bcdDevice
lsusb -v -d 1286:2001 | grep bcdDevice


The response should be something like "31.09" (indicating the broken Boot2 firmware version), "31.07" (indicating current Boot2 firmware), or "31.1A" (indicating current stand-alone mesh repeater firmware). If you get a response other than this, please contact ''server-devel at laptop.org'' as upgrading earlier versions (which shouldn't be encountered in the field) require additional steps.
The response should be something like "31.09" (indicating the shipped Boot2 firmware version), "31.07" (indicating current boot-from-host-only Boot2 firmware), or "31.1A" (indicating current stand-alone mesh repeater firmware). If you get a response other than this, please contact ''server-devel at laptop.org'' as upgrading earlier versions (which shouldn't be encountered in the field) require additional steps.


==Obtaining the Antenna Firmware==
==Obtaining the Antenna Firmware==

Revision as of 02:58, 30 January 2008

  This page is monitored by the OLPC team.

This page is about reprogramming the Active Antenna, which is a standalone version of the XO laptop's wireless mesh network interface.

The Active Antenna performs two functions: it serves as a mesh access point for school servers, and it serves as a stand-alone mesh repeater. It was tension between these two functions that led to the pre-build and prototype builds to be manufactured with firmware which puts them into the mesh repeater mode before a server has had time to boot (Trac #4632). This page describes the setup for reprogramming the firmware, then either how to "fix" an Active Antenna for use with a server, or how to upgrade the firmware on a mesh repeater.

Setup

Prerequisites

The system used to reprogram the Antenna probably needs to be either Fedora 6 or Fedora 7 (such as an XS School Server).

It should NOT have drivers for the Active Antennas installed. If using an XS school server build, move the drivers out of the way (don't forget to move them back when you are done!:

mv /lib/modules/`uname -r`/kernel/drivers/net/wireless/libertas /root

It will need to have the libusb development headers installed:

yum install libusb-devel

Obtaining the software

The software needed to program the firmware on the Active Antennas is available from [1] :

git clone git://git.infraqdead.org/libertas-flash

You will need to compile part of the software:

cd libertas-flash
make

Fixing an Active Antenna

The pre-build and prototype builds of the Active Antennas were unfortunately manufactured with firmware which puts them into a stand-alone mesh repeater mode before a server has had time to boot (Trac #4632). In order to this, you will need to downgrade the Boot2 code installed on the Antenna.

You can determine which Boot2 firmware is currently on the Active Antenna using:

lsusb -v -d 1286:2001 | grep bcdDevice

The response should be something like "31.09" (indicating the shipped Boot2 firmware version), "31.07" (indicating current boot-from-host-only Boot2 firmware), or "31.1A" (indicating current stand-alone mesh repeater firmware). If you get a response other than this, please contact server-devel at laptop.org as upgrading earlier versions (which shouldn't be encountered in the field) require additional steps.

Obtaining the Antenna Firmware

The currently recommended Boot2 code for Active Antennas not acting as stand-alone mesh repeaters is release 3107. You can download a copy of this code, named Boot2_3107.bin, from http://dev.laptop.org/pub/firmware/libertas/boot2/Boot2_3107.bin.

Programming the Antenna

In downgrading the Active Antenna, speed is of the essence. After plugging the Antenna into USB, you have less than ten seconds to begin the programming or it will fail. After downloading the required software and firmware, and running sudo ls so your password is cached, plug in the antenna and immediately type:

sudo ./libertas-flash.py -v Boot2_3107.bin

If this is sucessful, you will be prompted at the end to "power cycle your board or replug your card". You should reboot the Active Antenna by unplugging it from USB.

Upgrading a Mesh Repeater

If you are trying to use an Active Antenna as a stand-alone mesh repeater, you will want to upgrade both the Boot2 firmware and the firmware used for normal operation.

Obtaining the Repeater Firmware

The currently recommended Boot2 code for Active Antennas acting as stand-alone mesh repeaters is release 311A. You can download a copy of this code from http://dev.laptop.org/pub/firmware/libertas/boot2/Boot2_311A.bin.

The currently recommended operating firmware for Active Antennas acting as stand-alone mesh repeaters is release 126.p3. You can download a copy of this code from http://dev.laptop.org/pub/firmware/libertas/repeater/usb8388_126p3_Test.img

Updating the Repeater

As above, speed may be required when updating a repeater running version 3109 of Boot2 firmware.

After downloading the required software and firmware, plug in the antenna and immediately type:

sudo ./libertas-flash.py -v Boot2_311A.bin

If this is successful, you will be prompted to "power cycle your board or replug your card". Do this by unplugging the Active Antenna, then plugging it back in. Now repeat the process to program the "operational" firmware into the Antenna:

sudo ./libertas-flash.py -v usb8388_126p3_Test.img

You should now have an stand-alone mesh repeater (operating on channel 1).

Testing the Repeater

In order to test the operation of the repeater, follow these steps:

  • Plug the repeater into a school server and write down its MAC address (obtained from ifconfig).
  • You will need a school server (or another laptop) supporting a mesh on channel 1.
  • Take an XO laptop, and modify it to have a blinding table which only allows it to communicate with the repeater's MAC address.
  • With the repeater unpowered, attempt to communicate with the school server or laptop on channel 1. If this succeeds, the previous step wasn't done correctly. If everything is setup properly, you should NOT be able to communicate with any other devices on the mesh.
  • Power on the repeater (and wait a couple of minutes for it to enter repeater mode.)
  • Now the blinded laptop should be able to communicate with the school server/laptop on mesh channel 1.