MarioDebian, mi devlog

Bitácora de un desarrollador newbie.

Italc, ahora si!!!!!
He hablado hace tiempo de la aplicación italc y de sus ventajas e inconvenientes, pues bien, los inconvenientes se han reducido, ya que,cvs ya tiene soporte para redes thin client.

Hace unos días el autor ha subido el código al cvs de sourceforge (0.9.7-pre1) y hoy lo he visto / descargado / compilado y creado los correspondientes paquetes deb (italc-client, italc-server). Dentro de poco los colgaré del mirror.

He hecho las pruebas en nuestro servidor pxes y aunque consume bastante cpu (investigaré como optimizarlo) funciona genial, sólo hay que copiar la clave del usuario que usa el programa de gestión en un /etc/italc-client/public-keys/ y lanzar ivs en cada login de los usuarios. A lo mejor me curro un script bash para hacer esas cosas más sencillas y lo meto dentro del paquete, como he hecho con el lanzador ivs-start.

Cosas por hacer:

  • Necesito que el ivs se lance al inicio de sesión del usuario y que se abra en un puerto que sea 5900 más los ultimos números de la ip, eso ya lo tengo hecho pero lo que necesito realmente es que el proceso se lance como root y no como usuario, ya que si el usuario hace un killall ivs, se jodió el verle la pantalla. He aquí el código lanzador:
    #!/bin/sh

    host=$(echo $DISPLAY| awk -F ":" '{print $1}')

    # resolve ip
    ip=$(cat /etc/hosts |grep $host|awk '{print $1}')


    # calculate port
    port=$(echo $ip| awk -F "." '{print $4}')
    port=$((5900 + $port))


    # launch ivs
    ivs -noshm -rfbport $port

    Si tenemos un usuario con un $DISPLAY MAGNA25:0.0 es porque el hostname es MAGNA25 y la ip de ese hostname la hemos declarado en el /etc/host, tomamos la terminación 192.168.0.25 y le sumamos 5900 (5925). El problema es que en kdm o xdm si se lanza en el Xstartup se lanza como root con el $DISPLAY del user pero en gdm no encuentro la manera :( . Ya se que tiene un bug y es que la ip 192.168.0.100 no es válida porque le puerto 6000 lo usa el XDCMP (las conocidas X).

  • Necesito regenerar las imágenes de arranque de pxes para copiar la clave SSH en la home de root del terminal ligero y así podría usar los comandos de reiniciar y apagar terminal u otros como lanzar sonido o montar el disco duro o el cdrom de cada terminal. Quizás en el mismo script que hablaba antes también se pueda hacer.
Todos los que tengais una red PXES a vuestro cargo y querais monitorizar lo que hace la gente (supongo que hay que poner un cartel avisando de los que se está haciendo) o un profesor que quiera dar clase distribuida (permite tomar el control de cada alumno o realizar tareas para todos como lanzar una aplicación) pues que lo pruebe y me cuente. Mandaré un mail al autor para decirle que funciona casi todo menos la aplicación que toma el control de los clientes en pantalla completa que no se conecta al puerto y tampoco funciona la traducción.





El nuevo calzador funciona en debian.
Después de probar guadalinex he descargado el nuevo calzador del svn y he preparado una minidistro para probarlo.

He generado e instalado los paquetes:

genlive (SVN)
initramfs-tools (SVN)

busybox-cvs-initramfs (paquete de ubuntu al que he quitado algunas dependencias molestas para poder instalarlo en debian)

Si alguien quiere hacer pruebas se pueden descargar desde:

http://idefix.eup.uva.es/metadistros


Una vez instalados he ido a /media/distro/

y he ejecutado:

debootstrap testing /media/distro/sources http://localhost/mirror/debian

Esto me ha instalado el sistema base, después he entrado en chroot y he instalado lo siguiente:
# chroot /media/distro/sources
# mount /proc
# dpkg-reconfigure -a (esto reconfigura todos los paquetes instalados)
# apt-get install locales
# apt-get update
# apt-get install x-window-system gnome-core gnome-bin gdm

Tenía un paquete deb con un kernel parcheado con squashfs unionfs bootsplash y supermount => kernel-image-2.6.14-meta

Los parches, kernel y demás se puede descargar desde:

http://soleup.eup.uva.es/soleupix

Lo he instalado con dpkg pero como lo generé con --initrd intenta crear la imagen y no puede al no encontrar primero un generador de imágenes (luego instale yaird) y después al no encontrar la partición /boot en el fstab/mounts del chroot...

No hay mucho problema ya que se puede destripar el deb y modificar el postinst para que no genere initrd....

A continuación he instalado el mismo paquete en la distro huésped (mi portatil con debian sid) y he eliminado las entradas de grub que me ha hecho ya que no quiero usar ese kernel. El motivo de instalarlo en la distro huésped es porque mkinitramfs necesita los módulos para generar la imagen de arranque.

He hecho un backup del contenido de isolinux y he puesto el antiguo gfxgrub (bootlogo, isolinux.cfg, message, isolinux.bin)

Antes de generar la meta y la iso he editado /usr/sbin/genlive para que no copiase de nuevo el isolinux de guadalinex, y para que usase el kernel 2.6.14-meta

He editado isolinux.cfg para que tenga los mismos parámetros que el isolinux.cfg de guadalinex.

He generado la imagen squash y la iso con genlive a secas.

Durante la creación del initramfs (lo que es ahora el calzador) obtengo algunos errores:

cpio: ./sbin/udev: No such file or directory
cpio: ./sbin/mdadm: No such file or directory
cpio: ./sbin/mdrun: No such file or directory
cpio: ./sbin/vgchange: No such file or directory

Los tres últimos son debidos a que no tengo instalados los paquetes de RAID ni LVM, no me preocupa, el primero me preocupa más ya que intenta copiar /sbin/udev y en mi sistema (debian unstable, udev-0.074-2 ) no existe ningún binario con ese nombre.

¿Para qué versión de udev está pensado el calzador? El udev de debian hace los papeles de hotplug.


Al poco tiempo tenía una iso de 172 megas en /media/distro/isos

La arranco con qemu (con el acelerador) y a toda leche arranca pero no carga las X :( para más inri salé el mensaje de error de que no ha podido arrancar las X pero no responde al teclado.

Edito /media/distro/sources/etc/init.d/gdm y meto un exit al principio del archivo para que al menos me deje en la shell.

Después de mirar en /dev no hay /dev/psaux ni /dev/input/mice y supongo que es por eso por lo que no quieren arrancar las X.

Instalo discover borro el META.squash y vuelvo a ejecutar genlive.

Esta vez si que se crean los dispositivos y puedo entrar en gnome con un startx.

Problemas encontrados:

* sudo da error referente al hostname (uname to lookup via gethostname() )

hostname devuelve una cadena vacía y en /ect/hosts no hay ningún nombre de máquina (se ve un tabulador antes de donde debería ir el nombre)

Supongo que hay una variable que initramfs no está procesando correctamente $hostname:

en el código del initramfs-tools => live_scripts/live-bottom/hwdetect

veo lo siguiente:

# Setup the hostname
hostname=$(grep ID /etc/lsb-release | cut -d "=" -f 2 | tr -s [:upper:] [:lower:])

En mi distro no hay ningún archivo llamado /etc/lsb-release

¿De donde sale?
¿Que debiera contener?

* El dhclient se ejecuta en primer plano y en un equipo que no tenga red obliga a pulsar Ctrl + C o esperar el timeout....

¿No se puede ejecutar en segundo plano? ¿O lo lanza /etc/init.d/networking start?

* Al no usar el isolinux de guadalinex no tengo la configuración de locales en español.

¿Cómo indicar en el cmdline que arranque con las locales y el teclado en español?

si ejecuto locale salen en POSIX la mayoria.

* Se hecha de menos un script (tipo hacks.sh) donde poder meter los scripts de cada distro, no he investigado mucho por el calzador pero no debería ser muy dificil crear un script que se ejecute en S90 por ejemplo con las cosas que cada uno hace a sus distros como configurar la home a partir de un skel o poner iconos personalizados.


Creo no haber encontrado más fallos, tampoco me ha dado mucho tiempo a ver nada más, tengo que decir que unionfs funciona de maravilla (lo he probado con apt) y la carga es rapidísima comparada con otros livecd.

En vmware las X arrancan apenas en 30-40 segundos después de arrancar.




El futuro de metadistros y de muchos livecds se escribe en castellano
Desde la lista de correo de metadistros se avanzó hace tiempo la reestructuración de un nuevo calzador (sistema que prepara el equipo en ram para después ejecutar un sistema operativo desde un cd), esperaba grandes cambios pero tengo que decir que me ha sorprendido muchisimo.

La nueva guadalinex, a la que quedan pocos días por salir, estará basada en ubuntu y tendrá herramientas propias que harán que ubuntu se realimente de guadalinex y metadistros, lo mismo que metadistros y guadalinex lo hacen ahora con ubuntu. El nexo de unión es gran parte Juan Jesús Ojeda «juanje» metadistrosexual que en su momento organizó y desarrollo los principios de metadistros y ahora colabora con ubuntu y guadalinex.

Han desarrollado el calzador desde cero y basado en initramfs, ¿y qué narices es esto? pues es un microlinux que se ejecuta en memoria ram, monta el cdrom y el sistema huésped del cd, configura el equipo anfitrión (carga módulos de dispositivos, arranca servicios, configura el entorno...) hasta aqui no hay mucha novedad, la novedad reside en que no hay ningún archivo a parte del initramfs, es un archivo que además está comprimido con gzip por lo que el tamaño es bastante pequeño para todo lo que tiene:

# mv initramfs initramfs.gz
# gunzip initramfs
# mkdir tmp && cd tmp && cpio -i < ../initramfs
# ls
bin conf etc init lib modules sbin scripts usr

Vemos que tiene directorios con binarios (sobre busybox), archivos de configuración, reglas de udev, _todos_ los módulos del kernel, scripts de autoconfiguración y alguna librería (usplash...)

¿Cómo funciona? Pues por lo poco que he investigado, lo que hace es montar el cdrom buscar el archivo META.squash (sistema ubuntu comprimido con squashfs), montarlo y ejecuta una lista de scripts para escanear las particiones de nuestro disco y construir un fstab, detecta el hardware y carga los módulos necesarios, crea un usuario «live», activa el gestor de RAID y volúmenes lógicos, y configura Xorg mediante debconf (bastante más fiable, mantenible y sencillo que el anterior x-detect.sh). Esos script digamos que no se ejecutan sino se guardan en el /etc/rc2.d/ del sistema huésped para depués cuando arranca de verdad ejecutarse.

Me parece una forma muy elegante de replantear metadistros, ya que con la última versión y un kernel 2.4 no se podían hacer más cosas... eso si funciona muy bien, todo hay que decirlo.

Pues el nuevo sistema live de metadistros rebautizado a «Ubuntu Beloz Zero» se está empezando a estudiar como futura implementación de la próxima Ubuntu que saldrá allá para abril, cuyo nombre clave será «Dapper», más concrétamente para el livecd, incluso se ha estudiado la posibilidad de cambiar la forma de live/install cd a ubuntu/kubuntu, ámbos live con un instalador, que también están desarrollando desde guadalinex: Ubuntu-Express.

Este nuevo instalador hecho en python también me ha sorprendido bastante, a diferencia de todos los que he visto para linux se ejecuta a pantalla completa y básicamente lo único que pide es el nombre, la contraseña y como/donde quieres instalar guadalinex. He probado con instalación automática y me ha creado en un disco de 8Gb sin particionar una partición de un poco más de 2 Gb (hda5) y otra de 500 megas (hda7) y una swap de 200 megas (hda6) dentro todo de una extendida. Yo no hubiera elegido esos valores, pero bueno... "todavía es una beta". Es bastante rápido y en un pc medianamente nuevo se puede arrancar con el cd e instalar guadalinex en 10 minutos. Además ha sabido tomar las cosas que hacen la vida más fácil ya que mientras se instala salen varios pantallazos de un guadalinex y sus programas, con esa pequeña intro creo que cualquiera sabría defenderse los primeros minutos en frente de su primer linux. Microsoft intento ese mismo espacio para hacerse autobombo y decir que su SO es el mejor, pero creo que no se lo acaba de creer mucha gente.

Para terminar del tema de guadalinex animo a todo el mundo a probar la nueva beta:

http://www.guadalinex.org/modules/news/article.php?storyid=145


Mirrors de descarga:

- Un CD Live para probar sin necesidad de instalar (aunque incluye un potente y sencillo instalador gráfico, completamente nuevo)

ftp://ftp.cica.es/guadalinex/descargas/iso/guadalinex_v3_live_beta1.iso
ftp://ftp.rediris.es/mirror/guadalinex/descargas/iso/guadalinex_v3_live_beta1.iso

- Un CD de instalación no Live, para instalar directamente en el disco duro

ftp://ftp.cica.es/guadalinex/descargas/iso/guadalinex_v3_beta1.iso
ftp://ftp.rediris.es/mirror/guadalinex/descargas/iso/guadalinex_v3_beta1.iso


Usad rediris que sobra ancho de banda.

Otros enlaces:

https://wiki.ubuntu.com/SimplifiedLiveCD


https://wiki.ubuntu.com/UbuntuExpress

Me gusta mucho debian pero hay que reconocer que ubuntu está haciendo las cosas mejor. Hablando de debian he comprado el DVD de sarge de doble capa que venía hoy con el Mundo, lo que no he podido librarme es de comprar el periodico que no pienso leer.

El DVD está bastante «tunao» ya que incluye parte del systemrescue. Me ha hecho gracia que se incluya el programa para borrar el pasword de windows (ntpass) en el cd :P Lo que no me ha hecho mucha gracia es que no se incluya ni un simple trozo de papel explicando que es linux en lenguaje un poco entendible. Espero que al menos alguien se lea (aunque sea por encima) el manual de la instalación que viene en html dentro (se autoejecuta un index.html en los windows) No creo que nadie que no haya usado linux alguna vez se atreba a instalarlo. Como diría un windosero en las revistas regalan muchos virus....