jueves, 21 de diciembre de 2006

Actualización de NetBSD en Jornada 690

¡Hola a todos!

Estreno la bitácora con una pequeño recordatorio de cómo hay que actualizar la NetBSD que tenía instalada en mi HP Jornada 690e. Otro día cuento cómo llegó a mis manos :)

Para empezar, lo primero que hice fue hacer una copia de seguridad de lo que ya tenía instalado. La instalación la había hecho sobre una tarjeta Compact Flash de 512 Mbytes, así que utilizando un lector de tarjetas, desde mi ArchLinux ejecuto el siguiente comando:

lysandra# dd if=/dev/sda of=/ruta/del/backup/netbsd_jornada690_512M.dd

y luego comprimo la imagen con bzip2 (usando KDE, para no complicarme la vida :) También, por si las moscas, me copié los archivos de la partición fat de la tarjeta CF (simplemente montar la partición sda1 desde la línea de comandos y copiar el contenido por ahí).

Para la siguiente parte, la actualización del SO propiamente dicha, se necesita una NetBSD. En tiempos la tuve instalada pero ya no, así que utilicé el un live cd para i386 que sacaron hace poco (se puede descargar de ftp.netbsd.org, no es complicado encontrarlo y ahora mismo no tengo el enlace a mano). La NetBSD es necesaria porque el soporte de lectura/escritura de sistemas de archivos UFS en Linux está aun un poco verde, al parecer, aunque la verdad es que no lo he probado.

Así pues, reiniciamos con el Live CD de la NetBSD y tras configurar la red y lo que nos vaya pidiendo, y después de enchufar el lector de tarjetas, procedemos a la actualización.

Como ya comenté anteriormente, ya tenía instalada una NetBSD (ya ni me acuerdo la versión, la instalé lo menos hace más de un año) pero tenía algunos pequeños problemillas como que la consola era inusable por el contraste de los colores. Creo recordar que tampoco llegué a instalar ningún paquete de los disponibles. Así que, como realmente no había nada que guardar, formateé la partición UFS y volqué de nuevo el contenido de los sets. Por si acaso, antes del formateo hice una copia de seguridad del contenido de etc en la CF:

lysandra# mkdir /mnt/ufs
lysandra# mount -o softdep /dev/sd0a /mnt/ufs
lysandra# tar cf etc.tar /mnt/ufs/etc/
lysandra# umount /mnt/ufs


Después monté la partición de nuevo y procedí a descomprimir los sets:

lysandra# mount -o softdep /dev/sd0a /mnt/ufs
lysandra# tar -x -p -z -f /ruta/archivos/netbsd/binary/sets/base.tgz -C /mnt/ufs/
lysandra# tar -x -p -z -f /ruta/archivos/netbsd/binary/sets/etc.tgz -C /mnt/ufs/
lysandra# tar -x -p -z -f /ruta/archivos/netbsd/binary/sets/misc.tgz -C /mnt/ufs/
lysandra# tar -x -p -z -f /ruta/archivos/netbsd/binary/sets/text.tgz -C /mnt/ufs/
lysandra# tar -x -p -z -f /ruta/archivos/netbsd/binary/sets/kern-GENERIC.tgz -C /mnt/ufs/
lysandra# df
Filesystem 1K-blocks Used Avail Capacity Mounted on
root_device 716904 716904 0 100% /
[...]
/dev/sd0a 471887 90742 357551 20% /mnt/ufs
[...]


lysandra# tar -x -p -z -f /ruta/archivos/netbsd/binary/sets/man.tgz -C /mnt/ufs/
lysandra# df
Filesystem 1K-blocks Used Avail Capacity Mounted on
[...]
/dev/sd0a 471887 123523 324770 27% /mnt/ufs
[...]


lysandra# tar -x -p -z -f /ruta/archivos/netbsd/binary/sets/comp.tgz -C /mnt/ufs/
lysandra# df
Filesystem 1K-blocks Used Avail Capacity Mounted on
[...]
/dev/sd0a 471887 205104 243189 45% /mnt/ufs
[...]


lysandra# tar -x -p -z -f /ruta/archivos/netbsd/binary/sets/xbase.tgz -C /mnt/ufs/
lysandra# tar -x -p -z -f /ruta/archivos/netbsd/binary/sets/xetc.tgz -C /mnt/ufs/
lysandra# tar -x -p -z -f /ruta/archivos/netbsd/binary/sets/xfont.tgz -C /mnt/ufs/
lysandra# tar -x -p -z -f /ruta/archivos/netbsd/binary/sets/xserver.tgz -C /mnt/ufs/
lysandra# df
Filesystem 1K-blocks Used Avail Capacity Mounted on
[...]
/dev/sd0a 471887 272887 175406 60% /mnt/ufs
[...]

lysandra# tar -x -p -z -f /ruta/archivos/netbsd/binary/sets/xcomp.tgz -C /mnt/ufs/
lysandra# df
Filesystem 1K-blocks Used Avail Capacity Mounted on
[...]
/dev/sd0a 471887 312276 136017 69% /mnt/ufs
[...]


Hago unas pausas de vez en cuando para ver el nivel de ocupación de la tarjeta. Si no se instalan las X, 256 Mbytes podrían ser más que suficientes, así que quizás haga más adelante una nueva reinstalación en una tarjeta más pequeña que la actual.

Unos últimos detalles sobre ficheros de la partición UFS:

lysandra# cd /mnt/ufs/
lysandra# mkdir cf
lysandra# cd /mnt/ufs/etc
lysandra# rm localtime
lysandra# ln ../usr/share/zoneinfo/Europe/Madrid localtime
lysandra# vi fstab
/dev/wd0a / ffs rw,noatime,nodevtime 1 1
/dev/wd0e /cf msdos -l,rw 0 0
lysandra# touch rc.conf
rc_configured=YES
hostname="jornada"
critical_filesystems_local="/cf $critical_filesystems_local"
no_swap=YES
savecore=NO
lysandra# cd /mnt/ufs/dev
lysandra# sh ./MAKEDEV all
./MAKEDEV: ses0: unknown device
./MAKEDEV: ses1: unknown device
./MAKEDEV: ses2: unknown device
./MAKEDEV: ses3: unknown device


Tan solo quedan un par de retoques:

lysandra# mkdir /mnt/fat
lysandra# mount -o -l /dev/sd0e /mnt/fat
lysandra# tar -x -p -z -f /ruta/archivos/netbsd/binary/sets/kern-GENERIC.tgz -C /mnt/fat/
lysandra# cp /ruta/archivos/netbsd/installation/hpcboot-sh3.exe /mnt/fat/hpcboot.exe


Y en principio nada más. Sólo reiniciar y ver si funciona :)

PoLiTvS

P.D. Queda pendiente publicar alguna fotillo del cacharro :) y detallar algunas opciones de configuración posteriores

Bibliografía: NetBSD And Handheld Platforms, de Valeriy Ushakov y Alistair Crooks (http://2004.eurobsdcon.org/uploads/media/EBSD04_37.pdf)