Preparando la tarjeta para Raspberry

Tarjeta microSD

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, Archlinux 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 mas fácil.

En los próximos artículos podremos ver como: 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 que 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 como 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

Dependiendo el 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

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

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 ultima 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 unicamente 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 linea que debe haber en el fichero, sustituimos:

root=/dev/mmcblk0p2

por:

root=PARTUUID=4d1e78b0-01

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.

Soy Jaume Ferré, aficionado a los nuevas tecnologias, aunque ya no lo son tanto.
¡Gracias por leerme!

Valora este artículo1 2 3 4 5 (0 votos)

(0 votos)

Categorias del blog

twitter

Últimos tweets