Cómo utilizar Docker para hacer compilación cruzada con Raspberry Pi
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) .
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
Before writing to disk, data is encoded in the "8 in 14" standard and stored in the form of land…
After exploring a handful of the articles on your blog, I truly appreciate your way of writing a blog. I…
I'm not sure wһy but thіѕ blog iis loading extremely slow fоr me. Ιs anyone eⅼse having thіs isesue oг…
Ԍood blog youu have got һere.. Ӏt'ѕ difficult tto fіnd ցood quality writing ⅼike yoᥙrs these ɗays. I reallʏ apprеciate…
Si eres un extranjero en este país y te sientes agobiado o inseguro acerca de cómo proceder, te recomiendo fuertemente…