Instalación base ArchLinux ARM en Raspberry Pi

Arch Linux ARM + RPi

Para los que no conozcan Arch Linux, decir que es una distribución Linux ligera, flexible, rolling release, siguendo el principio KISS (Keep It Simple Stupid), tal cómo se explica en la página oficial.

Detrás de esta distro la comunidad es increíble, muestra de ello es la wiki, en esta wiki está todo lo necesario y más para instalar y configurar un sistema con Arch Linux, con información muy completa y bien ordenada se convertirá en uno de tus mejores aliados.

Nosotros no vamos a instalar la versión tradicional de Arch Linux, si no que vamos a instalar Arch Linux ARM, creada específicamente para ordenadores con procesadores ARM como es el caso de la Raspberry Pi (aka RPi), aunque si quieréis instalar la versión normal, os dejo un enlace a la página de Gregorio Espadas que tiene unos magníficos tutoriales sobre Arch Linux y os ayudará con cualquier duda.

Bueno, al turrón, como decían en Humor Amarillo.

Ingredientes:

  • Raspberry Pi
  • Tarjeta SD: de al menos 2 GB y clase 4 (a mayor clase, mayor velocidad de la tarjeta), aquí tenéis una lista muy completa sobre las tarjetas compatibles, aunque si compráis una que no esté en la lista, posiblemente también funcione.


Paso 1: Instalación de Arch Linux ARM en la tarjeta SD

  1. Descargamos la imagen de Arch Linux ARM de su página: http://archlinuxarm.org/platforms/armv6/raspberry-pi
  2. Descomprimimos el archivo .zip que acabamos de descargar.
  3. Insertamos la tarjeta en el PC y ejecutamos el siguiente comando para saber el nombre del dispositivo:
    dmesg | tail

    Nos debería salir algo parecido a alguna de estas dos salidas:

    [12542.817919] mmcblk0: mmc0:b368 NCard 14.8 GiB
    [12542.818827] mmcblk0: p1 p2
    [12626.111615] mmc0: card b368 removed
    [12628.314129] mmc0: new high speed SDHC card at address b368
    [12628.314337] mmcblk0: mmc0:b368 NCard 14.8 GiB
    [12628.315330] mmcblk0: p1 p2
    [12827.710649] mmc0: card b368 removed
    [12832.115160] mmc0: new high speed SDHC card at address b368
    [12832.115380] mmcblk0: mmc0:b368 NCard 14.8 GiB
    [12832.116295] mmcblk0: p1 p2
    
    [13109.371514] sd 6:0:0:0: [sdb] Write Protect is off
    [13109.371518] sd 6:0:0:0: [sdb] Mode Sense: 03 00 00 00
    [13109.371697] sd 6:0:0:0: [sdb] No Caching mode page present
    [13109.371700] sd 6:0:0:0: [sdb] Assuming drive cache: write through
    [13109.372840] sd 6:0:0:0: [sdb] No Caching mode page present
    [13109.372843] sd 6:0:0:0: [sdb] Assuming drive cache: write through
    [13109.515218] sdb: sdb1
    [13109.516557] sd 6:0:0:0: [sdb] No Caching mode page present
    [13109.516562] sd 6:0:0:0: [sdb] Assuming drive cache: write through
    [13109.516565] sd 6:0:0:0: [sdb] Attached SCSI removable disk
    

    El nombre de mi tarjeta es mmcblk0, pero el vuestro puede ser completamente distinto sdcsddsdemmcblk2, etc.
    Fijaros bien en el nombre, ya que si ponéis el de vuestro disco duro, lo borraréis completamente, el disco duro principal siempre es /dev/sda1, así que nunca pongáis ese xD

  4. Desmontamos la tarjeta:
    sudo umount /dev/mmcblk0
  5. Escribimos la imagen en la tarjeta:
    dd bs=1M if=/path/to/archlinux-hf-2013-07-22.img of=/dev/mmcblk0

    Este comando tardará varios minutos en función de la velocidad de vuestra tarjeta y no mostrará ninguna barra de progreso, a mi me ha tardado 8 minutos.


Paso 2: Redimensionar particiones

  1. El comando anterior nos crea dos particiones ocupando un tamaño total de 2 GB, por tanto si por ejemplo tenemos una tarjeta de 16 GB, tenemos 14 GB desaprovechados.
    Si no tenéis Linux o queréis hacer este paso con otras herramientas, aquí tenéis más info: http://elinux.org/RPi_Resize_Flash_Partitions
    Para agrandar una de las particiones, usaremos el programa GParted, que instalaremos desde nuestros repositorios:Debian/Ubuntu:

    sudo apt-get install gparted

    Arch Linux:

    sudo pacman -S gparted

    Más distribuciones: http://gparted.sourceforge.net/download.php

    Una vez instalado lo abrimos y arriba a la derecha en el menú desplegable seleccionamos nuestra SD.

    GParted_1Hacemos clic derecho en la partición extended, Redimensionar/mover y movemos el control deslizante derecho hasta el final y hacemos clic en Redimensionar/mover.
    Repetimos la operación pero con la partición ext4.GParted_2
    Al final nos quedará así:

    GParted_3
    Todavía no se han realizado las operaciones, le damos al tick verde para que las haga, debería tardar poco tiempo.
    Una vez acabado ya tenemos la tarjeta SD preparada.


Paso 3: Inicar Arch Linux ARM

Insertamos la tarjeta en la Raspberry Pi, la conectamos a un monitor vía HDMI, la encendemos y veremos como inicia el sistema:

rpi

cuando lleguemos al login:

rpi_2

estos son el usuario y contraseña.

  • Usuario: root
  • Contraseña: root

Paso 4: Conectarnos por SSH (opcional)

Bueno, como sabréis la forma típica de acceder a la RPi es conectándola a una pantalla y escribiendo con un teclado USB, pues bien, hay otra forma de tener la terminal de Arch en tu ordenador por medio de SSH, usando la red. Esto es realmente cómodo para poder trabajar desde el ordenador y al mismo tiempo gestionar la RPi.

Para poder hacer esto, tenemos que conetar la RPi al router de nuestra casa y el ordenador al mismo también, simplemente tienen que estar en la misma red.

Primero necesitamos saber la IP asignada a la RPi, hay varias formas:

  1. Si tenéis un teclado USB, es tan fácil como conectarlo, logearse y escribir:
    ifconfig

    lo cual nos devolverá algo como esto:

    wlan0 Link encap:Ethernet direcciónHW xx:xx:xx:xx:xx:xx
     Direc. inet:192.168.1.50 Difus.:192.168.1.255 Másc:255.255.255.0
     Dirección inet6: fe80::6236:ddff:fead:8478/64 Alcance:Enlace
     ACTIVO DIFUSIÓN FUNCIONANDO MULTICAST MTU:1500 Métrica:1
     Paquetes RX:2574160 errores:0 perdidos:0 overruns:0 frame:0
     Paquetes TX:1281708 errores:0 perdidos:0 overruns:0 carrier:0
     colisiones:0 long.colaTX:1000
     Bytes RX:3679652992 (3.6 GB) TX bytes:162082034 (162.0 MB)
    

    La dirección IP que nos interesa en este caso es: 192.168.1.50

  2. La otra forma dependerá de cada router, así que será distinto que el vuestro, pero consiste en acceder al router, típicamente la IP suele ser 192.168.1.0192.168.0.1192.168.1.1, etc (se puede consultar con ifconfig desde el PC).

    Una vez dentro, ponéis user y password, y buscáis, en mi caso ServicesDHCP SettingsShow Client, lo cual me da la lista de dispositivos conectados al router:
    dhcp_tableBueno, si ya hemos obtenido la IP de la RPi, nos conectamos (cada uno que ponga su IP):

    ssh root@192.168.1.120

    Nos saldrá un mensaje con una clave RSA y más cosas, simplemente escribimos yes, metemos la contraseña: root y ya veremos el prompt de Arch:

    [root@alarmpi ~]#

Paso 5: Actualización completa

Cargamos la distribución del teclado que nos corresponde, para teclado de España:

loadkeys es

Para dejar como predeterminada la distribución de España hacemos lo siguiente:

echo "KEYMAP=es" > /etc/vconsole.conf

Lo primero de todo es hacer una actualización completa del sistema:

pacman -Syu

pacmanEscribimos y y comenzará la actualización.

Pro-Tip (frikada opcional): probad a instalar algún paquete con pacman después de este comando a ver que pasa.

mv /etc/pacman.conf /etc/pacman.conf.bak && sed '36 a\ILoveCandy' /etc/pacman.conf.bak > /etc/pacman.conf

Una vez actualizado el sistema conviene reiniciar y ver si inicia todo bien, aquí puede pasar de todo así que bienvenidos a Arch Linux, this is madness!

Ale, reiniciamos (este comando reinicia en 1 minuto, a los 55 segundos se desconecta y nos devuelve al prompt de nuestro sistema, podemos volver a entrar igual que la primera vez):

shutdown -r +1 && sleep 55 && exit

Este otro comando reinicia directamente, pero la conexión SSH se romperá y tendrás que esperar a que te devuelva al prompt unos 30 segundos:

reboot

Paso 6: Configuración inicial

————————————————————————————————————————————————-
Nano es un editor de texto y código en la terminal, los comandos son simples:
CTRL+V: bajar página
CTRL+Y: subir página
CTRL+X: salir (si hemos modificado el archivo nos pregunta para guardarlo, respondemos con y)
————————————————————————————————————————————————-

Creación de espacio de intercambio (SWAP)

Este apartado es opcional, pero muy recomendable para las placas de 256 MB de RAM, ya que para algunas tareas se quedan cortas de memoria.

Lo que vamos a hacer es crear un espacio de intercambio de memoria de 512 MB, en este caso un fichero en el sistema de archivos (también se puede crear en una partición):

fallocate -l 512M /swapfile

Ponemos los permisos correspondientes:

chmod 600 /swapfile

Formateamos como swap:

mkswap /swapfile

Activamos la swap:

swapon /swapfile

Y añadimos al final del archivo /etc/fstab la siguiente línea (para que se monte la swap en cada inicio):

/swapfile none swap defaults 0 0

Por último, una optimización para que la escritura en la SWAP no se haga con mucha frecuencia, sólo en caso de que tengamos poca RAM disponible.
Añadimos al fichero  /etc/sysctl.d/99-sysctl.conf la siguiente línea:

vm.swappiness=10

Podemos comprobar con el comando free -h que tenemos 256 MB de RAM (propios de la RPi) + 512 MB (del fichero swap):

memoria_rpi

Configuración de localizaciones y nombre de host

Primero vamos a configurar el idioma, editamos el archivo: /etc/locale.gen

nano /etc/locale.gen

Descomentamos las dos líneas correspondientes al Castellano para España:

...
#es_EC.UTF-8 UTF-8
#es_EC ISO-8859-1
es_ES.UTF-8 UTF-8
#es_ES ISO-8859-1
es_ES@euro ISO-8859-15
#es_GT.UTF-8 UTF-8
#es_GT ISO-8859-1
...

Generemos las locales:

locale-gen

UPDATE: si al ejecutar el comando anterior, obtienes un error, posiblemente sea porque no tengas memoria suficiente para generar las localizaciones, la solución es hacer el apartado anterior (creación de memoria de intercambio).


Ahora vamos a usar esas locales:

localectl set-locale LANG="es_ES.UTF8", LC_TIME="es_ES.UTF8"

Una vez configurado el idioma, vamos a configurar zona horaria:

Para la zona horaria española (UTC +1), insertamos esta orden:

timedatectl set-timezone Europe/Madrid

Si no vivimos en España, podemos ver la lista completa de zonas/sub zonas que se pueden poner con el comando:

timedatectl list-timezones

Por último pero no menos importante, podemos cambiar el nombre de host, que será el que se vea en red y en el prompt:

hostnamectl set-hostname nombre_host


Paso 7: Creación de usuarios

En Linux son muy importantes los usuarios y tenemos que configurarlos para tener la mejor seguridad. Hasta ahora hemos estado trabajando con el usuario root, este usuario es el administrador del sistema, tiene todos los permisos habidos y por haber, por tanto no es seguro usarlo en el día a día, únicamente a la hora de instalar y configurar el sistema, por tanto vamos a crear un usuario corriente:

useradd -m -g users -G wheel -s /bin/bash nombre_usuario

Además, este comando nos creará la carpeta de usuario en /home/nombre_usuario en la cual tendremos permisos para todo.

Es necesario cambiar la contraseña del usuario root y crear una para el usuario recién creado.
Cambiar contraseña root:

passwd

El cual nos pedirá escribir la contraseña dos veces (mientras escribís la contraseña no se muestra nada por seguridad).

Crear contraseña usuario común (no tiene por que ser la misma que la de root, de hecho es aconsejable que sean distintas):

passwd nombre_usuario

El mismo procedimiento que el comando anterior.

Instalamos el paquete sudo para hacer operaciones de root sin necesidad de cambiar de usuario:

pacman -S sudo

Y por último, tenemos que permitir que los usuarios comunes puedan utilizar sudo, para ello editamos el archivo /etc/sudoers:

nano /etc/sudoers

Bajamos hasta esta parte y descomentamos la línea marcada, eliminando la almohadilla del principio:


## User privilege specification
##
root ALL=(ALL) ALL

## Uncomment to allow members of group wheel to execute any command
# %wheel ALL=(ALL) ALL

## Same thing without a password
# %wheel ALL=(ALL) NOPASSWD: ALL

## Uncomment to allow members of group sudo to execute any command
# %sudo ALL=(ALL) ALL

Ahora que hemos terminado, podemos reiniciar la RPi y si nos volvemos a conectar con el usuario root la contraseña será la que hayamos indicado anteriormente. De todas formas, a partir de ahora lo recomendable es usar el usuario corriente que han creado, para conectarse directamente con este:

ssh nombre_usuario@192.168.1.120

De ahora en adelante, cuando quieran instalar un paquete desde Pacman o realizar cualquier operación de root, lo haremos así:

sudo comando_a_ejecutar_como_root

Por ejemplo:

sudo pacman -S gcc

El cual nos pedirá la contraseña de root y nos dejará instalar el paquete.

Paso 8: Aumentar RAM (opcional)

Dependiendo de la versión de la RPi que tengas, tendrás 256 o 512 MB de RAM, la cual se reparte entre la CPU y GPU (inicialmente mitad y mitad).

Si sólo vamos a usar la consola, no nos hace falta mucha RAM para la GPU, así que podemos modificarlo, editamos el archivo /boot/config.txt:

nano /boot/config.txt

Tenemos que bajar hasta abajo, donde se encuentra esto:


gpu_mem_512=316
gpu_mem_256=128
cma_lwm=16
cma_hwm=32
cma_offline_start=16

Y podemos modificar los parámetros gpu_mem_512 gpu_mem_256 dependiendo de si tienes placa de 256 o 512 MB. Los números a continuación son los MB que dejamos a la GPU, por tanto podemos probar con 64 MB para la GPU (CUIDADO: si ponemos poca RAM para la GPU, la RPi no arrancará y entonces tendremos que meter la SD en un PC para reparar el archivo /boot/config.txt poniendo los valores por defecto, que son los de arriba).

Ale, ya tenéis vuestra flamante Raspberry Pi con Arch Linux, ya podéis trastear lo que queráis jeje

En fin, aquí acaba el post, espero que sirva a la gente que empieza en el mundo de la Raspberry Pi o de Linux mismo.

En el próximo episodio veremos cómo crear una sesión gráfica con escritorio o quizás cómo poner un servidor web con cliente de torrents, ya veremos.

Os dejo con una última captura que me suele gustar poner, saludos 🙂

screenfetch

Parte 2: Seedbox en la Raspberry Pi

-> https://biolinux.wordpress.com/2013/10/03/seedbox-raspberry-pi/

Anuncios

10 comentarios en “Instalación base ArchLinux ARM en Raspberry Pi

  1. Pingback: Seedbox en la Raspberry Pi con Arch Linux | Bio Linux
  2. Muy buen artículo, yo añadiría un apunte más:

    Para configurar el teclado español es necesario ejecutar:
    # loadkeys es

    Y si lo queremos como predeterminado:
    # echo “KEYMAP=es” > /etc/vconsole.conf

    Saludos.

  3. Pingback: INSTALACIÓN DE ARCHLINUX EN RASPBERRY PI | COMPUTADORES DE PLACA REDUCIDA
  4. Pingback: Instalación Base de Centos 7 AARCH en Raspberry PI 3 – Blog de Octal

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s