Cómo vencí al sedentarismo

Instalación de Fedora 28 en DragonBoard 410c

DragonBoard 410c vs Raspberry Pi 3

DragonBoard410c

La DragonBoard 410c es un «ordenador en placa» (Single Board Computer) similar a la más conocida Raspberry Pi 3. Cuando salió al mercado en 2015, la DragonBoard era más potente que la Raspberry Pi 2, pero posteriores actualizaciones han restado valor a esta pequeña bestia. La DragonBoard 410c dispone de un procesador de cuatro núcleos ARM Cortex A53 a 1.4 GHz, 1 GB de RAM, 8 GB de memoria flash, microSD, HDMI, 40 pines digitales lentos, Wi-Fi, Bluetooth, GPS, USB, etc.

En la tabla de abajo se puede ver la comparación de las características de la Raspberry Pi 3 más reciente (la B+) y de la DragonBoard 410c.

  Raspberry Pi 3 B+ DragonBoard 410c
CPU

ARM Cortex A53 (4 núcleos).
Broadcom BCM2837B0. 1.4 GHz.

ARM Cortex A53 (4 núcleos).
Qualcomm Snapdragon 410. 1.4 GHz.
Bits CPU 32/64 32/64
RAM 1 GB LPDDR2 1 GB LPDDR3
Memoria flash No 4 GB eMMC 4.5
Memoria externa MicroSD MicroSD
GPU Broadcom Videocore IV
OpenGL ES 1.1, 2.0

Qualcomm Adreno 306
OpenGL ES 3.0, OpenCL, DirectX

HDMI 1.4. Tipo A - 1080p HD. Tipo A - 1080p HD.
Wi-Fi 802.11 b/g/n/ac 2.4/5GHz 802.11 b/g/n 2.4GHz
Bluetooth 4.2, BLE 4.1
USB

4 x 2.0 (modo anfitrión).
1 x Tipo C (alimentación).

2 x 2.0 (modo anfitrión).
1 x Tipo C (modo dispositivo).

Ethernet Gigabit Ethernet No
GPS No
Alimentación 5V, 2.5A (Micro USB). 8V~18V, 3A (conector jack).
Pines 40x: 28xGPIO,UART,SPI,I2C,3.3V,5V.

40 x baja velocidad: UART,SPI,PWM,12xGPIO,+1.8V,+5V.
16 x analógicos: radio FM, auriculares.
60 x alta velocidad: 4L MIPI-DSI,USB, I2C x2,2L+4L.

Voltaje pines +1.8V +3.3V
LEDs   4 x Controlables por el usuario.
1 x Wi-Fi.
1 x Bluetooth.
Tamaño 85mm x 56mm 85mm x 54mm
Precio 40€ 70€

Para mi, las ventajas de la Raspberry Pi 3 B+ son claras: es una placa más barata y popular, con una gran comunidad a su alrededor. Los pines trabajan a 3.3V, lo cual es una dificultad añadida para los que estamos acostumbrados a los 5V de Arduino, pero mucho mejor que los 1.8V de la DragonBoard, que obliga a usar niveladores de voltaje con muchos sensores diseñados para 3V o 5V. La Raspberry Pi tiene un conector de red Ethernet que en ciertas ocasiones es muy útil.

La DragonBoard 410c por su parte es una placa con características extras interesantes. Por un lado está la memoria flash de 8 GB, en la que podemos instalar el sistema operativo (aunque Fedora sólo se puede instalar, de momento, mediante la tarjeta microSD). La DragonBoard tiene gran variedad de pines, incluyendo soporte para salida de sonido y radio FM. Los LEDs de usuario también pueden ser útiles. Y, finalmente, el receptor integrado de GPS, aunque sólo será posible usarla si está soportada por el sistema operativo instalado.

En mi caso, ya disponía de la placa DragonBoard por razones profesionales, siendo una de las placas de referencia de Ubuntu Core.

Descarga de software

A diferencia de Ubuntu Core, la instalación de Fedora requiere la actualización del firmware de la DragonBoard. Y antes de seguir quiero aclarar (¿declarar? :) que sigo las instrucciones de Peter Robinson :)

En esta página de Linaro se pueden encontrar los últimos ficheros de rescate para la DragonBoard 410c. Ahí encontraremos el firmware actualizado. Al entrar en el directorio más reciente (ahora mismo, 17.09) veremos los ficheros para descarga al final de la página. De ellos, hay que descargar dragonboard410c_bootloader_emmc_linux-XX.zip (XX es un número, en el caso de la captura de abajo es 88).

Captura de pantalla de 2018-08-01 23-55-45

Además de ese, hay que descargar otros dos ficheros provistos por Fedora: u-boot.img y emmc_appsboot.mbn.

Captura de pantalla de 2018-08-02 00-44-35

Finalmente, debemos descargar la imagen de Fedora para ARM 64 bits. En la página de descarga de Fedora se ven diferentes sabores de Fedora. Por ejemplo, se puede instalar la versión Workstation y usar el escritorio Gnome. En mi caso, decidí quedarme con la versión modo consola, la Fedora 28 Minimal.

Esta imagen la instalaremos luego en una tarjeta microSD. Hay que asegurarse de que la tarjeta tiene espacio para la imagen. Es raro encontrar tarjetas hoy en día de menos de 1 GB, pero el aviso es obligatorio ;)

Instalación del firmware

Una vez descargados todos los ficheros necesarios, nos vamos a un PC con Fedora, aunque también podría hacerse desde Ubuntu u otros Linux instalando los paquetes adecuados. En mi caso, uso la última versión al momento de escribir, Fedora 28.

Lo primero que hacemos con las descargas es descomprimir los ficheros. En concreto, el dragonboard410c_bootloader_emmc_linux-XX.zip. Trasladamos emmc_appsboot.mbn y u-boot.img al directorio donde hayamos extraído los ficheros del zip.

Captura de pantalla de 2018-08-07 02-02-31

Ahora hay que encender la DragonBoard en modo fastboot, de tal forma que permita la actualización del firmware. Para ello, mantenemos presionado el botón de bajar volumen etiquetado (-) y S4, situado junto a los puertos USB, y conectamos la alimentación. Tras 30 segundos, soltamos el botón y ejecutamos las siguientes órdenes:

$ sudo ./flashall
$ sudo fastboot flash aboot emmc_appsboot.mbn
$ sudo fastboot flash boot u-boot.img

Con ésto habremos actualizado el firmware de la DragonBoard 410c y ya estará lista para iniciar Fedora desde la tarjeta microSD.

Instalación del software

Para instalar Fedora en la tarjeta microSD, abrimos una terminal e instalamos los siguientes paquetes: arm-image-installer, android-tools y screen.

$ sudo dnf install arm-image-installer android-tools screen

Seguidamente insertamos una tarjeta microSD en el PC (en mi caso, una de 32 GB) e instalamos la imagen descargada de Fedora en la tarjeta. Para ello usamos la utilidad fedora-arm-image-installer. Antes de ejecutar la orden, hay que conocer el nombre del dispositivo asociado a la tarjeta y lo encontratemos mediante el comando lsblk. Advertencia: Hay que asegurarse de que el nombre del dispositivo es el correcto, o de lo contrario borraremos los datos de otra unidad de disco.

Captura de pantalla de 2018-08-10 00-19-06

Como vemos, la tarjeta de 32 GB (al darle formato se queda en 29 GB) es /dev/sdb.

$ sudo fedora-arm-image-installer --image=Fedora-Minimal-28-1.1.aarch64.raw.xz --target=dragonboard410c --media=/dev/sdb --resizefs

Captura de pantalla de 2018-08-10 00-25-07

Tras unos minutos (puede tomar un rato) la tarjeta ya está casi lista para ser insertada en la DragonBoard.

La forma más sencilla de conectar la DragonBoard a Internet es a través de Wi-Fi. Sin embargo, en Fedora 28 el controlador de la Wi-Fi no viene de serie y por tanto, hay que usar un adaptador USB-Ethernet.

Configuración

La primera vez que ejecutemos Fedora en la DragonBoard hay que configurar varias opciones la contraseña del superusuario. 

Captura de pantalla de 2018-08-10 01-16-37

Una vez hayamos finalizado la configuración, presionamos 'c' para continuar. El sistema se reiniciará.

El último paso de la configuración de la DragonBoard es la descarga e instalación del firmware para la Wi-Fi (paquete disponible gracias a Peter Robinson de Fedora). Para ello, iniciamos una sesión con el superusuario (root) 

$ curl -O https://fedora.roving-it.com/qcom-db410c/wcn36xx-firmware-1032.1.1-1.fc27.noarch.rpm
$ sudo rpm -i wcn36xx-firmware-1032.1.1-1.fc27.noarch.rpm
$ sudo reboot

Aunque el fichero es para Fedora 27 (fc27), Al reiniciar la DragonBoard, el firmware de la Wi-Fi se cargará automáticamente. 

Para configurar la conexión Wi-Fi usamos la utilidad nmcli.

Captura de pantalla de 2018-08-10 01-47-00

$ nmcli device wifi 
$ sudo nmcli device wifi connect <NOMBRE DE LA RED WI-FI> password <CONTRASEÑA>

Con la primera orden listamos las redes Wi-Fi disponibles y con la segunda nos conectamos a la red que indiquemos.

Con esto ya podemos comenzar a trastear con Fedora en la DragonBoard.

Enlaces

Comentarios