Archive for 26 agosto 2009

Autoradio comprado. Donaciones necesitadas. Super Grub2 Disk 1.21 disponible.

agosto 26, 2009

He conseguido comprar un autorradio: Kenwood KDC-BT6544U con parte del dinero de las donaciones del Super Grub Disk. Desafortunadamente tuve que usar algún dinero de las donaciones‘ para otros gastos relaciones con el software libre como la cuenta del servidor de páginas web. Esto quiere decir que las donaciones son aún bienvenidas.
Otra noticia es que he desarrollado la versión 1.21 de Super Grub Disk que.ahora se basa en grub2. Ahora es algo alpha pero funciona.
Hay una opción de la que querría recibir retroalimentación que se llama AUTO MAGIC BOOT. AUTO MAGIC BOOT añade al menú actual las entradas de Linux que encuentra de tal manera que puedas arrancar aunque no tengas cargador de arranque instalado en tu distribución.
Actualmente Super Grub Disk 1.21 sólo se encuentra en el Mirror #0. El código fuente para la versión 1.21 se corresponde a la revisión 8 del svn de berlios (En el mirror #0 lo encontrarás).
Finalmente he decidido no sacar ninguna versión de Super Grub Disk basado en Grub legacy pero puede que saque una última con la actualización en francés y puede que corrija un error con selecthd en las versiones de disquete. Pero no estoy muy seguro de ello.
Casi me olvido, Super Grub Disk está basado en Grub2 y diseñado como una paquete de Debian y, cuándo esté listo, lo propondré para ser incluido en Debian, y supongo, que tarde o temprando también se encontrará en Ubuntu.
adrian15

Kenwood KDC-BT6544U desafortunadamente no tiene soporte de ogg vorbis. No fui capaz de encontrar ningún autorradio en España que lo soportase. En realidad había uno de los supermercados Lidl el año pasado pero se vendió en menos de un día y no conseguí uno.

Ejecutar aplicaciones de Ubuntu desde Debian

agosto 25, 2009

Actualización: 27 Mayo 2012 . Aplico formato a la entrada para que se lea mejor.

Después de tanto probar distribuciones, y por motivos del Super Grub Disk (estoy haciendo un paquete)
estoy casi decidido a pasarme a Debian.
De hecho en mi menú multiarranque esta es la opción de arranque por defecto: Debian.
En mi portátil aún conservo Ubuntu 9.04 (que era mi sistema principal hasta ahora) y
tengo también Ubuntu 9.10 que tenía para unas pruebas.
El tema es que quiero escribir mis posts del blog con kblogger, y por lo visto aún no hay paquete oficial
de kblogger en Debian. Podría buscar un paquete no oficial del Kblogger y eso pero, qué demonios, esta manera
de funcionar me servirá para muchos otros paquetes y le dará un poco de vida a mi Ubuntu 9.04.
Este howto está basado en este:
http://www.debian-administration.org/articles/356
No se trata de ejecutar aplicaciones de 32 bits en sistemas de 64 bits porque en mi caso ambos sistemas
son de 32 bits porque no me gusta privarme de ningún software.
Pues nada, espero que sea la última vez que uso el kwrite para escribir estos posts.

1.- Preparación del chroot

Este paso suele consistir en hacer un deboostrap y demás cosas para preparar el sistema dónde hacer el chroot.
Yo ya tengo mi Ubuntu que funciona muy bien y con el Kblogger ya instalado. Así pues este paso consistirá en
averiguar en qué partición tenemos el sistema raíz del Ubuntu y decidir dónde lo queremos montar.
Yo tengo mi Ubuntu 9.04 en /dev/sda2 y quiero montarlo en /mnt/ubuntu904.
Así que creo el directorio:

 sudo mkdir /mnt/ubuntu904

A continuación lo voy a montar por defecto en /mnt/ubuntu904. Para ello añado la siguiente linea
al fstab. Para que se ejecute de forma inmediata ejecuto: mount -a después de la edición del fstab.

 /dev/sda2 /mnt/ubuntu904 ext3 defaults 0 3

2.- Librerias

Este paso yo nunca lo hacía de forma manual y los programas del chroot funcionaban.
Ahora justo después de probar el howto y reiniciar he visto que mi Kde4 no llegaba a arrancar bien.
Así que al no ser que tengais un sistema amd64 y el del chroot sea de 32 bits os aconsejo que paséis al punto siguiente.
Se trata de que nuestro sistema al ejecutar el programa si no encuentra las
librerias que necesita en nuestro debian las pueda encontrar en las rutas de las librerias asociadas a su sistema.
Así que editamos el fichero /etc/ld.so.conf y añadimos las siguientes lineas:

 # chroot Ubuntu system libs
 /mnt/ubuntu904/lib
 /mnt/ubuntu904/usr/lib
 /mnt/ubuntu904/usr/X11R6/lib
 /mnt/ubuntu904/usr/local/lib

En este paso aconsejaban hacer:

 cd /lib
 ln -s /mnt/ubuntu904/lib/ld-linux.so.2 ld-linux.so.2

pero yo ya tengo un ld-linux.so.2 en mi Debian (porque, claro, ya es de 32 bits).
Así que omitiremos crear este enlace.
Y ejecutamos: ldconfig como root para actualizar las referencias a las librerias
que habíamos editado en /etc/ld.so.conf.

3.- Montar el resto del sistema

Para que los programas del Ubuntu se encuentren a gusto necesitaremos proporcionarles
algo del sistema de nuestro Debian: La partición /home si queremos que escriban ahí (yo sí),
la partición temporal (dónde encontrarán ficheros relativos a las Xorg y algunas cosas más),
/proc y /dev (por si necesitan acceder a los dispositivos reales que ha detectado el Debian).
Veamos qué lineas hemos de añadir al fstab:

 # Ubuntu 9.04 chroot
 /home /mnt/ubuntu904/home none bind 0 0
 /tmp /mnt/ubuntu904/tmp none bind 0 0
 /proc /mnt/ubuntu904/proc proc defaults 0 0
 /dev /mnt/ubuntu904/dev none bind 0 0

A continuación hacemos mount -a para que ya las tengamos montadas.
Recordaremos lo que decía el howto original. Si uno hace un borrado recursivo de /mnt/ubuntu904 por la razón
que fuera, gracias al bind del home, oh, sorpresa!, borraría su /home. Así que mejor ni pensarlo. En todo caso
probar con rmdir. Rmdir sólo borra los directorios cuándo están vacios, en nuestro caso sería
cuando estuviera desmontado.

4. Mejorar el Ubuntu.

Este paso es opcional. Si quisieramos instalar algún paquete extra en el Ubuntu o cualquier cosa
podríamos hacer

 chroot /mnt/ubuntu904

y podríamos trabajar como si hubieramos arrancado con el Ubuntu 9.04 (a excepción del entorno gráfico,
aunque también se puede levantar aúnque no es motivo de este howto).
De hecho para ir bien los usuarios, grupos y demás deberían ser iguales. A mí me da igual porque siempre en Ubuntu
y en Debian creo mi usuario el primero y siempre consigue uid 1000 y gid 1000. Si estuvieramos hablando
de algún paquete que hiciera de servidor habría que mirar este punto con más detenimiento.
Quizás para el caso de un paquete servidor, como indican en el howto original habría que copiar /etc/passwd,
/etc/shadow, /etc/hosts y /etc/group pero yo no lo haré como ya he indicado antés.

5. Hacer funcionar la aplicación de forma transparente.

Esta es la parte que más me gusta porque yo normalmente hago las cosas más a mano y me gustaría,
esta vez, hacerlo de forma elegante.

5.1. Primero instalamos dchroot

 apt-get install dchroot

5.2. Editamos /etc/dchroot.conf (En mi caso tuve que crearlo)

 # Ubuntu 9.04 chroot
 ubuntu904 /mnt/ubuntu904

5.3. Probamos la aplicación chroot.

 dchroot -c ubuntu904 -d kblogger

Oh! Funciona!

5.4. Añadimos un wrapper para facilitar la llamada del programa.

Es decir, poder llamarlo por su nombre directamente.
El script se llamará do_chroot y se guardará en /usr/local/bin.
Para que se pueda ejecutar le damos permisos 755.

 chmod 755 /usr/local/bin/do_chroot

 #!/bin/sh
 ARGS=""
 for i in "$@" ; do
 ARGS="$ARGS '$i'"
 done
 exec dchroot -c ubuntu904 -d -q "`basename $0`" "$ARGS"

5.5. Finalmente tendremos que crear un enlace simbólico con el nombre del programa.

Con el nombre del programa que queremos llamar que apunte al do_chroot dentro del mismo /usr/local/bin/do_chroot.

 cd /usr/local/bin
 ln -s do_chroot kblogger

6. Si ejecutamos kblogger ahora debería arrancarnos.

Quedaría añadirlo al menú de Kde, Gnome u otro… pero eso ya no es motivo de este howto.