Skip to content

Práctica de Embedded Linux

Gonzalo G. Fernández edited this page Mar 15, 2020 · 4 revisions

Buildroot

Instalación de dependencias, teniendo como host máquina con Arch Linux o distribución basada en Arch:

$ sudo pacman -S git wget cpio unzip rsync bc ncurses screen

Paquetes como build-essential vienen por defecto en la instalación base del sistema operativo.

Se clona el repositorio de buildroot, y en la carpeta buildroot se switchea a la versión con la que se trabajará:

$ git clone git://git.buildroot.net/buildroot
$ cd buildroot
~/buildroot$ git checkout 2019.11.1

En la carpeta configs se encuentran todas las plataformas sobre las que se puede trabajar.

~/buildroot$ ls configs

En nuestra aplicación, consiste en una Raspberry Pi 2 Model B (a modo de prueba en paralelo con todo el resto del desarrollo, luego se trabaja en una Raspberry Pi 3). Con la línea anterior podemos observar que se encuentra en la lista raspberrypi2_defconfig, por lo tanto:

~/buildroot$ make raspberrypi2_defconfig

Al final de la construcción, se puede observar el siguiente mensaje:

#
# configuration written to /home/ggf/buildroot/.config
#

Por último, para compilar:

~/buildroot$ make

Booteando en la imágen

La imágen una vez compilado lo anterior, se encuentra en ~/buildroot/output/images/sdcard.img. Para reconocer la memoria SD donde se quemará la imágen, se utiliza la herramienta dmesg:

$ dmesg -w

Con el comando anterior, se utiliza dmesg con la opción watch. Si luego se conecta la SD, se debería observar las siguientes líneas en consola:

[ 7689.106685] mmc0: new high speed SDHC card at address 219f
[ 7690.615058] mmcblk0: mmc0:219f APPSD 31.3 GiB 
[ 7690.627411]  mmcblk0: p1 p2

En este caso, el identificador de la memoria SD es mmcblk0 (con Ctrl+C se para dmesg).

Para quemar la imágen en la SD se utiliza la herramiente dd:

~/buildroot$ sudo dd if=output/images/sdcard.img of=/dev/mmcblk0 bs=1M status=progress

Clone this wiki locally