MarioDebian, mi devlog

Bitácora de un desarrollador newbie.

TCOS en Ubuntu Lucid 10.04, the perfect setup

Ya tenemos un artículo para instalar y configurar TCOS en Ubuntu 9.04 Jaunty, ahora voy a dar unos pequeños trucos para instalarlo en Lucid.

 

  1. Instalar Ubuntu 10.04 Lucid (quizás sirva para otras *buntu), yo lo he probado con Ubuntu y GNOME.
  2. Añadir el siguiente repositorio:

    deb http://tcosproject.org lucid main
  3. El repositorio está firmado con mi clave GPG por lo que cuando actualicemos nos dará un error, para añadir la clave se puede instalar el paquete tcos-keyring 
  4. Luego instalamos el paquete tcos.
  5. Actualizar el paquete GDM, en el repositorio de TCOs está disponible la versión 2.30.2.is.2.30.2-0ubuntu1.lucid.tcos2 que tiene unas ligeras mejoras con respecto al que trae Ubuntu:

    - Desactivado IPV6 - desgraciadamente las nuevas versiones del gdm lo traen activado por defecto y XDMCP no funciona
    Parche para la inicialización del buffer XdmcpFill()
    Parche para el TimedLogin remoto
    - Otras pequeñas mejoras

  6. Lanzar el configurador de servidor desde el menú Administración o ejecutar: sudo tcos-configurator



  7. En la primera pestaña configurar el interfaz de red que atenderá a los terminales ligeros y el rango DHCP.
  8. En la segunda pestaña añadir usuarios (si se quiere que funcione el autologin usar el mismo prefijo que los nombres de equipo)



  9. En la tercera pestaña activar la entrada remota de GDM y opcionalmente el timeout y autologin



  10. En la cuarta pestaña lanzar Tcosconfig
  11. Seleccionar la plantilla tcos.conf.all y dar siguiente hasta la parte de construcción de la imagen, pulsar el botón contruir y cuando termine guardar.



  12. A continuación unos pequeños trucos para evitar problemas
 
Desactivar Multicast DNS, se edita /etc/nsswitch.conf y se cambia la línea:
 
hosts:          files mdns4_minimal [NOTFOUND=return] dns mdns4
 
por
 
hosts:          files dns

(esto desactiva los servicios AVAHI que no son imprescindibles y que aumentan mucho los timeouts de login de GDM o incluso SSH)

 

Verificar el correcto funcionamiento de los DNS, lo recomendable es desinstalar network-manager y configurar una IP fija en /etc/network/interfaces (de hecho el configurador del servidor de TCOS debería haberlo hecho ya).

Comprobar que la primera línea de /etc/resolv.conf es la IP interna de nuestro servidor

Comprobar que en /etc/resolv.conf.real tenemos los DNS de nuestro proveedor de internet o en su defecto unos que funcionen.

Comprobaremos que el archivo /etc/gdm/custom.conf tiene este aspecto:

[xdmcp]

Enable=true

MaxPending=60

MaxWaitIndirect=80

MaxWait=75

PingIntervalSeconds=35

MaxPendingIndirect=30

MaxSessions=40

DisplaysPerHost=4

[daemon]

TimedLogin=/usr/sbin/tcos-gdm-autologin --local=usuario-que-usara-el-servidor|

TimedLoginEnable=true

TimedLoginDelay=1

[security]

AllowRemoteAutoLogin=true

 
Podemos activar el debug en GDM (clave [debug]Enable=True ) y ver el syslog mientras los equipos intentan cargar por red.
 
Si hemos seguido todos los pasos con total exactitud tendremos un servidor TCOS funcionando en menos de media hora (contando la instalación de Ubuntu)




Sobre Xorg, HAL y TCOS

En las nuevas versiones de Xorg se usa (por defecto, pero menos mal que optativamente) HAL como descubridor de hardware y encargado de configurar teclados, ratones y demas dispositivos... de hecho no es necesario ni tener archivo xorg.conf como ya se contó por aquí.

TCOS nació ligero y quiere seguir siéndolo y es por eso que no se va a incluir HAL en las imágenes de arranque por lo que lo he desactivado ya hace unos días.

Pero lo cosa no es tan sencilla como añadir esa línea, estamos montando un aula (para un cole de primaria) con 18 terminales ligeros (equipos reciclados) y más bien por probar y dejar algo un poco chulo, decidí instalar el servidor con la última versión estable de Ubuntu (Jaunty 9.04) ¡¡¡ CRASO ERROR !!!

En Ubuntu 9.04 han querido adelantarse al futuro y han metido el nuevo driver de Intel (DRI2) pero más bien con la intención de que todos lo que usan Ubuntu sean su gran grupo de beta-testers de algo que da problemas [1], [2] y [3] (317 bugs abiertos para un driver no es moco de pavo), y para colmo de todos los males el driver VESA no funciona con tarjetas INTEL.

Es casi imposible hacer un archivo xorg.conf con el mapa de teclado y el servidor de fuentes (para TCOS) y que autodetecte todo lo demás, así que hemos reculado y puesto una Debian Lenny (como ya tienen en el mismo colegio en otro aula)

El rendimiento y la estabilidad de los terminales en Lenny es millones de veces superior, incluso permite jugar a juegos educativos (tipo tuxmath, childsplay, gcompris....), glxgears (esa herramienta que __NO__ sirve para calcular el rendimiento gráfico) da casi 500 FPS y eso que las X van por red.

RESUMIENDO: Si quieres un aula de terminales ligeros con TCOS usa una versión anterior de Ubuntu (Hardy/8.04 parece que va bien) o pásate a Debian.





Posicionamiento web de TCOS

Revisando estadísticas de la web de TCOS, me he llevado una grata sorpresa:

debian thin client [en google]

Esto me anima aún mas para seguir con el trabajo de subirlo a Debian... ya he solucionado muchos problemas y espero que en breve pueda estar listo.Tengo varios contactos con DD así que no creo que esta vez tenga problemas para que alguien esponsorice el paquete.





Qué pequeño es el mundo.

Uno (que humildemente aún se cree desarrollador newbie) programa cuatro líneas (para más "inri", aprendiedo a programar mientras tecleaba) y de casualidad va viendo pedacitos de su código en otros proyectos...

 

¿En esto consiste el Software Libre no? Cool

Este Makefile [baifox] se parece mucho a éste [tcosphpmonitor].

Pero ya la prueba irrefutable: debian/postrm [baifox] debian/postrm[tcosphpmonitor]

 





El xorg.conf más pequeño que hayas visto nunca

Hoy me ha dado por actualizar a la última versión de Xorg en Debian SID (1:7.4+1) y como ya había visto por el planet las quejas de la gente, estaba avisado que ahora HAL es el que configura en caliente las Xorg. Copia de seguridad de xorg.conf (por si las moscas) y dpkg-reconfigure xserver-xorg. He añadido a mano la línea del driver nvidia aunque no estoy seguro si hace falta.

$ grep -v -e ^$ -e ^# /etc/X11/xorg.conf
Section "Device"
Identifier	"Configured Video Device"
Driver		"nvidia"
EndSection

Reinicio y a pesar de parpadear un par de veces las X cargan y el monitor externo parece que lo reconoce y consigo configurarlo como extendido sin mucho problema.

Desde Octubre tengo un ratón Logitech Laser y la rueda tiene la función de botones laterales, en mi anterior xorg.conf tuve que hacer malabarismos para configurarlo como ratón de 7 botones, ahora con ayuda de xbindkeys funciona sin tocar nada:

$ grep -v -e ^# -e ^$ ~/.xbindkeysrc 
"xbindkeys_show" 
control+shift + q
"/usr/bin/xvkbd -xsendevent -text "\C\[Prior]""
m:0x0 + b:6
"/usr/bin/xvkbd -xsendevent -text "\C\[Next]""
m:0x0 + b:7

Con esta configuración puedo cambiar de pestaña del navegador o la consola de una manera super cómoda.

Ya para terminar último truco "GRATIX", mi portatil da 1680x1050 de resolución y hace unos meses me compré otro monitor (LG de 22") para trabajar con escritorio extendido (3360x1050).

Al usar el driver de NVidia estas obligado a usar su interfaz gráfico «nvidia-settings» y son un montón de clicks para configurarlo, en Launchpad he encontrado un proyecto super interesante: disper, son unos binding en python para que ataque a las libs de nvidia o a xrand y poder cambiar resolución mediante atajos de teclado, scripts o usandolos en otros programas...

Me he hecho un script y con un botón en el panel lo llamo:

#!/bin/sh
cd /home/mario/sources/disper/disper
RES=$(/usr/lib/tcos/screensize)
if [ "$RES" = "1680x1050" ]; then
# extend if CRT-0 is connected
python src/cli.py --list| grep -q "CRT-0" && python src/cli.py --extend
elif [ "$RES" = "3360x1050" ]; then
python src/cli.py --single
else
zenity --error --text="NVidia extend resolución desconocida ($RES)"
fi

Básicamente lo que hace es detectar la resolución actual y si es 1680x1050 y detecta el monitor CRT-0 la cambia a extendida (3360x1050), si ya está extendida la pone en simple deshabilitando el monitor externo. Si esto lo añadimos a un atajo de teclado tipo Fn+F6 ya tenemos el conector desconector de proyectores.

Por hoy nada más, voy a investigar como le sienta a TCOS el cambio de Xorg.





Creando comunidad

Desde hace unos días tenemos un mejor control del DNS de tcosproject.org lo que nos ha ayudado a montar:

Todos los que useis o hableis de TCOS en vuestro blog os animo a participar.



Nuevo juguete: gnome-pulse-applet

Hace poco he descubierto una aplicación simple pero la mar de útil (sobre todo en ambientes donde se usa PulseAudio por defecto como TCOS o LTSP)

 

 

Se trata de gnome-pulse-applet, un applet de GNOME que (o bien en horizontal o vertical) muestra los controles individuales por cada aplicación que reproduzca sonido mediante PulseAudio.

Los paquetes disponibles en su web no funcionan en Debian (ya he avisado dle bug) y de paso he estado modificándolo para que se pueda lanzar como aplicación independiente de GNOME en la bandeja del sistema.

Quizás haga un ITP para subirlo a Debian ya que he hecho los paquetes. (y compilado para todos los Debian y Ubuntu)

Voy a probar si detecta bien el servidor desde un terminal ligero...





Debian Lenny ya está aquí

Esta vez no se ha hecho esperar demasiado. Felicidades (y gracias) a todos los que han contribuido.

Por lo que me toca, estoy haciendo limpieza en el repositorio de TCOS y compilando nuevos paquetes. De momento falta alguno para Lenny, espero que entre hoy y mañana tenga casi todo listo.

Los próximos días en unstable van a ser moviditos (Gnome 2.24, Xorg 1.5...) «agarraos que vienen curvas».





¿Quién usa tu software?

Esta pregunta en la mayoría de las ocasiones es demasiado dificil de contestar...

Ejemplos puedo poner miles, si nos ponernos a contar los usuarios LTSP a nivel mundial, no me creo que sólo se use en 61 sitios.

En TCOS tampoco es que haya muchos, en concreto 7, si bien esto es más dejadez mía y del que lo instala, no es un buen contador.

He intentado probar otras formas, contando las descargas, pero eso ahora no es demasiado exacto y más si contamos que se puede descargar el repositorio y usarlo para instalaciones locales (con mi repo personal habré instalado más de 20 servidores).

Así que a riesgo de que me tachen de intrusor y visto que otros proyectos lo hacen ( [1] [2] ), he pedido opinión en la lista de TCOS, para añadir el código necesario para generar un registro de instalaciones un poco más completo. El script PHP que guarda los datos también es público.

Debian usa popularity-contest, y pregunta si activarlo como último paso de la instalación. Me parece demasiado jaleo programar algo con Debconf para algo tan simple, en un futuro si esto crece ya veremos.

PD.- Me encanta git, y la facilidad para trabajar en «branches», mezclar código... etc..





Parser RSS para proyectos GIT

Hace poco hemos migrado a GIT y como no me acababa de convencer gitweb he instalado cgit [CGIT en TCOS], que es mucho más rápido y personalizable... pero tiene una pequeña falta, no genera feeds RSS.

Para no oxidarme con Python me he puesto a mezclar unos cuantos paquetes [python-git, python-feedparser y python-pyrss2gen] y he hecho: git2rss.py la ventaja sobre otros proyectos es que es multirepositorio, necesitamos pasar la raíz de nuestras carpetas git y el las recorre toma los últimos cambios (5 por proyecto) y ordena en un feed resumen (de 20 elementos). El resultado se imprime en stdout por lo que en el cron es tan simple como poner:

*/30 *  * * *   usuario /ruta/a/git2rss.py > /dir/salida/rss.xml 2>/logs/tcos.git.log 

El nuevo feed (que se genera cada media hora) se puede obtener desde:

http://tcosproject.org/cgit/tcos.git.xml  (RSS 2.0)

Dentro de cada elemento (realmente son commits) se encuentra un pequeño resumen, autor, descripción y el diff. De esta forma podemos estar informados de los cambios que se van haciendo.

Subscribiros !!!!





1 2 3 4 5 6 7 8 9 10 11  Siguiente»