viernes, 8 de junio de 2012

Guía instalación Raspberry Pi con Arch Linux ARM (Parte I, instalación base)

Raspberry Pi
Nota: la última actualización de esta guía fue el 19-01-2013. Al ser Arch Linux una distribución rolling release puede que cuando la leas algunas cosas hayan cambiado aunque la mayoría seguirán siendo como esta escrito a continuación.

Si ya tenemos en nuestras manos una Raspberry Pi convencidos de que nos puede ser de utilidad para algunas tareas y la hemos desempaquetado el primer paso que deberemos de dar es instalar alguna de las distribuciones GNU/Linux disponibles, en este momento Debian y Arch Linux ARM, Fedora finalmente ha tenido algún problema y desapareció de la lista de descargas aunque es probable que en algún momento vuelva a ofrecer soporte.
Arch Linux ARM

Los materiales que deberemos tener para realizar el proceso además de la propia Raspberry son:
  • un cargador USB y un cable adaptador USB a micro USB (un cargador de móvil capaz de dar al menos 750mA)
  • Una tarjeta de memoria SD o SDHC (en la lista de periféricos verificados puedes comprobar las tarjetas compatibles)
  • Un cable de red y un router al que conectarlo
  • Conexión a internet para realizar la instalación de paquetes y actualizaciones
  • Un ordenador con un lector de tarjetas SD o SDHC.
  • Última imagen de la distribución Arch Linux ARM que podemos obtener de la página de descargas.
Este es material básico que deberemos disponer, opcionalmente podemos tener un teclado USB y un monitor con entrada de vídeo HDMI (además de un cable HDMI), pero es opcional ya que desde un inicio podremos conectarnos via SSH a la Raspberry Pi con lo que el teclado y monitor son prescindibles salvo que queramos disponer de un entorno gráfico (y con una terminal remota gráfica como VNC tal vez ni eso).

Los pasos para realizar la instalación son los siguientes:

Grabar la imagen de Arch Linux ARM en la tarjeta SDHC

Este es el primer paso que deberemos hacer pero para ello deberemos averiguar el dispositivo correspondiente a la tarjeta SD ejecutando el comando antes de insertarla y después de insertarla:



El nuevo dispositivo que nos aparezca será el correspondiente a la tarjeta SD, en la imagen /dev/mmcblk0 (sin el p1 o p2, que indican la partición). Hay que prestar especial atención a este paso ya que si grabamos la imagen en otro dispositivo probablemente perderemos datos en el mejor de los casos o destruiremos el sistema de archivos dejando el ordenador inservible.

Una vez averiguado el dispositivo destino de la imagen la grabaremos con el siguiente comando, cambiando la ruta del parámetro if a donde tengamos la imagen:

El proceso tardará un rato y si todo ha ido bien montando la tarjeta veremos dos particiones, una de 100 MiB que es la partición de arranque y otra de 1,9 GiB para el usuario.

Redimensionar partición del sistema

Los tamaños de las particiones serán los anteriores (100 MiB y 1,9 GiB) independientemente de si tenemos una tarjeta SDHC de más capacidad como 4/8/16/32 GiB. Si queremos aprovechar el espacio total de nuestra tarjeta deberemos redimensionar la partición de 1,9 GiB o crear una tercera partición. Aquí explicaré la opción de redimensionarla que se puede hacer por linea de comandos o de forma gráfica con gparted ya sea con un live CD si somos usuarios de windows o instalando su paquete para nuestra distribución GNU/Linux.

Seleccionamos el dispositivo de la tarjeta en gparted y con el botón derecho sobre la partición de 1,9 GiB le damos a redimensionar (la partición deberá estar desmontada), agrandamos la partición hasta el máximo y le damos a Redimensionar/mover. Todavía los cambios no se han aplicado, hacemos clic en el menu «Editar > Aplicar todas las operaciones». Este proceso también tardará uno o dos minutos.




En este punto ya tenemos la tarjeta SD lista para arrancar la Raspberry Pi y será lo que hagamos a continuación.

Primer arranque de la Raspberry Pi

Como vemos el proceso de instalación hasta aquí tiene unos cuantos pasos pero no corremos ningún peligro de dejar la Raspberry Pi tan útil como un ladrillo («briked») como nos podría ocurrir con otras placas. Lo peor que podremos conseguir es que no arranque con la tarjeta SD.

Teniendo el cable de red de la raspberry conectado al router y nuestro ordenador conectado al mismo router estamos listos para arrancar la Raspberry, como no tiene un botón de encendido o apagado solo tendremos que conectar el cable USB y el cargador a la toma de corriente. Yo recomiendo tener un cargador al cual se le pueda quitar el cable USB (que el cargador y el cable USB no estén unidos de manera fija) de esta manera para apagar la Raspberry cuando queramos podremos quitar el cable USB del cargador o también podemos optar por desenchufar el cargador. Esto lo recomiendo ya que al no tener caja la Raspberry evitamos tocar la placa muy amenudo para evitar dañarla (tiene un condensador al lado de la conexión micro USB que corre cierto peligro de se arrancado si no tenemos cuidado). De esta forma dejamos el conector micro USB siempre conectado y reducimos la manipulación de la placa al mínimo.

Conectamos el cable USB y el cargador a la corriente, si todo va bien veremos unos cuantos LED encenderse (Red, Link, Full Duplex, Power y Ok). Pasados unos cuantos segundos podremos iniciar sesión con SSH para lo cual necesitaremos conocer la IP que ha asignado nuestro router por DHCP a la Raspberry, cosa que podemos ver en el apartado de administración del router.


Iniciar sesión conectando via SSH

La imagen de Arch Linux ARM viene ya por defecto con el demonio sshd instalado. Esto es muy útil ya que nos permite entrar en la Raspberry sin necesidad de tener un monitor o teclado conectado directamente a ella y podemos utilizar los del ordenador en el que trabajamos tal y como si lo hiciésemos en él pero realmente ejecutando los comandos en la Raspberry. Para ello ejecutamos (tal vez cambiando la dirección IP):

Nos mostrará el fingerprint de la clave SSH y preguntará si confiamos en ella, después de responder que sí introducimos la clave que por defecto es root. Ya podemos ver el prompt ([root@alarmpi ~]#).


Actualizar los paquetes de la imagen

Casi seguro (por no decir seguro) que los paquetes de la imagen estén desactualizados ya que Arch Linux es una distribución rolling release, por tanto el primer comando que ejecutaremos será para actualizar a sus últimas versiones todos los paquetes del sistema:



Con los cambios realizados al gestor de paquetes de arch linux con los cuales desde la versión 4.0 de pacman  los paquetes se firman digitalmente probablemente necesitemos actualizar el paquete pacman e inicializar la cadena de firmas con:

El paquete haveged proporcionará la entropía necesaria al ejecutar pacman-key, sino pacman-key puede que tardase en ejecutarse mucho tiempo.

Cambiar la clave del usuario root

La clave por defecto de root es lo siguiente a modificar ya que es conocida y por tanto no es nada segura, por lo que la cambiaremos:



Crear un usuario

Lo siguiente será crear un usuario para no conectarnos siempre con permisos de root, lo que haremos no es muy diferente de lo que haríamos para una instalación de Arch Linux en cualquier computadora:

Tambien instalamos el paquete sudo para en el momento que necesitemos poder ganar pemisos de super usuario como en el caso de una actualización del sistema.

Le damos permisos al usuario que hayamos creado:

Elimando un # y dejando en el archivo (esto no cambia de la guía de instalación para un ordenado de escritorio)

Con esto todo los usuarios del grupo wheel, como en el caso del que acabamos de crear, podrán hacer sudo.


Edición propiedades del sistema

Ahora cambiaremos algunas propiedades del sistema como el idioma, el nombre del sistema, la zona horaria del reloj. Para el idioma editamos el archivo /etc/locale.gen y descomentamos nuestro locale en español según sea nuestra región como puede ser es_ES.UTF-8. Seguidamente lanzaremos el siguiente comando para que el sistema se actualice al nuevo idioma.



Para terminar con el idioma lanzamos los siguientes dos comandos:


Nombre del sistema

Para identificar la máquina podemos darle al sistema un nombre fácil de recordar y que nos permita diferenciarlo de otros. Para ello lanzaremos el siguiente comando modificado el nombre según queramos:

Cambiar la zona horaria

La Raspberry no tiene el hardware del reloj del sistema es por ello que la imagen de Arch Linux ARM arranca el servicio de red ntp para obtener la hora desde internet. Pero seguramente tendremos que actualizar la zona horaria de Arch en la que estemos. En mi caso:


Partición de memoria y ver memoria libre

La Raspberry Pi tiene 256 MiB (512MiB en los modelos nuevos) que son compartidos entre la GPU y la CPU. La memoria dedicada a la GPU y CPU puede modificarse según nuestras necesidades, por ejemplo, si solo nos conectamos a la Raspberry Pi por ssh y no hacemos uso de un entorno de escritorio no hace falta que le dediquemos mucha memoria a la GPU, la GPU solo necesitará más memoria si ejecutamos programas que hagan uso de ella. Esto se configura en el archivo /boot/config.txt con la propiedad gpu_mem. Por lo que podemos editar el archivo y añadir esa propiedad al final de todas con:

La memoria libre la podemos consultar con cualquiera de los dos siguientes comandos:


Overclock

Si queremos sacarle algo más de rendimiento a la RPi podemos subir la frecuencia del procesador. Esto no es ningún peligro y no se pierde la garantía por ello si se usa el valor recomendado de 800 Mhz, la RPi por defecto funciona a 700 Mhz es decir le estamos haciendo un overclock de 100 Mhz. Hay que editar el archivo /boot/config.txt y descomentar la propiedad arm_freq=800.

Dar color al prompt de la terminal

Dar color al prompt de la terminal nos ayudará a distinguir mejor donde estamos ejecutando los comandos con lo que para evitar algún riesgo lo podemos hacer. Necesitaremos editar los archivos ~/.bashrc y /root/.bashrc con el siguiente contenido para nuestro usuario (~/.bashrc):

Y para el usuario root (/etc/.bash_profile y /root/.bashrc):




Si queremos autocompletado en el comando sudo deberemos añadir lo siguiente al archivo .bashrc de nuestro usuario:

Y estos son los pasos básicos para tener la Raspberry Pi funcionando. De momento no tenemos algo que nos aporte valor pero la instalación de algunos programas que nos lo proporcionarán como programa de descargas torrent, servidor web con php, ftp u otros los explicaré en la segunda parte de esta Guía de instalación Raspberry Pi. El software que tenemos a nuestra disposición en Arch Linux ARM salvo algunas excepciones es mucho de lo que tenemos en Arch Linux prácticamente para cada necesidad tengamos una o más opciones entre las que elegir y la wiki de Arch Linux es una de los mejores recursos para aprender como instalarlos y usarlos, todo ello con la característica de Arch Linus de tener siempre las últimas versiones de cada paquete, los paquetes de Arch Linux ARM van a la par de los que encontramos en Arch Linux.

La siguiente página (La guarida de Smaug) que he creado es es una muestra y un adelanto de algunas funciones que podemos obtener con una placa de este tipo que comentaré en la siguiente parte de esta guía. Nota: puede que en algún momento la página anterior no sea accesible ya que no tengo siempre encendida la Raspberry.

Los elementos básicos para usar este miniordenador son la placa de la Raspberry Pi, una cargador de 3A junto con una tarjeta SD.

Referencia:
Raspberry Pi, desempaquetado («unboxing»)
Raspberry Pi, Guía instalación (Parte II) Programas
Dejar procesos vivos de conexión SSH con screen
Raspberry Pi
Arch Linux ARM
Paquetes de Arch Linux ARM