XS Installing Software 0.6
This page describes how to obtain a copy of the XS school server software, load it onto media, and install it onto a system. A more complete description of the software repositories, configuration information, and testing instructions are also available.
Downloading the System Image
You can obtain the latest image from http://xs-dev.laptop.org/xs/:
wget http://xs-dev.laptop.org/xs/OLPC_XS_LATEST.iso
This can be copied onto a CD or DVD using your favorite software.
It may also be copied onto a USB key, using the livecd-tools provided by Fedora 7:
livecd-iso-to-disk OLPC_XS_LATEST.iso /dev/sdb1
where /dev/sdb1 represents the USB key being copied onto.
There is a git repository for livecd-tools if you need a different version of the script, or are on a different linux distro.
Using an XO to create an installer USB key
You can use an XO laptop to create an installer key. First, you will need to install some necessary tools on the XO, then download the image, then transfer it to a USB key inserted in the laptop:
sudo yum install livecd-tools wget http://xs-dev.laptop.org/xs/OLPC_XS_LATEST.iso sudo livecd-iso-to-disk OLPC_XS_LATEST.iso /dev/sda1
Installing the Software
The install from a CD or USB key will eventually be automatic upon booting. While the install is currently mostly automated (not interactive), it is not performed automatically upon boot.
- Boot from the USB Key or CD-ROM -- Getting an older system to boot from a USB key can be difficult, but most will do it.
- Select "Run from Image" at the initial boot screen.
- When it has finished booting, login as root (no password is required) and type:
./olpc-install
- You will be prompted for the keyboard type, the time zone, and a root password
- If the disk in the system is new, you may be prompted to OK its formatting.
- When it has finished installing, you will need to reboot. The installer will erroneously tell you it is rebooting, but you will have to manually type reboot. Remove the CD-ROM or USB key after power-down, but before the boot process begins.
You should now have a machine which somewhat resembles a school server.
Booting Install from a USB key
In our experience, most generic x86 computers equipped with USB ports support booting from a USB storage device (a USB key). Almost none are configured to do so automatically. This can easily be forced from the BIOS.
Phoenix BIOS
- Insert the USB key into the machine before booting
- Enter the BIOS by pressing DEL on a keyboard during the initial boot process.
- Select "Advanced BIOS Features"
- Select "Hard Disk Boot Priority"
- You should see your USB key listed as a boot device. Move it to the top by selecting it and pressing PgUp.
- If you don't see your USB key listed, move "Bootable Add-in Cards" to the top of the list. But remember to move it back down after installation, or your system may not boot!
- Save the BIOS parameters to CMOS and reboot by pressing F10, then Enter
Dell
If the system has a blank disk drive, it will automatically boot from a USB key.
If the disk drive has a bootable OS, you will need to:
- Insert the USB key into the machine before booting
- Enter the Boot menu by pressing F11 on boot
- Select USB Device
Workaround?
Need work around (like with grub?) for older hardware without boot from USB capability here... And possibly a run Live from USB key without install to hard drive???
Configuration
The default server setup is to connect to the Internet on the first wired ethernet network interface, using IPv4 DHCP. Laptops connect to the server over the wireless mesh using one or more Active Antenna, connected through USB interfaces. Optional second (and additional) ethernet interfaces are configured by default to provide an internal LAN within the school. Traditional WiFi access points, if used, should be located on this internal LAN. See XS Configuration Management for details.
To enable external IPv6 you will have to configure the global address of the machine and setup an IPv6 tunnel.
Installing additional software
If you wish to install packages that aren't part of the default school server distribution, you should first try using yum. The stable and testing school server repositories include all packages included in Fedora, even if they aren't installed by default. For third party software you should follow their installation procedure for Fedora 7 or for the XS Server specifically. For example, to install Moodle, follow these instructions: http://docs.moodle.org/en/OLPC_XS_installation#Install_Moodle_from_the_OLPC_XS_Image
Upgrading
Upgrading a server is done using the yum package interface provided by Fedora.
Over the Internet
If you have an Internet connection, you can upgrade from the default servers at OLPC, or your own mirrors of them. This is done using yum:
sudo yum -y upgrade
From a CD or USB key
If you do not have an Internet connection (or wish to minimize its use), you can obtain a CD or USB key for upgrading an existing system.
More instructions coming soon. Feel free to contribute
Release Notes
Please read these notes to understand the capabilities and known problems with a particular release of the XS school server software. The latest release of software is described first, with a selection of earlier releases also described for completeness.
OLPC_XS_161
Available for testing. DO NOT INSTALL in production machines !
This release will provide:
- An improved Active Antenna firmware (22.p6) that fixes the problems with rebooting.
- Attempt to fix inability to install on Via C3 machines
- Minor bug fix (/etc/resolv.conf problem in 160)
- See Example school server configuration for a step-by-step installation and configuration guide.
WLAN Firmware: 22.p6 Kernel: 2.6.23.1-23.fc7 xs-config: 0.2.7-1
OLPC_XS_160
This release provides:
- An improved ejabberd server which might improve reliability under load
- Support for squid web caching is now provided
- Configuration of server domain name has been automated.
- Automatic installation is now supported by the default ISO image. Boot this image and you will be prompted for a few parameters then installation will automatically begin.
- See Example school server configuration for a step-by-step installation and configuration guide.
WLAN Firmware: 20.p49 Kernel: 2.6.23.1-23.fc7 xs-config: 0.2.6-6
Known Problems
- For some reason, anaconda now sets the root password on the running livecd image, not the installed one (trac 6678). You must provide a root password when prompted by the installer, and you will need it to log in and reboot the system after installation (trac 6677), but it will not be set on the new disk image. You should set it manually ASAP after booting into the installed system.
- Configuration is improved over build 150. A script (/etc/sysconfig/olpc-scripts/domain_config) now configures the domain name of the server. If using multiple servers in a school this must currently be done AFTER running network_config/auxiliary_config.
- Clean up /etc/resolv.conf to have 172.18.0.1 listed as the only nameserver, and delete the DHCP hooks file:
sudo rm /etc/dhclient-exit-hooks
- Dynamic DNS and other support isn't in place for true DHCP'd servers. The server will work fine if DHCP'd, but outside access by name will be broken.
- Plenty of functionality still missing, such as IPv6, ejabberd monitoring ([http://dev.laptop.org/ticket/6373 trac 6373), Moodle, etc.
- Netplugd is still disabled at this time. It interacts badly with the the current libertas driver, and causes crashes, lack of network, etc. This doesn't seem to affect anything right now, but is an unplanned change.
- The installer stops when the disk being installed onto has a FreeBSD slice/partition (and probably other non-Linux partitions as well). Removing those partitions with fdisk and rebooting works around the problem.
- Substantiated problems sometimes with two active antennas plugged in, but this seems to be antenna specific. This build has been tested to support multiple meshes with collaboration between them (once registered).
Upgrading from earlier releases
This has not been tested. And at this time, the stable repositories do not reflect this build! Change to using the testing repositories if you are testing upgrade.
Known issues:
Disable Netplugd service
If upgrading from a build earlier than 141, you will need to manually turn off netplugd until we figure out why it is unhappy with the latest libertas driver:
chkconfig netplugd off service netplugd stop
Reconfiguration of Network
ON ALL UPGRADES the network configuration script will have to be run manually (which will require reconfiguring the WAN interface):
/etc/sysconfig/olpc-scripts/network_config 1
The single parameter is a server number. This must be unique per school, but otherwise may be any number from one to eight (currently). After running this script, any manually configured network scripts (in /etc/sysconfig/network-scripts/) such as the WAN configuration will be saved with a .bak suffix. Reboot immediately after running the network-config script.
OLPC_XS_150
This release provides support for multiple school servers in a school. It also includes primitive ejabberd presence server support.
WLAN Firmware: 20.p49 Kernel: 2.6.23.1-23.fc7 xs-config: 0.2.5-6
Known Problems
- I'm unable to get the automatic install to build properly tonight (despite earlier successes), so you still have to log in as root (no password) and type ./olpc-install to start the installation process.
- For some reason, anaconda has decided to stop setting the root password. You should set it manually ASAP after
booting into the installed system.
- How do you change the root password? 70.124.61.211 23:31, 13 February 2008 (EST)
- Configuration is state of the art --- for the 1970s! Realistically, we are one global parameter (the domain name) and one service (ejabberd) away from automatic configuration. See Example school server configurations to walk you through the steps, one by one.
- /etc/dhcpd.conf might accidentally reassign a school server IP address. Change the range on 172.18.0.1 to be 172.18.0.32 172.18.0.254 (instead of 172.18.1.254).
- Dynamic DNS and other support isn't in place for true DHCP'd servers. The server will work fine if DHCP'd, but outside access by name will be broken.
- Plenty of functionality still missing, such as web caching and IPv6.
- ejabberd needs some configuration before starting, which is currently difficult.
- Netplugd is still disabled at this time. It interacts badly with the the current libertas driver, and causes crashes, lack of network, etc. This doesn't seem to affect anything right now, but is an unplanned change.
- The installer stops when to be installed disk has a FreeBSD slice/partition. Removing the slice with fdisk and rebooting works around the problem.
Upgrading from earlier releases
This might work (the testing cycle was tight!), with a few caveats:
Disable Netplugd service
If upgrading from a build earlier than 141, you will need to manually turn off netplugd until we figure out why it is unhappy with the latest libertas driver:
chkconfig netplugd off service netplugd stop
Reconfiguration of Network
ON ALL UPGRADES the network configuration script will have to be run manually (which will require reconfiguring the WAN interface):
/etc/sysconfig/olpc-scripts/network_config 1
The single parameter is a server number. This must be unique per school, but otherwise may be any number from one to eight (currently). After running this script, any manually configured network scripts (in /etc/sysconfig/network-scripts/) such as the WAN configuration will be saved with a .bak suffix. Reboot immediately after running the network-config script.
OLPC_XS_141
This release provides the latest firmware and drivers for the Active Antennas, fixing a problem with large file transfers over the mesh. All users of earlier XS software builds are strongly encouraged to upgrade!
WLAN Firmware: 20.p47 Kernel: 2.6.23.1-23.fc7 xs-config: 0.2.2-4
Known Problems
- Plenty of functionality still missing, such as ejabberd and web caching
- The idmgr is not installed. To install and start it, type:
yum install idmgr
- Netplugd is disabled at this time. It interacts badly with the the current libertas driver, and causes crashes, lack of network, etc. This doesn't seem to affect anything right now, but is an unplanned change.
- The installer stops when to be installed disk has a FreeBSD slice/partition. Removing the slice with fdisk and rebooting works around the problem.
Upgrading from earlier releases
This should work, with a few caveats:
Disable Netplugd service
You will need to manually turn off netplugd until we figure out why it is unhappy with the latest libertas driver:
chkconfig netplugd off service netplugd stop
Reconfiguration of Network
To avoid disturbing any manual configuration of the server network interfaces, hot-plug of the Active Antennas will not be supported on an upgraded machine until the network configuration script is run manually (which will require reconfiguring the WAN interface):
/etc/sysconfig/olpc-scripts/network-config.py
After running this script, any manually configured network scripts (in /etc/sysconfig/network-scripts/) such as the WAN configuration will be saved with a .bak suffix. Reboot immediately after running the network-config.py script.
OLPC_XS_137
This release supports hot-plug of the Active Antennas (unplugging and plugging while the server is running.) It also provides the latest firmware and drivers for the Active Antennas, fixing a number of stability problems and avoiding a problem where the mesh interacted badly with conventional 802.11b/g access points running a Broadcom chipset (such as the Linksys WRT54G).
Known Problems
- Plenty of missing functionality.
Upgrading from earlier releases
This has been tested and should work fine, with one intentional exception:
To avoid disturbing any manual configuration of the server network interfaces, hot-plug of the Active Antennas will not be supported on an upgraded machine until /etc/sysconfig/olpc-scripts/network-config.py is run manually. After running this script, any manually configured network scripts (in /etc/sysconfig/network-scripts/) will be saved with a .bak suffix.
OLPC_XS_128
This release has the registration server required for Trial3, as well as a fix to the inittab script which caused problems in India.
OLPC_XS_127
A bug fix release, due to our lame QA department not testing build 126 on a server with a single wired interface before release. This fixes the network configuration problems in 125 and 126 on servers with a single wired interface.
OLPC_XS_126
A bug fix release. This fixes the mesh channel assignment and network configuration problems in 125
OLPC_XS_125
This release has basic network functionality. It supports laptops on the mesh.
It does NOT autoinstall automatically. You will need to login as root (no password), then run /root/olpc-install. You will be prompted for a root password, otherwise the installation is automatic.
Missing:
- Registration
- Web services
- Presence service
- A configuration interface
- Lots more...
Known Problems:
- /etc/named.conf isn't being installed correctly from the xs-config RPM. The fix is:
cp /etc/named.conf.olpcnew /etc/named.conf
- Hotplug of the mesh interfaces doesn't trigger a restart of the olpc-mesh-config, which is needed for the mesh to work.
- SELinux is left in permissive mode, instead of completely disabled. Edit /etc/selinux/config and set SELINUX=disabled
- The channel on the mesh interface isn't being set correctly. This causes problems with XO builds later than 542. Set the channel manually using iwconfig for now. Fixed in build 126.
- The network configuration script could fail and assign a mesh interface as the WAN. Fixed in build 127.
- On machines with no serial port, there might be a problem resulting in an error message on the console: INIT : Id "s0" respawning too fast : disabled for 5 minutes. This is fixed in xs-config v0.1.7-4, (not currently in any live CD build).
The most common problem with the mesh is due to a hardware problem with the Marvell wireless modules used in the Active Antennas. They frequently do not reset properly, and need to be power cycled. The symptom is that you will get a message: "libertas: Unable to init firmware" on the console, and ifconfig won't show a mesh interface. A reboot will not fix the situation, you need to actually power cycle the USB adapter by unplugging it and plugging it back in.