Instalar Arch Linux ARM en Raspberry Pi

Raspberry Pi con tarjeta microSD preparada para Arch Linux ARM
5 min. Lectura
0 Vistas
0 Valoración

Nadie pone en duda que la pequeña gran Raspberry es un invento genial para los que nos gusta cacharrear.

Existen proyectos basados en RPi muy interesantes y que puedes encontrar con todo lujo de detalles buscando un poco en tu buscador preferido.

Pero antes de iniciar cualquier proyecto, hay un paso común en todos ellos: instalar el sistema operativo y ponerlo a punto.

Hace ya bastante tiempo que elegí Linux como sistema operativo y entre todas las distribuciones que he probado, Arch Linux es en la que me encuentro más cómodo, por lo tanto casi todos los proyectos de este blog están basados en esta distribución. Atención, que sea mi distribución favorita no significa que sea la más fácil.

En los próximos artículos podremos ver cómo: configurar, actualizar el firmware, protegerla de posibles ataques y dejarla preparada para el proyecto elegido.

Empezaremos esta serie de artículos instalando la versión ArchLinuxARM, específica para plataformas ARM en la tarjeta microSD.

¡Vamos allá!

Preparación de la tarjeta microSD

Actualización: En según qué proyectos, es recomendable utilizar un disco SSD en lugar de una tarjeta microSD. Por ejemplo, aquellos proyectos que utilicen mucho la escritura pueden llegar a dañar la tarjeta. Si es este el caso, realizaremos todas las operaciones en el disco en lugar de la tarjeta. Al final del artículo, moveremos el boot del disco SSD a una tarjeta microSD.

La preparación inicial de la tarjeta o disco SSD la realizaremos desde un equipo con Linux instalado y todas las operaciones las ejecutaremos como root:

su

Introducimos la tarjeta microSD en nuestro lector, y ejecutamos fdisk -l para conocer cómo la ha identificado Linux. En los próximos ejemplos tomaremos /dev/sdc como la tarjeta microSD detectada:

fdisk -l

Antes de empezar, necesitamos que la tarjeta no esté montada. Si es necesario, la desmontamos:

umount /dev/sdc1 /dev/sdc2

Particionamos la tarjeta con fdisk:

fdisk /dev/sdc
  • Opción o, borrará todas las particiones.
  • Opción p, listará las particiones, no debería haber ninguna.
  • Opción n, seguido de p para una partición primaria. Seleccionamos 1 para la primera partición del dispositivo, ENTER para aceptar por defecto el primer sector, y a continuación escribimos +250M para el último sector.
  • Opción t para cambiar el tipo de la primera partición. A continuación c para asignarla a tipo W95 FAT32 (LBA).
  • Opción n, seguidamente de p para una nueva partición primaria, 2 para la segunda partición del dispositivo, ENTER para aceptar por defecto el primer sector, y nuevamente ENTER para el último sector.
  • Terminamos con w, para escribir todas las modificaciones.

Creamos y montamos el sistema de archivos FAT:

mkfs.vfat /dev/sdc1
mkdir boot
mount /dev/sdc1 boot

Ahora es el turno del ext4:

mkfs.ext4 /dev/sdc2
mkdir root
mount /dev/sdc2 root

Descarga e instalación de ArchLinuxARM

Dependiendo del modelo de Raspberry descargaremos y extraeremos la última versión disponible de ArchLinuxARM con wget:

RPI2

wget http://archlinuxarm.org/os/ArchLinuxARM-rpi-2-latest.tar.gz
bsdtar -xpf ArchLinuxARM-rpi-2-latest.tar.gz -C root
sync

RPI4

wget http://os.archlinuxarm.org/os/ArchLinuxARM-rpi-4-latest.tar.gz
bsdtar -xpf ArchLinuxARM-rpi-4-latest.tar.gz -C root
sync

Movemos los ficheros de boot a la primera partición:

mv root/boot/* boot

Configuración inicial

Ahora vamos a configurar algunos ficheros.

Si tenemos previsto conectar un disco duro externo USB a nuestra Raspberry, por ejemplo en el caso de que estemos poniendo en marcha un servidor Torrent, tendremos que modificar el fichero config.txt:

nano boot/config.txt

y añadir al final del fichero las siguientes líneas:

max_usb_current=1
safe_mode_gpio=4

Para desactivar el bluetooth en la RPI3 y que no interfiera en el puerto serie, por ejemplo en el caso de utilizar un módulo de Z-Wave, añadiremos en el mismo fichero config.txt:

dtoverlay=pi3-disable-bt

Configuramos los locales, descomentando las líneas necesarias para nuestro idioma. En mi caso, Español de España es_ES:

nano root/etc/locale.gen
es_ES.UTF-8 UTF-8
es_ES ISO-8859-1
es_ES@euro ISO-8859-15

y creamos el fichero locale.conf:

nano root/etc/locale.conf
LANG=es_ES.UTF-8

Modificamos el nombre del equipo:

nano root/etc/hostname
myrpi

Y editamos el fichero eth0.network para asignarle una dirección IP fija:

nano root/etc/systemd/network/eth0.network
[Match]
Name=eth0

[Network]
DNS=192.168.1.1
Address=192.168.1.60
Gateway=192.168.1.1

Configuración con disco SSD (opcional)

Nos queda un último paso si hemos decidido utilizar un disco SSD en lugar de la tarjeta.

A fecha de hoy, junio 2020, el firmware de la RPI4 que permite arrancar desde un disco USB sigue siendo una versión Beta. La última versión no permite todavía cambiar el arranque a otra unidad que no sea la tarjeta. Hasta que no implementen esta opción, podemos arrancar de la manera tradicional, es decir, utilizar la tarjeta únicamente para arrancar y el disco utilizarlo como sistema de archivos raíz.

Introducimos una tarjeta y la preparamos. Utilizaremos como ejemplo /dev/sdd para la nueva unidad y nos aseguramos que tampoco esté montada:

umount /dev/sdd1
fdisk /dev/sdd
  • Opción o, borrará todas las particiones.
  • Opción p, listará las particiones, no debería haber ninguna.
  • Opción n, seguido de p para una partición primaria. Seleccionamos 1 para la primera partición del dispositivo, ENTER para aceptar por defecto el primer sector, y a continuación escribimos +250M para el último sector.
  • Opción t para cambiar el tipo de la primera partición. A continuación c para asignarla a tipo W95 FAT32 (LBA).
  • Terminamos con w, para escribir todas las modificaciones.

Creamos y montamos el sistema de archivos FAT:

mkfs.vfat /dev/sdd1
mkdir boot2
mount /dev/sdd1 boot2

Y movemos boot del disco SSD a la tarjeta:

mv boot/* boot2

Necesitaremos el PARTUUID del disco SSD, es decir sdc1:

blkid
/dev/sdc1: UUID="c7a9fb25-cf14-4803-bd28-c28c4156639" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="4d1e78b0-01"
/dev/sdd1: SEC_TYPE="msdos" UUID="F19A-31976" BLOCK_SIZE="512" TYPE="vfat" PARTUUID="c8ddf03-01"

Y editamos el fichero cmdline.txt para que root apunte al SSD mediante el UUID anterior:

nano boot2/cmdline.txt

Y en la única línea que debe haber en el fichero, sustituimos:

root=/dev/mmcblk0p2

por:

root=PARTUUID=4d1e78b0-01

Finalización

Finalmente sincronizamos, desmontamos las particiones y eliminamos los puntos de montaje creados. También borramos el fichero descargado.

sync
umount boot root boot2
rmdir boot root boot2
eject /dev/sdc
rm ArchLinuxARM-rpi-2-latest.tar.gz
rm ArchLinuxARM-rpi-4-latest.tar.gz

Por último, salimos de root:

exit

Y desconectamos físicamente todas las unidades.

En el siguiente artículo pondremos en marcha por primera vez la Raspberry.

¿Te ha sido útil?

Ayúdame a mejorar con tu puntuación y comentarios.

0.0 (0 votos)
Jaume Ferré

Jaume Ferré

Soy un entusiasta de las nuevas tecnologías, apasionado por explorar su potencial innovador. Colecciono CDs en formato físico y disfruto creando mezclas musicales. Además, la fotografía es otra de mis pasiones, capturando momentos y expresiones con cada disparo. ¡Gracias por leerme!

💬 Comentarios

Los comentarios están gestionados por GitHub Discussions. Necesitas una cuenta de GitHub para participar. ¡Es gratis y rápido!