Descrubriendo la XO/OLPC

Junio 29, 2009

Como lo he mencionado antes, Dokeos Latinoamérica acaba de recibir un prestamo de 6 XO para el desarrollo de un proyecto de integración Dokeos-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 Dokeos

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://www.dokeos.com/download/dokeos-1.8.6.tar.gz

bash-3.2# tar zxf dokeos-1.8.6.tar.gz

Considerando que en general la XO se usa en primarias, es muy poco probable que se use más de 2 o 3 idiomas. En sí, todas los demás idiomas pueden ser eliminadas, borrando la carpeta correspondiente y las entradas de lenguajes en el fichero dokeos-1.8.6/main/install/dokeos_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 dokeos_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 Dokeos 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/dokeos-1.8.6/ 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 Dokeos como una “actividad” de Sugar, para que “compartir” sea en realidad iniciando una conexión a través del navegador de Sugar al servidor Dokeos del otro lado

OLPC despidiendo desarrolladores

Enero 18, 2009

En un correo público bastante personal a la lista OLPC-SUR (proyecto OLPC para Sur-América), Greg Smith, uno de los desarrolladores a tiempo completo del proyecto OLPC, anunció que muchos (en fin parece que todos) de los desarrolladores permanentes del proyecto fueron despedidos, por razones de que el dinero invertido por grandes empresas en el proyecto fue cortado por la crisis financiera.

Esto quiere decir que, supuestamente, el desarrollo de nuevos aplicativos o de otras versiones del Sugar (la interfaz gráfica) de la OLPC va a depender enteramente de la comunidad ahora. Conociendo personalmente el tema de desarrollo informatico educacional en la comunidad (las personas involucradas no son técnicos generalmente, son pedagogos), para mi esto es muy mala noticia. Espero que la crisis acabe pronto…

Tal vez es el buen momento para Dokeos para entrar en este tema, pero ahora estamos muy cortos en tiempo para involucrarnos ahí.