Descrubriendo la XO/OLPC

Como lo he mencionado antes, D0keos Latinoamérica acaba de recibir un prestamo de 6 XO para el desarrollo de un proyecto de integración D0keos-OLPC. Este articulo es el reporte de lo que estoy descubriendo, para que sirva a los demás.

Las XO corren Fedora

[olpc@xo-4B-D2-A3 ~]$ cat /etc/redhat-release OLPC release 9 (Joyride) [olpc@xo-4B-D2-A3 ~]$ uname -a Linux xo-4B-D2-A3.localdomain 2.6.25-20090223.1.olpc.69098d87d56945c #1 PREEMPT Mon Feb 23 13:37:03 EST 2009 i586 i586 i386 GNU/Linux [olpc@xo-4B-D2-A3 ~]$ cat /proc/version Linux version 2.6.25-20090223.1.olpc.69098d87d56945c (dilinger@fc6.laptop.org) (gcc version 4.1.2 20070925 (Red Hat 4.1.2-27)) #1 PREEMPT Mon Feb 23 13:37:03 EST 2009

Se puede instalar nuevo software con yum

No conozco muy bien a Fedora, así que pensaba que iba a tener que encontrar mis propios paquetes con rpmfind, pero parece que yum lo hace todo. En el caso de querer instalar a Apache:
yum search httpd yum install httpd.i386
Parece que esto se conecta a los repositorios de laptop.org, para recojer los paquetes correctos (y sus dependencias) directamente. Indican en el wiki.laptop.org que se puede tambien poner los paquetes necesarios en una llave USB.

Solo 1GB de disco

Bueno, no sabía mucho sobre las XO. Pues aparece que tienen una memoria (tarjeta Flash?) de 1GB, y que la mitad ya está usada por el sistema pre-instalado, dejando menos de 500MB para trabajar.

Configurar idioma

Cambiar el idioma del sistema (que por defecto viene en Inglés) es super sencillo. Dar clic derecho en el símbolo XO, escoger "Configuration panel" y después "Languages". Ahí, seleccionar (en nuestro caso) Spanish (Peru). Se necesita reiniciar para tomar estos cambios en cuenta.

Conectarse a distancia con SSH

Aquí empiezan las cosas un poco más técnicas, digamos. Aunque el servidor openssh esté pre-instalado, es necesario cambiar la contraseña del usuario "olpc", que por defecto usa una contraseña no válida "!!", a algo que usted va a recordar. El hecho de tener una contraseña invalida, en sí, permite deshabilitar la conexión a distancia a través de SSH (osea... es seguro), por lo que darle una contraseña debería ser con una contraseña no fácil de averiguar, porque ahí usted esta dando la posibilidad a cualquier persona de conectarse a su laptop, y desde ahí la persona puede pasar como root y hacer lo que quiere.
[olpc@xo-4B-D2-A3 ~]$ su bash-3.2# passwd olpc Cambio de contraseña para el usuario olpc. Nueva contraseña UNIX :
Bueno, una vez cambiada la contraseña, lo único que tiene que hacer es averiguar la dirección IP de la laptop para conectarse a ella:
bash-3.2# /sbin/ifconfig |grep "inet adr" inet adr:192.168.1.104  Bcast:192.168.1.255  Masque:255.255.255.0 inet adr:127.0.0.1  Masque:255.0.0.0
En este caso, 192.168.1.104. Entonces, desde otra maquina, puede conectarse con:
$ ssh olpc@192.168.1.104

Nombre único para cada XO

Parece que cada XO tiene un nombre único: cuando uno hace un cat /etc/hosts, aparece un número de tipo xo-4B-D2-A3 o xo-4C-3C-36, que parece ser el nombre único de la máquina.

Problema con los símbolos backticks (`) de MySQL

Parece que hay un problema con el backtick de MySQL en línea de comando, que tiene la mala implicación de no poder crear un usuario específico para Dokeos... (más sobre esto más tarde)

Instalación de Chamilo

La instalación de Dokeos se puede hacer de la manera siguiente (como root o usando sudo)
bash-3.2# yum install httpd.i386 php.i386 mysql.i386 mysql-server.i386 php-mysql.i386 php-mbstring.i386 php-gd.i386 bash-3.2# cd /var/www/html/ bash-3.2# mysql_secure_installation bash-3.2# wget http://chamilo.googlecode.com/files/chamilo-1.8.8.4.tar.gz bash-3.2# tar zxf chamilo-1.8.8.4.tar.gz
Considerando que en general la XO se usa en primarias, es muy poco probable que se use más de dos o tres idiomas. En sí, todas los demás idiomas pueden ser eliminadas, borrando la carpeta correspondiente y las entradas de lenguajes en el fichero chamilo-1.8.8.4/main/install/main.sql
bash-3.2# cd main/lang bash-3.2# rm -rf french_unicode swahili yoruba hebrew ...... bash-3.2# cd ../install bash-3.2# vi main.sql (ahí, buscar "swahili" por ejemplo y eliminar todos los idiomas que fueron eliminados por carpeta)
Opcionalmente, para definir un nombre de host (recomendamos aquí usar el nombre del usuario de la máquina), se tiene que definir un VirtualHost en la configuración de Apache, y definir este nombre en el /etc/hosts
bash-3.2# vi /etc/httpd/conf/httpd.conf bash-3.2# vi /etc/hosts bash-3.2# /etc/init.d/mysqld start
Por alguna razón, parece que MySQL no puede iniciarse bastante rápido para su propio plazo de inicio ("Timeout error occurred trying to start MySQL Daemon"). El problema viene del script de inicio (/etc/init.d/mysqld) y no directamente de MySQL (aunque el problema que demore mucho en cargar, sí). Para actualizarlo, solo se tiene que editar el fichero
bash-3.2# vi /etc/init.d/mysqld
y mirar para una variable STARTTIMEOUT que tiene un valor de 30, y ponerla a 120. Esto podría ayudar, o no. En mi caso, estoy todavía en este problema, investigando, porque si MySQL no funciona, va a ser muy difícil de integrar Chamilo a una OLPC (tal vez usando SQLite?).
bash-3.2# /etc/init.d/httpd start
Ignorando el problema de creación de un nuevo usuario (no está bien eso pero en ausencia de mejor forma...), se puede dirigir el navegador (o lynx pero se tiene que instalar primero) al http://localhost/chamilo-1.8.8.4/ para instalar Dokeos. Por supuesto, hay mejores formas de hacerlo (más limpias), pero por ahora no es el objetivo. Esto no funciona todavía (conexión denegada). Estaremos actualizando esta documentación dentro de poco.

No determinado

Todavia tengo que encontrar
  • como conocer la dirección IP de otro XO cerca (a partir de su nombre en el mapa)
  • como instalar un servidor Chamilo como una "actividad" de Sugar, para que "compartir" sea en realidad iniciando una conexión a través del navegador de Sugar al servidor Chamilo del otro lado