Saltar al contenido principal

Construye tu propio sistema operativo con Raspbian Net Install

Jose CerrejonAlrededor de 3 minRaspberry PIRaspberry PI

Construye tu propio sistema operativo con Raspbian Net Install

rpi
rpi

Algo que para mí debe tener un sistema operativo es modularidad. Me refiero a que cualquiera pueda crearse uno sin tener muchos conocimientos y puedas personalizarlo como quieras. En este post vamos a partir de una instalación desatendida de Raspbian con coma flotante (armhf) para crear un sistema operativo acorde a nuestras necesidades.


Introducción (te la puedes saltar)

Hace mucho tiempo, lo que más me gustaba en la época de Windows 95 era comprimir la carpeta Windows con arj, borrar ficheros que consideraba inútiles y ver si notaba más velocidad en mi 486 DX2/100 Mhz. Cuando fallaba o aparecía la BSOD, descomprimía la carpeta y vuelta a empezar.

Con la llegada de nLite y demás herramientas desatendidas, todo era más fácil con XP, pero me llegaba a obsesionar hasta dónde podía llegar el límite y malgasté años de mi vida en esta práctica.

Cuando descubrí Linux gracias a un amigo (Gentoo), me fascinó todo lo que tenía que ver con Linux y pasé por muchas distribuciones (Mandrake, Red Hat, Debian, Ubuntu). Era increíble que pudieras personalizar tanto un SO, pero por aquel entonces tenías que pelearte durante demasiado tiempo compilando software, drivers y kernels

Ahora que tengo cierta edad y mi tiempo es oro, pasé a un iMac donde todo funciona, para instalar una aplicación tan sólo tienes que arrastrarla a una carpeta y todo el hardware funciona sin complicaciones.

Y aquí estoy de nuevo con la Raspberry Pi. Volviendo a mis orígenes y probando maneras de tener una distro que se adapte a mis necesidades ya que pienso que en Raspbian hay demasiados paquetes instalados, y es normal. Está hecha para que no te tengas que pelear con nada ni nadie.

No obstante, si eres un luchador como yo, vamos a ver la manera de personalizar una distro Raspbian minimal. Tal vez haya otros métodos que serían ideales (como PiLFSopen in new window, que no descarto probar algún día), pero me remito al más fácil que he encontrado. Vamos allá…

Creación de imagen SD e instalación desatendida

La versión de la que vamos a partir nos va a crear un sistema base mínimo, en este caso con preset para usarse como servidor, aunque es válido para cualquier otro uso, instalando los últimos paquetes de Raspbian que se descargarán en el momento de generación del sistema de ficheros.

  • Descarga el siguiente fichero: raspbian-ua-netinst-latest.zipopen in new window

  • Descomprime el contenido del .zip en una tarjeta SD previamente formateada con FAT32.

  • Conéctalo a tu Raspberry Pi y comenzará a particionar e instalar paquetes.

NOTA: Necesitarás configurar tu IP estática si no tienes DHCP en el router. Mira la documentación oficial al final del artículo para obtener información.

El usuario es root y la contraseña raspbian

Raspbian unnatended net installer

Destacamos de este proyecto alojado en Github alguna de sus características:

  • Completamente desatendido. Sólo necesitas una conexión a internet a través del puerto Ethernet.

  • Siempre instala la última versión de Raspbian

  • Instalación toma menos de 15 minutos y cabe en una tarjeta SD de 512MB

  • La instalación por defecto incluye fake-hwclock para guardar la hora cuando apagas el sistema y OpenNTPd

  • /tmp montado como tmpfs para mejorar la velocidad

  • No instala basura, sólo paquetes esenciales

  • Opción de instalar root en una unidad USB

Puesta a punto

Una vez se reinicia el equipo, podemos hacer una serie de personalizaciones:

  • Nuevo password root: passwd

  • Configuración reginal: dpkg-reconfigure locales

  • Configuración horaria: dpkg-reconfigure tzdata

Ahora pasaremos a actualizar el kernel y el firmware:

apt-get update && apt-get install linux-image-rpi-rpfv raspberrypi-bootloader-nokernel
&& cp /vmlinuz /boot/kernel.img && reboot

Para gestinar mejor la memoria, instalaremos el siguiente paquete: apt-get install raspi-copies-and-fills

Opcionalmente puedes crear un archivo SWAP:

dd if=/dev/zero of=/swap bs=1M count=512 && mkswap /swap
echo "/swap none swap sw 0 0" > /etc/fstab

Estos pasos harán aumentar el consumo de RAM 11 MB y tampoco son necesarios, pero si recomendado.

Recuerdo que tenemos acceso por SSH en cualquier momento.

Añadir usuarios

  • Ahora mismo somos Dios, y será mejor camuflarnos como usuario normal y pasar a ser mortal: adduser pi, o cualquier nombre que prefieras.

  • Para ver los grupos a los que queremos que pertenezca, ejecutamos: cut -d: -f1 /etc/group.

  • Si quieres agregar a tu nuevo usuario a algún grupo: usermod -aG {nombre_grupo(s)} nombre_usuario. Ejemplo: usermod -aG audio,sudo,ssh,video pi

  • Para ver los grupos a los que perteneces: id nombre_usuario

Instalar paquetes

Aquí cada uno tiene libertad de instalar los paquetes que necesite o piense que va a necesitar. En mi caso casi siempre instalo los siguientes como root:

apt-get update && apt-get install mc unzip nano sudo git build-essential alsa-base

Para activar el módulo de sonido, ejecuta lo siguiente tras la instalación de alsa-base: alsactl init

Volver al principio

Si por alguna razón quieres volver a rehacer TODOS los pasos, ejecuta lo siguiente:

mv /boot/config-reinstall.txt /boot/config.txt && reboot

Cuando se reinicie, se volverá a ejecutar el instalador desatendido.

Conclusión

Hemos visto las entregas de Raspbian minimal y conocido otras alternativas más acordes a los proyectos en los que nos podamos embarcar. Sin duda creo que alternativas como éstas aprovechan y gestionan mejor la placa y sus recursos. Además hemos aprendido o recordado tareas básicas como gestionar usuarios y grupos. No dudéis en probarlo y si encontráis problemas, en la web del proyecto alojado en Github podréis preguntar.

Ahora tienes un script en PiKISSopen in new window para configurarlo todo sin mucho esfuerzo.

Enlace: github.com > raspbian-ua-netinstopen in new window