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:
suIntroducimos 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 -lAntes de empezar, necesitamos que la tarjeta no esté montada. Si es necesario, la desmontamos:
umount /dev/sdc1 /dev/sdc2Particionamos 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 deppara una partición primaria. Seleccionamos1para la primera partición del dispositivo, ENTER para aceptar por defecto el primer sector, y a continuación escribimos+250Mpara el último sector. - Opción
tpara cambiar el tipo de la primera partición. A continuacióncpara asignarla a tipo W95 FAT32 (LBA). - Opción
n, seguidamente deppara una nueva partición primaria,2para 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 bootAhora es el turno del ext4:
mkfs.ext4 /dev/sdc2
mkdir root
mount /dev/sdc2 rootDescarga 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
syncRPI4
wget http://os.archlinuxarm.org/os/ArchLinuxARM-rpi-4-latest.tar.gz
bsdtar -xpf ArchLinuxARM-rpi-4-latest.tar.gz -C root
syncMovemos los ficheros de boot a la primera partición:
mv root/boot/* bootConfiguració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.txty añadir al final del fichero las siguientes líneas:
max_usb_current=1
safe_mode_gpio=4Para 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-btConfiguramos los locales, descomentando las líneas necesarias para nuestro idioma. En mi caso, Español de España es_ES:
nano root/etc/locale.genes_ES.UTF-8 UTF-8
es_ES ISO-8859-1
es_ES@euro ISO-8859-15y creamos el fichero locale.conf:
nano root/etc/locale.confLANG=es_ES.UTF-8Modificamos el nombre del equipo:
nano root/etc/hostnamemyrpiY 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.1Configuració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 deppara una partición primaria. Seleccionamos1para la primera partición del dispositivo, ENTER para aceptar por defecto el primer sector, y a continuación escribimos+250Mpara el último sector. - Opción
tpara cambiar el tipo de la primera partición. A continuacióncpara 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 boot2Y movemos boot del disco SSD a la tarjeta:
mv boot/* boot2Necesitaremos 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.txtY en la única línea que debe haber en el fichero, sustituimos:
root=/dev/mmcblk0p2por:
root=PARTUUID=4d1e78b0-01Finalizació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.gzPor último, salimos de root:
exitY 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.
💬 Comentarios
Los comentarios están gestionados por GitHub Discussions. Necesitas una cuenta de GitHub para participar. ¡Es gratis y rápido!