Cómo crear tu propio sistema operativo libre

Esta vez te explicaremos paso a paso cómo modificar/personalizar/rehacer una versión de GNU+Linux derivada de Debian.

Tomaremos el caso de Huayra, la distro estatal realizada por el Programa Conectar Igualdad que pretende ser instalada en las máquinas que resta repartir (unas cientos de miles) y en las ya repartidas (algo difícil de lograr si tenemos en cuenta que son más de 3 millones). De todas formas, este tutorial sirve para casi cualquiera de las cientos de distribuciones derivadas de Debian (Ubuntu, Mint, Musix, etc.).

Te traemos 11 pasos para crear un sistema operativo libre

Método
* El método elegido es relativamente rápido y cómodo para hacer cambios «en vivo», sobre todo dentro del sistema previamente a ser terminado, como si estuviera ya listo para usar. Otro método sería el de usar las herramientas de Debian Live.

Nivel de conocimientos
* En verdad esto lo puede hacer cualquier persona con algo de tiempo y ganas, no es necesario que se trate de un usuario avanzado, aunque sí es ideal que esté familiarizado con la consola de comandos de GNU/Linux. Pero te aseguro que es como seguir cualquier receta, como hacer canelones en casa.

Materiales
* Computadora personal con GNU+Linux instalado (cualquier netbook del PCI serviría, ya sea que trajera RxArt, Ubuntu, Mint o Huayra)
En caso de no contar con un sistema libre preinstalado, recomiendo descargar e Instalar Lunar GNU+Linux, que viene con todas las herramientas para remasterizar.
* Espacio en disco rígido: 10 GB aprox.
* Pendrive USB de 2 o 4 GB para grabar la imagen ISO (el sistema operativo comprimido) con unetbootin
O un DVD virgen.
* Una imagen ISO del sistema operativo a modificar: podría ser Lunar  o Huayra  mismo… pero si trabajás sobre Huayra quizá querrías invertir un tiempo en eliminar el software privativo, así que te aconsejamos Lunar, el cual ha zanjado esa tarea.
* Unetbootin

Pasos
Si en tu sistema no tenés instalado squashfs-tools y genisoimage, deberás incorporarlos; en este tutorial supondremos que estás utilizando una distribución Debian o derivada, con lo cual emplearías apt-get para instalar programas. El comando es:

sudo apt-get install squashfs-tools genisoimage

Desde ahora, abriremos una consola de comandos (konsole, xterm, lxterm, mrxvt, la que
quieras) y será cuestión de ejecutar paso tras paso como si fuera una receta.  Lógicamente no explicaré qué significa cada comando porque el tutorial sería más largo y aburrido que la Biblia, pero el usuario puede investigarlo utilizando el comando man (ej: man mkdir)
1) Crear directorios y descomprimir el archivos

mkdir nueva_distro
cd nueva_distro
sudo mount LA_DISTRO_QUE_DESCARGASTE.iso /mnt -o loop
mkdir extract-cd
rsync –exclude=/live/filesystem.squashfs -a /mnt/ extract-cd
sudo unsquashfs /mnt/live/filesystem.squashfs
sudo mv squashfs-root edit

2) Utilizar funcionalidades de nuestro actual sistema operativo

sudo cp /etc/resolv.conf edit/etc/
sudo cp /etc/hosts edit/etc/
sudo mount –bind /dev/ edit/dev

# Este paso es importante: aquí nos metemos dentro del nuevo sistema
sudo chroot edit
mount -t proc none /proc
mount -t sysfs none /sys
mount -t devpts none /dev/pts
export HOME=/root
export LC_ALL=C

dbus-uuidgen > /var/lib/dbus/machine-id
dpkg-divert –local –rename –add /sbin/initctl
ln -s /bin/true /sbin/initctl

 

3) Comenzar a instalar o desinstalar programas, modificar estéticas, configuraciones, etc.

apt-get update

Ahora podemos instalar algo, por ejemplo algunas utilidades para redes, copia de archivos y monitoreo de procesos

apt-get install htop nmap slurm rsync

Es sólo un ejemplo, Debian contiene algo así como 30.000 paquetes en su base de datos, si necesitás una forma cómoda de ver qué hay disponible, utilizá Synaptic en modo gráfico, luego podés volver al sistema en proceso de modificación e instalar las aplicaciones con apt-get

Por no ser tan aburridos, instalemos algunas aplicaciones para músicos:

apt-get install hydrogen solfege rosegarden zynaddsubfx qsynth lmms qjackctl
En fin: insisto en que son sólo ejemplos, vos podés encontrar algo que te interese particularmente.

 

3b) Escritorio

Algo muy importante a tener en cuenta, es que todo lo relativo al escritorio se modifica en /etc/skel/Escritorio/ , esa carpeta contiene un esqueleto de el o los escritorios que serán configurados para cada usuario del sistema. Es decir que todo lo que hagamos ahí, será copiado cada vez que se inicie el sistema Live o cuando creemos otro usuario.

Por ejemplo, en Huayra encontramos:

ayuda-mate.desktop      huayra-chat.desktop           huayra-tda.desktop
huayra-bullets.desktop  huayra-flash-install.desktop  www-browser.desktop

Son los iconos que lanzan aplicaciones, en mi caso quité huayra-flash-install.desktop por ser una sugerencia a instalar software privativo/peligroso.
3c) Configurar GRUB para que no inicie Linux con el generador de números al azar de INTEL y la NSA

No es un paso obligatorio, pero te dará más seguridad al no usar la instrucción de la agencia de espionaje en tu sistema para cifrar datos. Es decir: será menos probable que la NSA te espíe. Entonces, como usuario administrador ejecutamos:

nano /etc/default/grub
Agregamos o modificamos la siguiente línea:
GRUB_CMDLINE_LINUX=”nordrand”
Guardamos con control+o y salimos con control+x.
3d) Personalizar el fondo de escritorio

Podemos hacer 1000 modificaciones a nuestra nueva distro, pero algo que le dará identidad es el fondo de escritorio, en Huayra o Lunar, esto se encuentra dentro del directorio: edit/usr/share/images/huayra-desktop/ y posee los siguientes archivos:
huayra-login.jpg  huayra-splash.png  huayra-syslinux.png  huayra-wallpaper.png

Podrías reemplazarlos con tus propios diseños, sólo tené en cuenta el formato de cada uno (resolución y extensión .png o .jpg) para que luego no existan mayores problemas. Un buen programa es GIMP, otro interesante es Inkscape para diseño vectorial.

 

3e) Para usuarios avanzados/curiosos: lógicamente podríamos iniciar una sesión de escritorio dentro el nuevo sistema y realizar cualquier cambio de modo gráfico como si la distro estuviera ya terminada y andando. Para eso es prudente copiar nuestra configuración de Xorg dentro del nuevo sistema, o quitar la existente con el fin de evitar cuelgues… también es prudente utilizar la misma distro como sistema host y sistema a modificar, porque de lo contrario es posible que también se quede congelado el sistema.
Para iniciar una sesión de escritorio, podríamos copiar antes el /etc/skel a /root/Escritorio (cualquier cosa que de allí nos interese…) instalar xinit (apt-get install xinit), presionar control+alt +F1, loguearnos como root y luego ejecutar algo así:

startx — :4 vt12

Si tenemos suerte, estaremos dentro de un entorno de escritorio predefinido y podremos divertirnos un rato: queda en vos experimentar.

 
4) SALIR de nuestro nuevo sistema: volver atrás al sistema de siempre para poder recomprimir los archivos y crear la imagen ISO; ejecutamos:

cd /
aptitude clean
rm -rf /tmp/* ~/.bash_history
rm /etc/resolv.conf
rm /var/lib/dbus/machine-id
rm /sbin/initctl
dpkg-divert –rename –remove /sbin/initctl
dpkg -l > packages.txt
umount /proc
umount /sys
umount /dev/pts
exit
6) Prepararse para Remasterizar (finalizar la nueva distribución GNU+Linux)

sudo umount edit/dev
sudo mv edit/packages.txt extract-cd/live/

* dentro del directorio nueva_distro ejecutamos:
sudo touch extract-cd/live/filesystem.manifest
sudo chmod a+w extract-cd/live/filesystem.manifest
sudo chroot edit dpkg-query -W –showformat=’${Package} ${Version}\n’ > extract-cd/live/filesystem.manifest
sudo cp extract-cd/live/filesystem.manifest extract-cd/live/filesystem.manifest-desktop
sudo sed -i ‘/ubiquity/d’ extract-cd/live/filesystem.manifest-desktop
sudo sed -i ‘/live/d’ extract-cd/live/filesystem.manifest-desktop
7) Modificar la pantalla de inicio del Live-USB/DVD para que hable de nuestra distro

En el directorio extract-cd/isolinux/ hay varios archivos.cfg, los podés editar con nano o cualquier otro editor de textos para que representen la identidad de lo que estás haciendo.
También se encuentra ubicada una imagen llamada extract-cd/isolinux/splash.png que podría ser fácilmente reemplazada por un diseño propio, solamente tiene que ser en 640×480 y en formato png.

8)  Comprimir el sistema de archivos:

sudo rm extract-cd/live/filesystem.squashfs

sudo mksquashfs edit extract-cd/live/filesystem.squashfs

(esa acción es crucial y tardará un buen tiempo…)

Darle un nombre a la imagen:
nano extract-cd/README.diskdefines

9) Remover el viejo md5sum.txt y hacer uno nuevo:

cd extract-cd
sudo rm md5sum.txt
find -type f -print0 | sudo xargs -0 md5sum | grep -v isolinux/boot.cat | sudo tee md5sum.txt

* si trabajamos con Huayra, conviene borrar algunas cosas no libres:

rm -f -r pool/contrib/l/linux-wlan-ng/
rm -f -r pool/non-free/*
10) Finalizar y crear la imagen ISO de nuestro nuevo sistema:

sudo genisoimage -D -r -V «Nombre_y_version» -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o ../Nombre_y_version.iso .
11) Testear la ISO: en una primera instancia no es mala idea ahorrarse el quemar un DVD o crear un USB Live de gusto, para eso podríamos utilizar QEMU, un emulador que nos permite correr el nuevo sistema dentro de nuestro sistema.

 

apt-get install qemu

qemu -cdrom nombre_del_archivo.iso

Si todo sale bien, veremos la pantalla de bienvenida y luego se cargará el sistema… a veces QEMU no es muy confiable, por lo cual si vemos algún error demasiado raro (el escritorio no se carga, etc.), convendrá hacer las cosas bien y quemar un DVD (yo uso k3b) con nuestra imagen ISO o grabar un USB Live mediante Unetbootin.

En fin, eso es todo, se trata de muchos comandos pero les garantizo que funciona y sólo necesitan tener ganas para lograrlo,

¡FELIZ HACKEO!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *