Chamilo and OLPC


The One Laptop Per Child project is a non-profit project that has the objective of putting technology in the hands of every child in the world.

The One Laptop Per Child reaches (or attempts to reach) this goal by providing a cheap (and arguably revolutionary) laptop (or netbook-size computer) that can be used by children in remote areas. This computer is called the "XO".

The "XO" computer already has two versions released (1.0 and 1.5) which differ in color and in technical characteristics. A version 2.0 is on its way as per this writing, which is more like a tablet.

To increase the availability of these computers, the XO have been made available at a low price (initially thought to be possible at $100/laptop, but ending costing $180/laptop due to a series of unplanned competency efforts which made governments retract from their engagement to buy specific quantities of the laptop).

The logic of propagation of the project is that it would only be available to buy by governments, so the project could focus on children and not be distracted by one-to-one sales. A series of opportunities have been generated for particulars to buy the laptop (buy one, give one) at double price, but these have been reduced in opportunities.


Sugar is the graphical interface of the XO. Initially, it was just this, but it slowly started to enter the oprating system domain (hacks proper to the hardware). The operating system itself is a RedHat Fedora 4.1 (from 2005) which has been upgraded to a kernel 2.6.18 (see Fedora on Wikipedia for more info).

Sugar Network

The Sugar Network is a relatively new (as of this writing) project to develop applications which behave in a decentralized manner and allow for connected and disconnected way of using it (when disconnected, it works as an asynchronous network and stores data locally until the XO can be connected).

The Sugar Network presents a series of new resources that have to be defined...

Contexts, activities and projects, resources

In the Sugar Network, a context is a topic about which someone can talk, or which someone can use.

An activity is a context that can be executed (an executable application).

A project is a context that can be viewed (documents, information) but not executed.

A resource is part of a context (be it activity or project). There are 6 resources for each context:
  • Preguntas
  • ...
  • ...
  • Reseña
  • ...
  • ...
A resource can be of several types:
  • pregunta
  • respuesta
  • comentario
  • ...


One of the most important aspect of the Sugar Network is that you can provide feedback on each resource. This feedback can return to an (hypothetical) Sugar Network.


Another important aspect of the Sugar Network is that you can get badges when you contribute (you ask, you answer, etc).

OLPC and Moodle

For the same reasons that make Moodle much more reknown than Chamilo, the first LMS to get an integration to the OLPC project was Moodle.
See references here:

The best way to get more information is probably to ask on the #sugar IRC channel (freenode)

OLPC and Chamilo

The interaction between Chamilo and OLPC started as an interest from Yannick Warnier and a casual encounter between him and Sebastian Silva, Sugar developer, in Lima in 2008. This lead to the official subscription of Dokeos Latinoamérica (at the time the name of Yannick's company in Peru, now renamed BeezNest Latino) to the OLPC project.
See references here:

When Yannick launched the Chamilo project because of a considerable moral disagreements with Dokeos, he took the participation in OLPC with him and followed the tracks of the regular contribution to the OLPC project.

Through a series of efforts, the Chamilo project now ensures:

Current ongoing projects

XS server hack

Just as Moodle can be used with a Single Sign On method from an XO, Chamilo is developing a project to allow for this same method from Chamilo LMS.

Apparently, the Moodle mod for the XS implements two features:

Showing in XO neighborhood

Showing its presence in the XO neighborhood by connecting to th XS Jabber server (which is done through a call to the ejabberdctl command on the command line (see the moodle/lib/ejabberdctl.php script).
This features seems actually more specific (and maybe not what we understand here - search "presencebycourse" in the Moodle code). It seems like this is linked in a way that will allow the XO laptop to reduce the visibility of other XO's in the neighborhood view to only those users which are in the same course in Moodle.
Most of this feature is implemented with some ejabberdctl magic in auth/olpcxs/auth.php.

Single Sign On

Allowing for Single Sign On through the use of a (so-far unknown) hack of the authentication system.
Apparently (following admin/antitheft.php), this uses the user.auth field and identifies users through user.auth='olpcxs' and'olpcxs_alias', and data sent in POST, which include (not only) $_POST['serialnum'] (we will have to identify how this parameter can be sent by the laptops).

Using the serial number of each XO is a reliable method to avoid manual login+password sending between the XO and the XS. However, in the real-life scenario, Peru only has around one laptop for every 5 children, so they have to pass it on from one to another, so this serial number shouldn't be used as an authentication (furthermore, it is quite insecure as it is if the only criteria is this number).

The code for the specific authentication mechanism seems to be located in auth/olpcxs/auth.php (and could probably be developed a a specific sso extended class in Chamilo).


An extra feature that we will probably not need at first is the antitheft feature. It seems that it would allow to an admin to prevent access to the Moodle instance on the XS when the laptop connecting has been reported as stolen. This is stored in a separate table in Moodle.

Antitheft features in the overall OLPC project so far have proven vastly useless (not because they are not working, but because there is very little theft) and in one case (Peru) they have proven counter-productive: preventing the teachers to update laptops for which the national Ministry of Education has failed to provide better updated images.

OLPC Perú Squid config

Chamilo LMS 1.9 includes a plugin which allows a teachers to modify the Squid (proxy) configuration on a XS server through simple web updates.

Sugar Network

The Chamilo team intends at providing a way to synchronize students tracking data between remote Chamilo installations (on XOs) and a central server.

Updated by Yannick Warnier over 10 years ago · 13 revisions