de soporte adicional se listaron anteriormente en este mismo capítulo. Si encuentra dificultades con la plataforma RPi que no estén descritas en la documentación, visite los foros de usuarios de Raspberry Pi en la dirección www.raspberrypi.org/forums/. Por favor, no olvide nunca que los miembros de la comunidad de usuarios que publican en los foros lo hacen de manera altruista y dedican voluntariamente una buena parte de su tiempo a resolver las dudas de otros.
1 www.roylongbottom.org.uk/Raspberry%20Pi%20Benchmarks.htm.
2 Antes conocido como XBMC.
3 github.com/raspberrypi/firmware/blob/master/boot/LICENCE.broadcom.
Capítulo
2
El software del Raspberry Pi
En este capítulo se nos presenta el sistema operativo Linux junto con herramientas software que podremos utilizar con el Raspberry Pi (RPi). El objetivo de este capítulo es aprender a conectar nuestra placa a una red o conexión serie y controlarla mediante comandos de Linux básicos. Asimismo, se examinan herramientas de configuración específicas para personalizar el RPi y para actualizar el software de la placa. Tras completar el capítulo, el lector debería ser capaz de controlar un LED del sistema en la placa a través de comandos Linux que habrá aprendido siguiendo un tutorial paso a paso. Este ejemplo le mostrará cómo enviar comandos del shell de Linux a través de una ventana de terminal. El capítulo finaliza con un análisis de la mejor manera de apagar y reiniciar la placa correctamente y con seguridad.
Materiales necesarios para este capítulo:
❏Una placa Raspberry Pi (idealmente RPi3, 2, o B+).
❏Un cable de alimentación USB y una fuente de alimentación.
❏Una tarjeta micro-SD (a partir de 8 GB e idealmente de Clase 10 o superior).
❏Infraestructura y cableado de red, cable serie o adaptador WiFi.
Puede encontrar más detalles sobre este capítulo en la dirección:
www.exploringrpi.com/chapter2/.
Linux en el Raspberry Pi
Una Linux distribution es una versión de dominio público de Linux que contiene un conjunto determinado de herramientas y programas. Existen numerosísimas distribuciones diferentes de Linux, que suelen estar orientadas a distintas aplicaciones. Por ejemplo, los propietarios de servidores de alto nivel pueden instalar las distribuciones Red Hat Enterprise, Debian u OpenSUSE; los usuarios de ordenadores personales, Ubuntu, Debian, Fedora o Linux Mint. El alma común a todas las distribuciones es el núcleo (kernel) de Linux, concebido y desarrollado por Linus Torvalds en 1991.
A la hora de decidirnos por una u otra distribución de Linux para nuestro sistema empotrado, lo más sensato sería optar por una que cumpliera los siguientes requisitos:
❏Una distribución estable y con buen soporte.
❏Una distribución que incluya un gestor de paquetes de calidad.
❏Que sea compacta y pensada para ocupar poco espacio de almacenamiento.
❏Que cuente con el soporte de una buena comunidad de usuarios para nuestro dispositivo concreto.
❏Que incluya buenos controladores para los periféricos que vayamos a usar.
Distribuciones de Linux para el RPi
En esencia, las abundantes distribuciones Linux para sistemas empotrados utilizan todas el mismo núcleo estándar de Linux. Sin embargo, cada una incluye un conjunto de herramientas y configuraciones que resultan en experiencias de usuario muy diferentes. Las principales distribuciones de Linux de código abierto empleadas por la comunidad de usuarios de RPi son Raspbian, Ubuntu, OpenELEC y Arch Linux.
Raspbian es una versión de Debian concebida específicamente para el RPi. Debian (una abreviación de Debbie e Ian) es una distribución Linux dirigida por su comunidad de usuarios, que pone mucho énfasis en el desarrollo de código abierto. Ninguna organización comercial participa en el desarrollo de Debian. Raspbian amplía Debian con herramientas y paquetes de software, por ejemplo Java, Mathematica o Scratch, específicos para el RPi. En la actualidad tenemos disponibles tres versiones de Raspbian para descargar desde la web de Raspberry Pi:
❏Raspbian Jessie: es una imagen basada en Debian Jessie (Debian versión 8.x) con soporte completo de escritorio. (Tamaño de imagen: sobre 1,3 GB comprimida y unos 4 GB descomprimida).
❏Raspbian Jessie Lite: una imagen con tamaño mínimo basada también en Debian Jessie. Cuenta con un soporte de escritorio limitado, pero que se le puede ampliar fácilmente más adelante. (Tamaño de imagen: sobre 375 MB comprimida y unos 1,4 GB descomprimida).
❏Raspbian Wheezy: una imagen antigua basada en Debian Wheezy (Debian versión 7.x) que está disponible por motivos de compatibilidad con ciertos paquetes de software. Siempre que nos sea posible elegiremos la imagen Jessie, en particular si pretendemos realizar compilación cruzada de aplicaciones.
NOTA Raspbian (Jessie) se utiliza en los ejemplos paso a paso de este libro y, por tanto, es la distribución que recomendamos con insistencia. Asimismo, Debian es la distribución Linux de escritorio que utilizamos en el libro porque ofrece un excelente soporte para el desarrollo multiplataforma gracias a sus toolchain para compilación cruzada (www.debian.org).
Ubuntu es una distribución íntimamente relacionada con Debian. De hecho, la siguiente descripción es la de la propia web de Ubuntu (www.ubuntu.com): "Debian es la piedra sobre la que se edifica Ubuntu." Ubuntu es una de las distribuciones Linux más populares para el escritorio, sobre todo por su empeño en hacer Linux más accesible a los nuevos usuarios. Resulta fácil de instalar, tiene un soporte de controladores para escritorio excelente y también ofrece distribuciones binarias para el RPi. La baza principal de Ubuntu es la experiencia de usuario de su escritorio. Si se va a usar el RPi como dispositivo de computación de propósito general (véase el capítulo 14) Ubuntu puede ser la distribución que mejor se adapte a esa tarea.
OpenELEC (www.openelec.tv) se centra particularmente en las aplicaciones multimedia y sobre todo en Kodi (www.kodi.tv). Si desea utilizar el RPi como dispositivo multimedia para el hogar (home media center), esta distribución ofrece seguramente el mejor rendimiento. Las distribuciones OpenELEC utilizan generalmente un sistema de archivos de solo lectura, como squashfs (squash file system o squashFS), para un mayor rendimiento y fiabilidad. Sin embargo, tales optimizaciones dificultan el trabajo de prototipado y desarrollo.
Arch Linux (www.archlinuxarm.org) es una distribución de Linux ligera y flexible que persigue la simplicidad como objetivo principal. Su público son los usuarios de Linux de nivel medio o avanzado a los que ofrece control total, con la responsabilidad que conlleva, de la configuración del sistema. Hay disponibles versiones de Arch Linux ya compiladas y listas para el RPi. Sin embargo, comparada con otras distribuciones, en la actualidad ofrece menos soporte a los usuarios nuevos de Linux en la plataforma RPi.
La RPi Foundation desarrolló un instalador de Linux para usuarios nuevos llamado NOOBS, que contiene Raspbian pero ofrece la facilidad de descarga e instalación de otras distribuciones Linux. Numerosos kits incluyen una tarjeta SD con NOOBS junto con el hardware RPi. Sin embargo, si optamos por descargar e instalar una imagen Raspbian, deberíamos descargar directamente la imagen siguiendo las instrucciones de la sección siguiente.
Asimismo, han comenzado a aparecer otras soluciones no Linux, como Windows 10 IoT Core y RISC OS, para el RPi. Se trata de desarrollos