XS Installing Software 0.6: Difference between revisions

From OLPC
Jump to navigation Jump to search
(remove latest releases table, it does not serve any purpose here and is a distraction)
 
(39 intermediate revisions by 11 users not shown)
Line 5: Line 5:
[[Category:SchoolServer]]
[[Category:SchoolServer]]


This page describes how to obtain a copy of the [[XS_Server_Software|XS school server software]], load it onto media, and install it onto a system. A more [[XS Software Repositories|complete description of the software repositories]], [[XS_Configuration_Management|configuration information]], and [[Schoolserver_Testing|testing instructions]] are also available.
This page describes how to obtain a copy of the [[XS_Server_Software|XS school server software]], load it onto media, and install it onto a system.


This page covers XS 0.5 and newer. For older releases, see [[XS_Installing_Software_0.4]].
This page covers '''XS 0.6 and newer'''. For older releases, see

* [[XS_Installing_Software_0.5]]
* [[XS_Installing_Software_0.4]]


=Downloading the System Image=
=Downloading the System Image=
Line 13: Line 16:
You can obtain the latest image from [http://xs-dev.laptop.org/xs/ http://xs-dev.laptop.org/xs/]:
You can obtain the latest image from [http://xs-dev.laptop.org/xs/ http://xs-dev.laptop.org/xs/]:


wget http://xs-dev.laptop.org/xs/OLPC_XS_LATEST.iso
wget http://dev.laptop.org/xs/OLPC-School-Server-0.6-i386.iso


This can be copied onto a '''CD''' or '''DVD''' using your favorite software.
This can be copied onto a '''CD''' or '''DVD''' using your favorite software.


You can also [[XS_Techniques_and_Configuration#Installing_from_USB|install it from USB]] (warning: unsupported!)
== Optional: Using a USB key/disk for installation ==

'''With version 0.5.x, USB installs are not fully supported, and are reported to fail on a variety of hardware. In case of seeing problems, retry with a normal CD-ROM based installation.'''

Using a USB key to install this version of the XS involves several additional steps.

* First, ensure you have syslinux installed, and that your USB key is both bootable (you can use gparted to make it bootable) and unmounted.
* Then, copy the installation using the 'mkusbinstall' script you can download [http://dev.laptop.org/git/projects/xs-livecd/plain/util/mkusbinstall?id=470bbcfb9fb33416fef0093038b76ba035a997a2 here] (click on the 'plain' link). Assuming your usb key is /dev/sdb, you can invoke it like this:
mkusbinstall OLPC_XS_LATEST.iso /dev/sdb1
* You may need to configure your machine to boot from USB - see [[XS_Boot_from_USB]] for details.
* Early in the installation , anaconda will say that it cannot find its kickstart file. Change the path from 'cdrom:/ks.cfg' to 'hd:sdb1:/ks.cfg'. You will get prompted again for the path to the ISO - set it to Hard Drive, device: '/dev/sdb1' and directory: 'iso'. If the machine has more than one hard drive, then the device might be sdc1 instead of sdb1.

Mikedawson - I found that installation from USB key would fail just before choosing additional packages unless you change the boot arguments to the Kernel. When Grub comes hit escape, then edit the line and replace LABEL=XSRepo with dev:sdb1 in the two places it occurs.

This process has worked on Ubuntu and Fedora systems.


=Installing the Software=
=Installing the Software=
Line 37: Line 26:
'''Please read the [[XS Release Notes|release notes]] for the version you are installing.'''
'''Please read the [[XS Release Notes|release notes]] for the version you are installing.'''


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.
The install from a '''CD''' or '''USB''' storage device 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
# Boot from the USB device or CD-ROM.
# Press enter to start the graphical boot menu.
# Press enter to start the graphical boot menu.
# Select "Install using kickstart" at the initial boot screen.
# Select "Install using kickstart" at the initial boot screen.
## "Install using kickstart" is the last menu item. Do not use the other "Install" options on this menu as they only install Fedora 9 without the olpc scripts. The Anaconda installer will install 537 packages. If it announces it is installing 407 packages, the olpc scripts are missing. Start again.
## "Install using kickstart" is the last menu item. Do not use the other "Install" options on this menu as they only install Fedora 9 without the olpc scripts. The Anaconda installer will install around 546 packages. If it announces it is installing 407 packages, the olpc scripts are missing. Start again.
# '''Note: the default graphical installer can be unstable at times. You can press tab and add 'text' at the end of the line to request the text-based installer.'''
# '''Note: the default graphical installer can be unstable at times. You can press tab and add 'text' at the end of the line to request the text-based installer.'''
# '''If booting from a USB key please note the following!'''
## Before installing 0.5, put the ISO imaged USB key into a normal computer, and edit the ks.cfg file. You'll need to delete "--driveorder=sda" (otherwise the installer will fail, although I am uncertain of why).
## When it asks for the ks.cfg file with "cdrom:/ks.cfg" and replace with "hd:sdb1/ks.cfg" and it'll work fine.
## When it asks what the media to install from is, choose "HD" and then it'll automatically choose /dev/sdb1 and you need to type "iso" into the folder option.
# Anaconda (the Fedora installer) takes over and you will be prompted for the standard questions - these are preset to the correct defaults for the School Server configuration. You will want to set keyboard type, the time zone, and a root password for your specific system.
# Anaconda (the Fedora installer) takes over and you will be prompted for the standard questions - these are preset to the correct defaults for the School Server configuration. You will want to set keyboard type, the time zone, and a root password for your specific system.
## If you are planning to deploy to a large number of XSs, it is easy to modify the Kickstart file to have the whole process run automatically.
# When prompted to add specific packages just leave the default and click next.
# When prompted to add specific packages, just leave the default and click next.
# When it has finished installing, you will be prompted to reboot. Remove the CD-ROM or USB key after power-down, but before the boot process begins.
# When it has finished installing, you will be prompted to reboot. Remove the CD-ROM or USB device after power-down, but before the boot process begins.


You should now have a school server! It needs initial configuration before it starts providing services to the laptops.
You should now have a School Server! It needs initial configuration before it starts providing services to the laptops.


== Initial Configuration ==
== Automating the Install ==


If you want to install XS software using a cobbler-based Installation Server, please see [[XS_Install_Server]].
===Basic ejabberd Configuration===
Login as root, with whatever password you assigned during installation.


== Installing on an XO ==
Right after installation, you '''must'''
* Set the fully qualified hostname of the machine by editing '''/etc/sysconfig/network''' as follows:
'''HOSTNAME=schoolserver.example.org'''
* Set the new hostname as one of ejabberd's hosts with the following line in ejabberd's configuration files ('''/etc/ejabberd/ejabberd.cfg''' and '''/etc/ejabberd/ejabberd-xs.cfg'''):
{hosts, ["schoolserver.example.org"]}.
The default host is generally set as "schoolserver.random.xs.laptop.org". Leaving it as such will disable connectivity to ejabberd's administrative web interface.
* Read the [[#Notes about Hostname|Notes about Hostname]]
* Enable the ejabberd service to automatically start at boot as follows:
chkconfig --level 345 ejabberd on
* Reboot the machine so the hostname change can take effect:
shutdown -r now
* When the machine is back online, log in to the console as root again
* Check the status of ejabberd, which should have started on boot, as follows:
ejabberdctl status
* You should get a report indicating that the node is started and the service is running, like this (If you get an error, see [[#Troubleshooting |Troubleshooting]] for potential help)
Node ejabberd@schoolserver is started. Status: started
ejabberd is running
* Create an account on ejabberd for the administrator account:
ejabberdctl register administrator ''' ''schoolserver.example.org'' ''' password
If the above command fails, you'll have to be more specific in naming the appropriate Jabber node to use:
ejabberdctl --node ejabberd@schoolserver register administrator ''' ''schoolserver.example.org'' ''' password
* You will then have to grant administrative privileges to the new administrator account with the following line:
{acl, admins, {user, "administrator", "schoolserver.example.org"}}.
The above line must also be added to ejabberd's configuration files ('''/etc/ejabberd/ejabberd.cfg''' and '''/etc/ejabberd/ejabberd-xs.cfg''').


If you are wanting to run the XS software on an XO, please see [[XS-on-XO]].
===Setup Shared Roster Groups for ejabberd===
Shared Roster Groups as defined by the [http://www.process-one.net/en/ejabberd/guide_en ejabberd documentation]:


= Initial Configuration =
<blockquote>
".. you can create groups of people that can see members from (other) groups in their rosters. The big advantages of this feature are that end users do not need to manually add all users to their rosters, and that they cannot permanently delete users from the shared roster groups. A shared roster group can have members from any Jabber server, but the presence will only be available from and to members of the same virtual host where the group is created."
</blockquote>


== Setting hostname and domain ==
To setup the needed Shared Roster Group for XS:
Login as root, with whatever password you assigned during installation.
# Go to the web-based administration interface for ejabberd at <tt>http://schoolserver.example.org:5280/admin/</tt>, or <tt>http://172.18.0.1:5280/admin/</tt> (default IP address of XS)
# Login as "administrator@schoolserver.example.org" with the password "password" (the administrator username and password you created in the previous section)
# Click on "Virtual Hosts", then your hostname ('''schoolserver.example.org'''), then "Shared Roster Groups". Type "Online" in the text box at the top of the screen and click '''Add New'''.
# Click on the newly created roster group called "Online" and enter "Online" for Name, "@online@" for Members, and "Online" for Displayed Groups. Click Submit.
## Note: In XS v0.5 and v0.5.1, the @online@ directive does not function properly (see [http://dev.laptop.org/ticket/9272 defect ticket #9272]). A workaround is given in the referenced ticket report, but it has been fixed in XS v0.5.2+.


Right after installation, you '''must'''
===Optional: Enable Squid transparent proxy===
* Set the server domain name (the hostname is always 'schoolserver') using:
/etc/sysconfig/olpc-scripts/domain_config example.org
* Reboot the machine so the hostname change can take effect:
reboot
* Installation and initial configuration are complete!


== What next? ==
The school server is currently using Squid for web caching. This is not enabled by default, but may easily be turned on. As root, type:
[http://dev.laptop.org/git?p=projects/xs-config;a=blob;f=fsroot.olpc.img/etc/sysconfig/olpc-scripts/TURN_SQUID_ON;hb=HEAD /etc/sysconfig/olpc-scripts/TURN_SQUID_ON]


'''Important: Register an XO and visit the Schoolserver'''. You should do this with the XO of a teacher or school principal, as the first XO to visit the Schoolserver will have the "course creator" role. [[XS Techniques and Configuration#Moodle|More about Moodle]]
Change DNS settings in /etc/squid/squid.conf to:
dns_nameservers xx.xx.xx.xx xx.xx.xx.xx ''(local and remote DNS servers)''
All the topics below are discussed in [[XS Techniques and Configuration]]


* Setting a static IP address for eth0, or using something other than eth0 as your WAN port.
If you need to make any modifications to the default Squid configuration make sure you make the modifications to the XS squid.conf file (called squid-xs.conf) not the default squid.conf file. To point to an external proxy server or a content filtering service simply add the following lines, inserting the appropriate proxy name:
* Using specific DNS servers (from your ISP, or from OpenDNS -recommended!)
cache_peer parentcache.foo.com parent 3128 0 no-query default
* You may want to enable the transparent HTTP proxy.
acl all src 0.0.0.0/0.0.0.0
* and more...
never_direct allow all


=Network Configuration Notes=
Then restart Squid (or the server) and test.


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 Access Points (APs) connected to the '''second wired ethernet network interface''' or via the wireless mesh using one or more [[Active Antenna]], connected through USB interfaces.
Note: If user authentication is required for the network through a pop-up browser you may need to use Firefox rather than the default browse activity as it doesn't support popups. Also, if you have a PAC file you need to use you can distribute it by DHCP.


If your XS has 2 network interfaces and you would like to reverse their (WAN, LAN) roles, or if you only have one network interface and would like to swap it's role, you can use the xs-swapnics utility. If you get your WAN via some other interface (e.g., ppp0) then you will want to see the [[XS_Techniques_and_Configuration#Using_a_different_WAN_connection|recipes for WAN connections]].
To disable web caching, type:
[http://dev.laptop.org/git?p=projects/xs-config;a=blob;f=fsroot.olpc.img/etc/sysconfig/olpc-scripts/TURN_SQUID_OFF;hb=HEAD /etc/sysconfig/olpc-scripts/TURN_SQUID_OFF]

This disables caching, but doesn't free up any disk space used by existing cached data. You can manually delete the cache, located at <tt>/library/cache</tt> to free this disk space.

The configuration files for squid are found in <tt>/etc/squid/</tt>. OLPC provides a custom configuration file [http://dev.laptop.org/git?p=projects/xs-config;a=blob;f=fsroot.olpc.img/etc/squid/squid.conf;hb=HEAD /etc/squid/squid.conf] through the xs-config package.

===Network 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 Acceess Points (APs) connected to the '''second wired ethernet network interface''' or via the wireless mesh using one or more [[Active Antenna]], connected through USB interfaces.

If your XS has 2 network interfaces and you would like to reverse their (WAN, LAN) roles you can use the xs-swapnics utility.


IPv6 is not enabled by default and not needed -- to enable external IPv6 you will have to [[XS_Configuration_Management#IPv6|configure the global address of the machine and setup an IPv6 tunnel]].
IPv6 is not enabled by default and not needed -- to enable external IPv6 you will have to [[XS_Configuration_Management#IPv6|configure the global address of the machine and setup an IPv6 tunnel]].


The XS runs a fully-fledged DNS server internally, therefore there is no need to enter the DNS servers from your ISP into the configuration. If you do want the XS to use specific DNSs, see the instructions on [[XS_Techniques_and_Configuration#Use_ISP-provided_DNS_servers|using ISP-provided DNS servers]]
====Configuring A Static IP Address====
To setup your server with a static IP address on the "first wired ethernet network interface" (eth0):
* The following is noted in '''/etc/sysconfig/network-scripts/ifcfg-eth0''':
<blockquote>
“If this is the main or only school server, then eth0 defaults to looking for a DHCP lease – if you want to set a static address, create a file called ifcfg-eth0-local in this directory – look at the example file provided under /usr/share/doc/xs-config-*/ifcfg-eth0-local.example”
</blockquote>
* Edit the sample file '''/usr/share/doc/xs-config-*/ifcfg-eth0-local.example''' with the network configuration your XS server needs, for example:
IPADDR=192.168.12.34
IPV6ADDR=AAAA:BBBB:CCCC:1111:2222:3333/64
NETMASK=255.255.255.0
NETWORK=192.168.12.0
BROADCAST=192.168.12.255
GATEWAY=192.168.12.1
* Save the file as '''/etc/sysconfig/network-scripts/ifcfg-eth0-local'''
* Edit '''/etc/resolv.conf''' to reflect your DNS server and DNS domain suffix. Using our hostname of "schoolserver.example.org" and the network configuration above, here is an example:
search example.org
nameserver 192.168.12.1
* It is quite possible you will also need to edit "/etc/hosts" to map the Jabber server to its new static IP address, with the following line:
192.168.12.1 schoolserver.example.org

===Troubleshooting===

====Notes about Hostname====
For the ejabberd service to run, the name of the ejabberd server (in our case "schoolserver.example.org") must be resolvable to it's IP address (e.g. DNS server alias records). If the ejabberd server name is not resolvable (meaning that it is not yet mapped in '''/etc/resolv.conf''' and/or '''/etc/hosts'''), it will not start and/or will provide some form of error when starting.

In order for ejabberd to run under the right hostname, the user-assigned hostname must be set in ejabberd's configuration files ('''/etc/ejabberd/ejabberd.cfg''' and '''/etc/ejabberd/ejabberd-xs.cfg'''). The automatic (default) hosting command is as follows:
{hosts, ["schoolserver.random.xs.laptop.org"]}.
This line must be either commented out or deleted entirely and replaced with the following:
{hosts, ["schoolserver.example.org"]}.
Leaving the hostname unset as one of ejabberd's hosts will result in disabled connectivity with ejabberd's administrative web interface.

If using a static IP address instead of the default network configuration, this will easily be solved by updating '''/etc/resolv.conf''' with the proper DNS server and domain suffix. However, '''/etc/hosts''' must also have the static IP address mapped to the ejabberd server (i.e. the hostname). See [[#Configuring A Static IP Address|Configuring A Static IP Address]] for instructions to set up a static IP address.

If using the default DHCP setup with no other special configuration, the normal location for specifying DNS server and domain suffix ('''/etc/resolv.conf''') is automatically overwritten by startup scripts. Any changes here will not persist on reboot of the XS machine. The startup scripts do not overwrite '''/etc/resolv.conf''' when there is a '''/etc/sysconfig/network-scripts/ifcfg-eth0-local''' file present (see [[#Configuring A Static IP Address|Configuring A Static IP Address]]), but that would disable DHCP.

====Hostname has been changed after initial configuration====
If you have started '''ejabberd''' at one point on a server, and changed the fully qualified hostname (including domain), you must reinitialize the Mnesia configuration database that '''ejabberd''' uses. This database stores all configuration information as well as user data and more, but this means that the old hostname remains in the database even if you change it in the '''ejabberd''' configuration files. This will cause the '''ejabberd''' server to not run or not run properly when the hostname has been changed.

To change the hostname after '''ejabberd''' has been started initially, use this process:
* Stop ejabberd
ejabberdctl stop
* Update the fully qualified hostname of the machine by editing '''/etc/sysconfig/network''' as follows:
'''HOSTNAME=schoolserver.newdomain.org'''
* Configure ejabberd to use the new hostname by editing '''/etc/ejabberd/ejabberd.cfg''' and update the "hosts" entry in the '''SERVED HOSTNAMES''' section:
{hosts, ["schoolserver.newdomain.org"]}.
* Read the [[#Notes about Hostname|Notes about Hostname]]
* Follow procedure to refresh Mnesia configuration database [[#Reinitialize ejabberd internal configuration database|Reinitialize ejabberd internal configuration database]]
* Reboot machine
* Make sure all DNS settings are correct, as mentioned in [[#Notes about Hostname|Notes about Hostname]], such that the new hostname is resolvable through DNS or other means

====Reinitialize ejabberd internal configuration database====
When using the default setup of XS, '''ejabberd''' uses the internal Mnesia database for, among other things, storing configuration information. When troubleshooting problems with the intial configuration of '''ejabberd''', this simple "refresh" process will clear out the Mnesia configuration database and when ejabberd starts again it will reinitialize the database based on the configuration files.

'''NOTE:''' This process will erase the entirety of ejabberd's Mnesia configuration database, which seems to include all user data. This may take care of the issue preventing ejabberd from running, but it may also be undesireable to lose all user information. It should only be done during the initial configuration of '''ejabberd''' when there are no user accounts added yet.

'''Potential Alternative:''' It may be possible to erase only a few specific spool files in order to allow reinitialization of the configuration information, but that is unknown at this time by this author. Please contribute that information here if you have it.


* Stop ejabberd
ejabberdctl stop
* Empty the '''/var/lib/ejabberd/spool/
rm /var/lib/ejabberd/spool/*
* Start ejabberd
ejabberdctl start


== Access Points ==
== Access Points ==
Line 200: Line 86:


Most access points are compatible with the XO. For a list of ones which have been shown to work see [[Wireless Access Point Compatibility]]. Unless a single access point is being used (not recommended for more than forty to fifty laptops), a network switch of some sort will also be needed.
Most access points are compatible with the XO. For a list of ones which have been shown to work see [[Wireless Access Point Compatibility]]. Unless a single access point is being used (not recommended for more than forty to fifty laptops), a network switch of some sort will also be needed.

Make sure your AP is configured to act as an Access Point, with no added features or smarts. The AP should not be a DHCP server and should not act as a router.

Some tips on configuring APs at [[XS_Techniques_and_Configuration]].


== Active Antennae ==
== Active Antennae ==
Line 206: Line 96:
If you have active antenna(e) to use, simply plug them in and reboot the XS. It will detect them and allocate them to mshbond0, mshbond1 and mshbond2. It should just work and XOs will see "School server mesh" when they connect to the mesh served by the XS. You may need to manually allocate different frequencies per antenna.
If you have active antenna(e) to use, simply plug them in and reboot the XS. It will detect them and allocate them to mshbond0, mshbond1 and mshbond2. It should just work and XOs will see "School server mesh" when they connect to the mesh served by the XS. You may need to manually allocate different frequencies per antenna.


=More configuration options=
==AP Configuration==


For more information on keeping your XS up to date, Internet content filtering, alternative networking/routing setups, and a lot of other advanced configuration topics see [[XS_Techniques_and_Configuration]].
The steps for setting up a wireless router access point vary based on the wireless router being using, but this serves as a rough guide for installation. These steps were run using a Zoom Wireless-G model 4400 router.


=Upgrading=
*Press the reset button on the wireless router to reset it and connect it to any computer. It's possible to do this setup with an XO or any other machine with linux installed.
*Open terminal and type
ifconfig eth0 IPaddress


==Upgrade from XS 0.5 or later==
Where IPaddress is in the same subnet as the default IP for the access point
*Connect to the access point by typing in the IP address in a web browser.
*Login to the access point using the default password (or skip entering a password if none is provided)
*Set the wireless channel to 1, 6 or 11 to minimize interference
*Set a unique name for the wireless network
*Make sure that the access point is NOT running as a DHCP server and it's not running NAT


With the full ISO:
== Recommended Hardware Specifications ==
* The process is similar to a new (anaconda based) installation. Download the iso, and boot it...
A number of computers may act as a school server, but it must be a Fedora-capable computer. Recommended minimum specifications for a school server are as follows:
* In the menu shown right after booting, you choose one of the 'Install or upgrade an existing system'.
* At the 'Install new or upgrade' screen choose upgrade.
* Reboot, and complete the 'steps after upgrade'.


With <code>yum</code>:
<table border='1'>


* Clean yum's caches
<tr>
yum clean all
<th>Server</th>
* Swith to the new repositories
<th>Laptops Supported</th>
rpm -Uvh http://xs-dev.laptop.org/xsrepos/stable/olpc/xs-0.6/i386/xs-release-9-0.4.15.2.ga69303f.noarch.rpm
<th>Processor</th>
* Check that the new repositories have not been installed as "rpmnew":
<th>RAM</th>
ls /etc/yum.repos.d/*rpmnew
<th>Storage</th>
* Run the install!
</tr>
yum update
<tr>
* Reboot, and complete the 'steps after upgrade'.
<td>Small</td>
<td><20-25</td>
<td>466 MHz</td>
<td>1 GB</td>
<td>40-120 GB</td>
</tr>
<tr>
<td>Large</td>
<td><150</td>
<td>1 GHz</td>
<td>1 GB</td>
<td>320-750 GB</td>
</tr>
</table>


Steps after upgrade:
See [[XS Recommended Hardware]] for more information.
* Re-run the /etc/sysconfig/olpc-scripts/domain_config script with the appropriate domain name for the machine.
* Ensure the right Postgres is set to run
chkconfig --level 345 postgresql off
chkconfig --add pgsql-xs


==Upgrade from XS 0.4 or earlier==
== Installing additional software ==

If you wish to install packages that aren't part of the default school server distribution, you should first try using <tt>yum</tt>. 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

=Keeping your XS software up to date=

Upgrading a server is done using the [http://linux.duke.edu/yum/ <tt>yum</tt>] package interface provided by Fedora.

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:

yum -y upgrade

=Upgrading from XS 0.4 or earlier=


If you are upgrading from XS 0.4 or earlier, the process is similar to a new installation, with some minor changes. In the menu shown right after booting, you should choose one of the 'Install or upgrade an existing system' options, press the Tab key, and add 'upgradeany' to the boot configuration line. After adding that line, press enter twice.
If you are upgrading from XS 0.4 or earlier, the process is similar to a new installation, with some minor changes. In the menu shown right after booting, you should choose one of the 'Install or upgrade an existing system' options, press the Tab key, and add 'upgradeany' to the boot configuration line. After adding that line, press enter twice.


With this extra option, Anaconda will recognise the old installation and will offer to upgrade.
With this extra option, Anaconda will recognise the old installation and will offer to upgrade.

Steps after upgrade:
* Re-run the /etc/sysconfig/olpc-scripts/domain_config script with the appropriate domain name for the machine.
* Ensure the right Postgres is set to run
chkconfig --level 345 postgresql off
chkconfig --add pgsql-xs


Notes:
Notes:
* The new OS may detect your network cards differently -- the roles of WAN and LAN cards may end up swapped from what they were under 0.4. If that happens, use the xs-swapnics script and reboot.


= See also =
* Right after the upgrade, you '''must''' re-run the /etc/sysconfig/olpc-scripts/domain_config script with the appropriate domain name for the machine.
* [[XS Techniques and Configuration]]
* The new OS may detect your network cards differently -- the roles of WAN and LAN cards may end up swapped from what they were under 0.4. If that happens, use the xs-swapnics script and reboot.
* [[XS Troubleshooting]]


=Upgrading from XS 0.5 or later=

If you have internet access and you wish to update just the xs-server packages you can use yum:

yum --disablerepo=* --enablerepo=olpcxs update


== See also ==
* [[XS Server Installation]]


[[Category:SchoolServer]]
[[Category:SchoolServer]]

Latest revision as of 21:56, 5 August 2013

  english | españolCopy "{{subst:requesttranslation}}" to 한국어 HowTo [ID# 290708]  +/-  


  This page is monitored by the OLPC team.

This page describes how to obtain a copy of the XS school server software, load it onto media, and install it onto a system.

This page covers XS 0.6 and newer. For older releases, see

Downloading the System Image

You can obtain the latest image from http://xs-dev.laptop.org/xs/:

wget http://dev.laptop.org/xs/OLPC-School-Server-0.6-i386.iso

This can be copied onto a CD or DVD using your favorite software.

You can also install it from USB (warning: unsupported!)

Installing the Software

Please read the release notes for the version you are installing.

The install from a CD or USB storage device will eventually be automatic upon booting. While the install is currently mostly automated (not interactive), it is not performed automatically upon boot.

  1. Boot from the USB device or CD-ROM.
  2. Press enter to start the graphical boot menu.
  3. Select "Install using kickstart" at the initial boot screen.
    1. "Install using kickstart" is the last menu item. Do not use the other "Install" options on this menu as they only install Fedora 9 without the olpc scripts. The Anaconda installer will install around 546 packages. If it announces it is installing 407 packages, the olpc scripts are missing. Start again.
  4. Note: the default graphical installer can be unstable at times. You can press tab and add 'text' at the end of the line to request the text-based installer.
  5. Anaconda (the Fedora installer) takes over and you will be prompted for the standard questions - these are preset to the correct defaults for the School Server configuration. You will want to set keyboard type, the time zone, and a root password for your specific system.
    1. If you are planning to deploy to a large number of XSs, it is easy to modify the Kickstart file to have the whole process run automatically.
  6. When prompted to add specific packages, just leave the default and click next.
  7. When it has finished installing, you will be prompted to reboot. Remove the CD-ROM or USB device after power-down, but before the boot process begins.

You should now have a School Server! It needs initial configuration before it starts providing services to the laptops.

Automating the Install

If you want to install XS software using a cobbler-based Installation Server, please see XS_Install_Server.

Installing on an XO

If you are wanting to run the XS software on an XO, please see XS-on-XO.

Initial Configuration

Setting hostname and domain

Login as root, with whatever password you assigned during installation.

Right after installation, you must

  • Set the server domain name (the hostname is always 'schoolserver') using:
/etc/sysconfig/olpc-scripts/domain_config example.org
  • Reboot the machine so the hostname change can take effect:
reboot
  • Installation and initial configuration are complete!

What next?

Important: Register an XO and visit the Schoolserver. You should do this with the XO of a teacher or school principal, as the first XO to visit the Schoolserver will have the "course creator" role. More about Moodle

All the topics below are discussed in XS Techniques and Configuration

  • Setting a static IP address for eth0, or using something other than eth0 as your WAN port.
  • Using specific DNS servers (from your ISP, or from OpenDNS -recommended!)
  • You may want to enable the transparent HTTP proxy.
  • and more...

Network Configuration Notes

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 Access Points (APs) connected to the second wired ethernet network interface or via the wireless mesh using one or more Active Antenna, connected through USB interfaces.

If your XS has 2 network interfaces and you would like to reverse their (WAN, LAN) roles, or if you only have one network interface and would like to swap it's role, you can use the xs-swapnics utility. If you get your WAN via some other interface (e.g., ppp0) then you will want to see the recipes for WAN connections.

IPv6 is not enabled by default and not needed -- to enable external IPv6 you will have to configure the global address of the machine and setup an IPv6 tunnel.

The XS runs a fully-fledged DNS server internally, therefore there is no need to enter the DNS servers from your ISP into the configuration. If you do want the XS to use specific DNSs, see the instructions on using ISP-provided DNS servers

Access Points

XS Usage APNormal.png

Most access points are compatible with the XO. For a list of ones which have been shown to work see Wireless Access Point Compatibility. Unless a single access point is being used (not recommended for more than forty to fifty laptops), a network switch of some sort will also be needed.

Make sure your AP is configured to act as an Access Point, with no added features or smarts. The AP should not be a DHCP server and should not act as a router.

Some tips on configuring APs at XS_Techniques_and_Configuration.

Active Antennae

Important note: Active Antennae is not supported or available from OLPC at this time

If you have active antenna(e) to use, simply plug them in and reboot the XS. It will detect them and allocate them to mshbond0, mshbond1 and mshbond2. It should just work and XOs will see "School server mesh" when they connect to the mesh served by the XS. You may need to manually allocate different frequencies per antenna.

More configuration options

For more information on keeping your XS up to date, Internet content filtering, alternative networking/routing setups, and a lot of other advanced configuration topics see XS_Techniques_and_Configuration.

Upgrading

Upgrade from XS 0.5 or later

With the full ISO:

  • The process is similar to a new (anaconda based) installation. Download the iso, and boot it...
  • In the menu shown right after booting, you choose one of the 'Install or upgrade an existing system'.
  • At the 'Install new or upgrade' screen choose upgrade.
  • Reboot, and complete the 'steps after upgrade'.

With yum:

  • Clean yum's caches
 yum clean all
  • Swith to the new repositories
 rpm -Uvh http://xs-dev.laptop.org/xsrepos/stable/olpc/xs-0.6/i386/xs-release-9-0.4.15.2.ga69303f.noarch.rpm
  • Check that the new repositories have not been installed as "rpmnew":
 ls /etc/yum.repos.d/*rpmnew
  • Run the install!
 yum update 
  • Reboot, and complete the 'steps after upgrade'.

Steps after upgrade:

  • Re-run the /etc/sysconfig/olpc-scripts/domain_config script with the appropriate domain name for the machine.
  • Ensure the right Postgres is set to run
 chkconfig --level 345 postgresql off
 chkconfig --add pgsql-xs

Upgrade from XS 0.4 or earlier

If you are upgrading from XS 0.4 or earlier, the process is similar to a new installation, with some minor changes. In the menu shown right after booting, you should choose one of the 'Install or upgrade an existing system' options, press the Tab key, and add 'upgradeany' to the boot configuration line. After adding that line, press enter twice.

With this extra option, Anaconda will recognise the old installation and will offer to upgrade.

Steps after upgrade:

  • Re-run the /etc/sysconfig/olpc-scripts/domain_config script with the appropriate domain name for the machine.
  • Ensure the right Postgres is set to run
 chkconfig --level 345 postgresql off
 chkconfig --add pgsql-xs

Notes:

  • The new OS may detect your network cards differently -- the roles of WAN and LAN cards may end up swapped from what they were under 0.4. If that happens, use the xs-swapnics script and reboot.

See also