Cómo: Instalar Fedora 23 en un Raspberry Pi 2 Model B

Un Raspberry Pi® 2 Model B es un equipo «humilde» tanto en costo (debajo de los 50USD) como en características, al menos para los estándares actuales. Pero no dejo de pensar que un equipo de similares características (guardando las distancias) costaba al menos 10 veces más, cerca de finalizar el siglo 20.

El sistema operativo más común en un Raspberry suele ser «Raspbian«, principalmente porque es el que el Raspberry soporta de forma oficial. Pero dado que he trabajado con RedHat y sus derivaciones por un poquito más allá de toda mi vida profesional, he preferido irme por Fedora 23 y más específicamente un Remix denominado FedBerry. Este Remix está específicamente hecho para los Raspberry Pi® 2 Model B y existe porque Fedora no soporta (aún) oficialmente estas placas.

Fase 1: En un equipo Linux (no el Raspberry):

Todo el proceso descrito, lo realicé sobre un Fedora Linux 23 x64_64, que es mi Sistema Opereativo de todos los días. Las líneas que inician con $ indican que el comando se ejecutó como usuario común.

El primer paso para la instalación es la descarga del paquete del sistema, desde el sitio oficial del proyecto. A la fecha el más nuevo y estable es: Fedora-23-remix-rpi2-minimal-1.raw.xz aunque están trabajando en una versión -2 que veo que está en pruebas.

$ wget http://download.fedberry.org/releases/23/images/fedora-23-remix-rpi2-minimal-1.raw.xz

Como se puede ver, el paquete dice -minimal que es la versión que yo escogí para instalar, están disponibles también la -xfce y la -mini, el detalle de la orientación de cada una está ahí mismo en el sitio.

Opcionalmente se puede hacer una comprobación del paquete con:

$ sha256sum fedora-23-remix-rpi2-minimal-1.raw.xz

El sistema debe ser transferido a una tarjeta micro SD (de al menos 4GB), que luego se colocará en el Raspberry que la usa como su medio principal de almacenamiento. Lo primero es determinar el nombre del dispositivo con el que Linux la ubicó en el sistema. Para esto se puede ejecutar en una consola:

$ journalctl -f

y luego, al insertar la SD en el equipo, se producirá un bloque de líneas de log, entre las que se puede distinguir algo similar a:

sep 10 10:00:50 localhost kernel: sd 4:0:0:0: [sdb] 63244288 512-byte logical blocks: (32.4 GB/30.2 GiB)
sep 10 10:00:50 localhost kernel: sd 4:0:0:0: [sdb] Write Protect is off
sep 10 10:00:50 localhost kernel: sd 4:0:0:0: [sdb] Mode Sense: 23 00 00 00
sep 10 10:00:50 localhost kernel: sd 4:0:0:0: [sdb] Write cache: disabled, read cache: disabled, doesn't support DPO or FUA
sep 10 10:00:50 localhost kernel: sdb: sdb1
sep 10 10:00:50 localhost kernel: sd 4:0:0:0: [sdb] Attached SCSI removable disk

El nombre del dispositivo en este caso es sdb, aunque dependiendo de varios factores, podría ser incluso algo como mmcblk0.

Finalmente queda transferir la imagen a la SD así (el proceso dura un buen rato):

$ xzcat fedora-23-remix-rpi2-minimal-1.raw.xz | sudo dd of=/dev/sdb

Nótese el uso de sudo pues ejecuté el comando como usuario común, si se corre como usuario root, el comando sería igual, pero sin el sudo.

Fase 2: En el Raspberry:

Una vez conectada la SD al Raspberry, hace falta ponerle un teclado USB y un monitor/TV al puerto HDMI, se conecta la corriente y el sistema empieza inmediatamente a arrancar. En este punto se redimensiona automáticamente el sistema de archivos al tamaño completo de la SD y se reinicia una vez, presentando luego un menú con opciones para configurar el idioma, la zona horaria, clave de root, usuario adicional, si recuerdo bien todas ;-). Es muy fácil seguir las instrucciones para ir realizando el proceso. Al final se presiona c para continuar y el sistema arranca y muestra el prompt del sistema.

Si tienes DHCP en la red, basta con conectarle un cable al puerto ethernet y correr:

# ip addr show

para determinar la dirección que le fue asignada. A partir de ahí, se le puede quitar el teclado y la pantalla e inmediatamente trabajar con él vía SSH… en adelante ya se dispone de un equipo Linux Fedora 23 100% funcional por lo que cuestan un par de pizzas familiares ;-). Trataré de anexar artículos sobre experimentos prácticos exitosos sobre esta infraestructura, a medida que los vaya completando.

P.D. Si bien no es un paso obligatorio, siempre es recomendable (especialmente para quienes pueden tener poca experiencia) el desactivar SELinux del sistema para evitar situaciones que pueden resultar difíciles de detectar. Para ello, basta con editar el archivo /etc/sysconfig/selinux y cambiar enforcing por disabled en la línea que dice:

SELINUX=enforcing

Se requiere de un reinicio del sistema para que los cambios surtan efecto, aunque se puede ejecutar el comando setenforce 0 para desactivarlo durante esta sesión.