Debian 12 en un Asus Eee-PC

Optimizando la instalación del sistema para un viejo mini-portátil.

JavGuerra,

Screenshot

Debian 12 es la última versión que se distribuirá para 32 bits. Otras distros antes han dejado de dar soporte a esta arquitectura, prevaleciendo la más actual de 64 bits. Lamentablemente, esta decisión afectará a otras distribuciones que dependen de Debian. Quise ir a la distro de referencia para actualizar mi vieja Asus Eee-PC 901 a la última versión posible, y extender un poco más su vida útil. Estos son los pasos que seguí para hacerlo.

Este artículo complementa al que escribí sobre cómo reviví mi mini-portátil retro para emulación en este blog. Mi objetivo sigue siendo el mismo: tener un sistema manejable para emulación de mis sistemas retro.

El lector debe tener conocimiento de Linux y su shell.

La imagen iso

Después de un rato navegando, conseguí encontrar la imagen debian-12.13.0-i386-netinst.iso para la arquitectura de 32 bits en el repositorio CD image de Debian GNU/Linux. Si lees esta entrada más adelante en el tiempo, navega por su árbol de directorios para encontrar la versión 12 más reciente.

Desde mi Linux Mint grabé en un pendrive la imagen iso con la aplicación “Grabador de imágenes USB”, y la puse en el USB de mi Eee-PC.

Me aseguré de que la BIOS, a la que accedí con F2, estaba bien configurada. y seguidamente inicié el ordenador pulsando ESC para seleccionar el dispositivo de arranque USB donde está la imagen de instalación, y elegí la instalación gráfica.

El particionado

Llega uno de los momentos de mayor interés. Como ya mencioné en el anterior artículo, el mini PC cuenta con dos discos SSD, que he decidido particionar de la siguiente forma:

SSD1: 4GB
- Partición / 4GB
SSD2: 16GB
- Partición /usr 8GB
- Partición /home 7GB
- Swap de disco 1GB

En cada partición he marcado la opción noatime para evitar los continuos accesos a los discos. trim, que instala el sistema, se encargará de mantener los discos limpios por mi.

La idea es aprovechar al máximo el hardware disponible. El sistema raíz / se instalará en el primer SSD, que es más rápido, y /usr tendrá más espacio en el segundo SSD. Esta partición es la que suele crecer más, pues en ella se instala casi todo: ejecutables, librerías, fuentes… Con esta medida, nuestro sistema tendrá un total de 12Gb de espacio en disco, y espacio suficiente para crecer en el futuro.

Pero esto tiene un inconveniente, el espacio para la partición /home se reduce, teniendo disponible sólo 7Gb para el usuario (o sea, yo). Con una microSD de 16Gb tendré lo que necesito: espacio para el almacenamiento de los programas y archivos de emulación y un dispositivo estraible para llevar y traer desde otros ordenadores. Con ello, el espacio de 7Gb se quedará para el almacenamiento general y los ficheros de trabajo, como documentos de texto en edición…

Como amplié la memoria del ordenador, me puedo permitir usar zram para aligerar las lecturas y escrituras al swap de disco. Aún así he dejado 1Gb para esa partición, aunque seguramente no se usará. Mejor prevenir.

zram también tiene un inconveniente. Adios a la hibernación. Como zram está en memoria, y la hibernación funciona apagando el equipo, al arrancar de nuevo la RAM habrá desaparecido, y con ella los datos que se guardaron antes de la hibernación. Un mal menor si lo que se busca es agilizar el cuello de botella de acceso al disco.

Después del particionado, una vez guardados los cambios, se instalará el sistema base.

Terminando la instalación

Al llegar a tasksel, la parte de la instalación donde se seleccionan los programas, dejé sólo Utilidades estándar del sistema marcado, desmarcando todo lo demás. Luego haré la instalación manual, y de esta forma podré controlar qué cosas instalo, optimizando mejor el espacio de disco.

Tras terminar la instalación y reiniciar, acceso a mi cuenta y escalo privilegios con su -. Con su se accede al root, pero se mantiene el PATH del usuario original, pero con su y un guión se cambia a root y se carga el entorno completo de root, incluyendo /sbin y /usr/sbin en el PATH, lo que permitirá usar los comandos del sistema.

Una vez que tengo el sistema instalado y funcionando, voy a comprobar que, efectivamente, trim está funcionando. Esto lo hago como root.

systemctl status fstrim.timer

Si aparece como active (waiting), ya está todo listo. Este servicio ejecutará fstrim semanalmente sin que tú tengas que hacer nada más.

El siguiente paso es instalar zram. Para ello:

apt install zram-tools

y edito el fichero de configuración:

nano /etc/default/zramswap

añadiendo el siguiente contenido:

# Activar el servicio
ENABLED=true

# Usar el 50% de tu RAM (2GB * 0.5 = 1GB de swap comprimido)
PERCENT=50

# Usar el algoritmo de compresión más moderno y eficiente
ALGO=zstd

# Dar prioridad alta (para que se use antes que el swap en disco)
PRIORITY=100

Seguidamente, recargo y reinicio el servicio:

systemctl restart zramswap.service
systemctl enable zramswap.service
cat /proc/swaps

Con enable se activa zram para cada arranque del sistema.

Esto dará 1Gb de ram comprimida que será más rápido que usar el swap, como ya he dicho.

Un tip

Debian instala muchos paquetes recomendados de Xfce por defecto.

Si quisiera evitarlo, una vez instalado eñ sistema base, y antes de instalar Xfce, crearía un fichero de configuración en:

nano /etc/apt/apt.conf.d/99synaptic

Con el contenido:

APT::Install-Recommends "false";
APT::Install-Suggests "false";

En mi caso, decidí no configurarlo de esta manera, pues esto también tiene ventajas e inconvenientes. Usarlo puede traer problemas, debiendo conocer muy bien qué dependencias instalar y cuales no, pero a cambio dará un mayor control a la hora de reducir el espacio de instalación.

Ahora hago el primer reinicio.

Instalar Xfce

Para la instalación manual de Xfce voy a necesitar:

Como administrador, ejecuto:

apt install xorg xserver-xorg-video-intel xfce4 xfce4-goodies lightdm

y así tendré instalados los paquetes en el equipo, debiendo reiniciar tras ello.

Para terminar con la instalación, simplemente:

apt clean

para limpiar la caché de paquetes del sistema.

Tras la instalación

Toca ya instalar los programas que usaré en el sistema, como por ejemplo la selección de un navegador lo suficientemente actualizado y liviano como para que no me de problemas en esta máquina.

En su momento elegí Midori, pero este ha cambiado su base y es un poco más pesado. Decidí probar Falkon, que aunque tiene dependencias de las librerías Qt, su peso y características pueden ser aceptables.

No olvido algunas instalaciones necesarias, como la configuración para Bluetooth, o el Wifi o el firewall.

apt install ufw gufw

apt install bluetooth blueman
systemctl restart bluetooth

apt install network-manager-gnome
systemctl enable --now NetworkManager

Toca reiniciar otra vez.

No olvides entrar en gufw y seleccionar el perfil Casa, que habilitará:

Incoming: Deny
Outgoing: Allow

para parar el acceso desde el exterior pero te permitirá salir a Internet.

Bonus: Instalar OpenJDK 11 JRE

Debian 12 no tiene, entre sus repositorios, la versión 11 de OpenJDK, y por eso no se puede instalar con Apt. Esto es un problema, ya que quiero usar esta versión específica del jre para ejecutar un emulador concreto, SMSQmulator preparado para esa versión.

Pero Java 11 (de 32 bits) si está en los repositorios de Debian 11. Lo que necesito es un procedimiento que, de forma controlada y segura, permita a Debian 12 (Bookworm) instalar el paquete openjdk-11-jre que proviene de Debian 11 (Bullseye).

Este “FrankenDebian”, como se conoce en la comunidad a estos casos, mezcla paquetes de diferentes versiones del sistema, lo cual no es recomendado para uso general, porque puede causar inestabilidad si no se gestiona con mucho cuidado. La clave está en usar el sistema de prioridades de apt para asegurarme de que Debian 12 predomine y sólo recurra a los repositorios de Debian 11 para instalar Java 11 y sus dependencias, sin permitir que actualice nada más.

Pasos para instalar OpenJDK 11 JRE desde Debian 11 en Debian 12

El objetivo es añadir el repositorio de Debian 11 (Bullseye) pero con una prioridad tan baja que solo se use cuando se le indique explícitamente.

Estos comandos deben ejecutarse con permisos de administrador.

  1. Crear el archivo de configuración para el repositorio de Debian 11 (Bullseye).

    nano /etc/apt/sources.list.d/debian-bullseye.list

    Pego el siguiente contenido en el archivo. Esto añade los repositorios principales de Bullseye, incluyendo el de seguridad.

    deb http://deb.debian.org/debian bullseye main
    deb http://security.debian.org/debian-security bullseye-security main
    deb http://deb.debian.org/debian bullseye-updates main
  2. Crear el archivo de preferencias de apt para establecer prioridades.

    Este es el paso más crítico para evitar que el sistema se descontrole. Creo y edito el archivo de preferencias.

    nano /etc/apt/preferences.d/debian-bullseye

    Añado el siguiente contenido.

    Package: *
    Pin: release n=bookworm
    Pin-Priority: 900
    
    Package: *
    Pin: release n=bullseye
    Pin-Priority: 100

    Esto establece una jerarquía clara:

    • Prioridad 900 para el sistema actual (Debian 12 Bookworm, que ahora es oldstable). Cualquier paquete disponible aquí tendrá preferencia absoluta.
    • Prioridad 100 para el repositorio de Debian 11 (Bullseye). Esta prioridad es tan baja que apt nunca instalará ni actualizará nada desde Bullseye a menos que se lo pida explícitamente y el paquete no exista en absoluto en el sistema base.

    Como Debian 12 será la última versión de 32 bits de esta distro, puedo indicar sus nombres de repositorio con la certeza de que las versiones no serán actualizadas. De otra forma debería referirme a ellas como stable y oldstable respectivamente.

  3. ¡Instalar OpenJDK 11 JRE!

    Ahora, actualizo el índice de paquetes para que el sistema reconozca el nuevo repositorio y sus prioridades.

    apt update

    ejecuto el comando de instalación. Gracias a las prioridades configuradas, apt buscará openjdk-11-jre (que no existe en Bookworm) y lo encontrará en el repositorio de Bullseye, instalándolo desde allí.

    apt install openjdk-11-jre

    Revisando la salida del comando se verá que el paquete se instala desde la rama bullseye. apt también se encargará de instalar las dependencias necesarias desde el mismo repositorio, si es preciso.

    Una vez terminado, compruebo que Java se ha instalado correctamente y, lo más importante, que es la versión de 32 bits.

    java -version

    Veo una salida similar a openjdk version "11.0.30" ... (el número de versión específico puede variar). En sistemas de 32 bits, la salida no suele mencionar “32-Bit”, pero la ausencia de “64-Bit” es una buena señal.

Notas:

Y ya está todo. A partir de aquí las preferencias de cada usuario mandan.

Alternativa a Debian 12

El usuario desing, del foro sobre Sinclair QL TheQLForum, me hace la siguiente recomendación: Kanotix, página de descargas.

La principal ventaja de Kanotix es que existe una edición específica eeepc4G para los mini pc de Asus que viene pre-ajustada y optimizada de fábrica para que todo el hardware (WiFi, sonido, cámara, atajos de teclado) funcione sin esfuerzo (“plug and play”). Al estar basada en Debian, es estable y ligera, y su instalador permite además un particionado manual flexible para aprovechar al máximo el limitado espacio de los SSD.

Puede descargarse la iso kanotix32-towelfire-nightly-eeepc4G.iso y probarse en modo Live antes de instalarla.

Enlaces

Comentarios

← Volver