MarioDebian, mi devlog

Bitácora de un desarrollador newbie.

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.

Articulos relacionados:

Comentarios

  1. miguev ¿Dónde está el SVN?
    25/11/2005 | 17:20

    Hola. Antes que nada: gracias por anotar todo esto :-)
    Llevo un rato buscando el SVN de genlive y no lo encuentro, ni tampoco el de Metadistros... ¿dónde están?
    Sólo encontré esto:
    http://ws314.juntadeandalucia.es/guadalinex2005/
    Tienen el genlive y el initramfs-tools, pero no sé si es el de Guadalinex o el de Metadistros.

  2. mariodebian Re: ¿Dónde está el SVN?
    28/11/2005 | 16:16

    De momento he colgado los paquetes deb de las 3 cosas que se necesitan en:

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

    Según vayan saliendo nuevas versiones iré creando nuevos directorios con el número de versión.

    Estoy trabajando en portar initramfs-tools (0.40) de debian sid/testing para que funcione con metadistros pero varias cosas de udev han cambiado (udevstart udevsynthethize, así que de momento lo más sencillo es trabajar sobre ubuntu.

    Saludos

  3. ALF hostname
    14/09/2006 | 18:00

    el archivo lsb-release es un archivo de texto que contiene lo siguiente:

    DISTRIB_ID=Ubuntu
    DISTRIB_RELEASE=6.06
    DISTRIB_CODENAME=dapper
    DISTRIB_DESCRIPTION="Ubuntu 6.06.1 LTS"

    Nada mas ni nada menos que eso.

    Si es necesario tambien crea otro archivo (en el mismo lugar) con el nombre de "hostname" este archivo tiene el nombre de la maquina y nada mas, por ejemplo:

    alf-ubuntu

    asi tal cual esta.

    espero que te sirva

    --

    ALF

  4. mariodebian Re hostname
    14/09/2006 | 18:40

    Hola LAF.

    hace ya bastante de este hilo, gracias por las aclaraciones, pero este hilo habla de debian y no de ubuntu y en debian sigue sin existir el archivo en cuestion (/etc/lsb-release).

    De todos modos todo esto lo tengo ya arreglado en las nuevas versiones del calzador.

    Nuevamente gracias por las molestias.

  5. ALF Calzador
    14/09/2006 | 21:07

    Utilizaste el calzador de guadalinex para soleupix.

    yo lo utilize para una metadistro armada por mi llamada ALFrix.

    pero en mi caso, hay un problema que no pude arreglar.
    se trata de la orden de reinicio, por algun motivo al terminar de cerrar los procesos,queda donde esta y muestra un mensaje "system halted"

    no reinicia

    que puede ser? o donde puedo conseguir este calzador arreglado?

    --

    ALF

  6. mariodebian Re: calzador
    15/09/2006 | 11:14

    Seguramente no tengas instalados los paquetes del acpi (apci, acpid, etc...)

    INstalalos y prueba de nuevo.

Comentarios cerrados