Cómo utilizar Docker para hacer compilación cruzada con Raspberry Pi

2024 04 06 21 02 36 raspberry pi electronica   Buscar con Google y 5 páginas más   Personal  Microso

Un compilador cruzado es un sw de compilación capaz de crear código ejecutable para una plataforma distinta a la que está ejecutando el propio compilador como por ejemplo usar  un compilador que se ejecuta en un PC con Windows 10 pero que  genera código que se ejecuta en nuestra Raspberry Pi es un compilador cruzado.

Un compilador cruzado es necesario compilar para múltiples plataformas de una máquina. Una plataforma podría ser inviable para que un compilador funcione, tal como para el microcontrolador de un sistema embebido porque esos sistemas no contienen ningún sistema operativo. En la paravirtualización, una máquina ejecuta muchos sistemas operativos y un compilador cruzado podría generar un ejecutable para cada uno de ellos desde una fuente principal.

Los compiladores cruzados no deben confundirse con los compiladores fuente-fuente . Un compilador cruzado es para el desarrollo de software multiplataforma de código binario, mientras que un compilador de fuente a fuente se traduce de un lenguaje de programación a otro en código de texto. Ambos son herramientas de programación .

Solía ​​ser tedioso configurar un entorno de compilación cruzada. Seguro que se puede compilar en el Pi de la frambuesa en sí, pero a veces quiere utilizar su computadora grande – y se puede utilizar cuando su Pi no está a la mano como cuando en un avión con un ordenador portátil. Puede ser complicado configurar un compilador cruzado para cualquier herramienta de compilación, pero si pasa por un simple paso, se convierte en súper fácil, independientemente de lo que su computadora real se parece. Ese paso es instalar Docker.

Docker está disponible para Linux, Windows y Mac OS. Permite a los desarrolladores crear imágenes que son esencialmente entornos Linux preconfigurados que ejecutan algún servicio. Al igual que una máquina virtual, estas imágenes pueden funcionar juntas sin interferir entre sí. A diferencia de una máquina virtual, los contenedores Docker (el software en ejecución) son ligeros porque comparten el mismo kernel y hardware subyacentes de la computadora.

La realidad es, la creación de la Frambuesa Pi construir el medio ambiente no es más fácil. Es sólo que con Docker, alguien más ya ha hecho el trabajo para usted y usted puede tomar automáticamente su configuración y mantenerlo actualizado. Si ya está ejecutando Linux, su gestor de paquetes probablemente hace que el proceso sea muy fácil también (ver el post de Rud Merriam en ese proceso ). Sin embargo, lo bueno de las imágenes es que es un entorno aislado completo que puede moverse de máquina a máquina y de plataforma a plataforma (las plataformas Windows y Mac utilizan una variedad de técnicas para ejecutar el software de Linux, pero se hace de forma transparente) .

2024 04 06 16 44 58 Raspberry Pi 4 ya a la venta en España   Buscar con Google y 6 páginas más   Per

INSTALACIÓN DE DOCKER

Si no está utilizando Linux, tendrá que averiguar cómo instalar Docker. Hay varias maneras de hacerlo bajo Windows (dependiendo de qué versión de Windows usa)  Sin embargo, en Linux, debe ser capaz de instalar lo que necesita a través de su gestor de paquetes.

En Ubuntu y otras distribuciones similares, puede esperar instalar el paquete Docker. Tiene sentido, pero no. Ese paquete es un gestor de iconos de la bandeja del sistema. Lo que quiere es docker.io:

sudo apt-get install docker.io

Verá algunos paquetes sugeridos, y puedes considerar añadir la opción -install-suggest a apt-get si quiere.

Docker se compone de dos partes: un daemon (un servidor que se ejecuta en segundo plano) y un cliente llamado docker. Hay una variedad de herramientas GUI para gestionar Docker si no te gusta la línea de comandos. Me gusta, así que eso es todo lo que sé sobre eso.

COMPILACIÓN CRUZADA

Docker mantiene un repositorio de imágenes en su sitio web llamado el Hub . De forma predeterminada, si no tiene una imagen local, el cliente buscará allí. En este caso en particular, la imagen que desea es sdthirlwall / frambuesa-pi-cross-compilador: legacy-trusty. Eso es un bocado, y el revelador proporciona una escritura agradable para llamarla bajo circunstancias normales. ¿Cómo se obtiene el guión? Usted utiliza Docker, por supuesto.

Por cierto, por defecto, necesitas ejecutar el cliente de Docker como root, aunque también puedes crear un grupo especial (aunque usar sudo funciona igual de bien). Aquí está el comando para ejecutar para obtener la secuencia de comandos rpxc:

sudo docker ejecutar sdthirlwall / raspberry-pi-cross-compilador: legacy-trusty> rpxc
Dado que probablemente no tenga esa imagen en su disco duro, el cliente tardará un tiempo en descargarla y completar la tarea. La próxima vez no tomará tanto tiempo porque Docker tendrá una copia local.

Puede configurar el comando rpxc para ejecutar con este comando:

Chmod + x rpxc

Luego muévalo a algún lugar de tu camino (o haz referencia a él por el camino completo como ./rpxc o ~ / Downloads / rpxc, si lo prefieres). Aunque puede descargar toda la imagen desde el Hub, si desea ver los archivos, contribuir o seguir el desarrollo, debería echar un vistazo al reporte de GitHub para el proyecto.

EN USO

El script rpxc generalmente ejecuta cualquier comando que desee en el nuevo entorno. Dado que ejecuta Docker, necesita ser root o en el grupo Docker, por supuesto. Todas las herramientas habituales de construcción están prefijadas con rpxc, así que:

rpxc rpxc-gcc -o hello-world hello-world.c

O, si tiene un Makefile:

rpxc make

El directorio actual en el que se encuentra al ejecutar rpxc, se convierte en el directorio / build en el nuevo entorno y es el directorio de trabajo actual por defecto.

Si usted es perezoso, usted puede ser que prefiera apenas funcionar:

rpxc bash

Entonces puedes emitir comandos y hacer lo que quieras. Haga una ls en / usr / local / bin / rpxc * para ver todas las herramientas disponibles. También puede utilizar el script rpxc para actualizar la imagen y sí mismo. Utilice el comando update para hacer ambos, o puede especificar update-image o update-script.

UNIÓN CÓSMICA

Hay otras imágenes que puede ser interesantes. Tienes que conseguir una cuenta gratuita en el Hub, y una vez que lo hagas, podrías pensar que hay un número muy pequeño de imágenes. Sin embargo, intente hacer una búsqueda de frambuesa, por ejemplo. O Arduino, que muestra una gran cantidad de entornos Arduino preconfigurados. También puede disfrutar de la búsqueda de ESP8266. Incluso hay una imagen Docker para el software de diseño Eagle PCB .

Fuente hackaday.com

ARRIBA