Omega 2 – Compilación Cruzada

En este tutorial les enseñare a instalar las herramientas de compilación cruzada LEDE originales en Kubuntu 18 para compilar nuestros programas en C o C++ para la Omega 2.

Considerando que las pruebas para instalar las herramientas que ofrece Onion no logro que compilen correctamente, realizare el tutorial basado en las herramientas LEDE (OpenWRT) originales que me han dado buenos resultados.

Este tutorial asume que ya se tiene conocimiento previo de la Omega 2, sus versiones y manejo de sistemas operativos embebidos.

La compilación cruzada nos permite escribir programas desde un computador de escritorio o portátil, compilarlos a una buena velocidad y simplemente pasar el archivo generado a nuestro Omega 2 para que sea ejecutado. Esto nos evita pasar el sistema de compilación a la omega 2 mejorando el tiempo de compilación y nos evita utilizar una tarjeta micro SD o una USB y perder las posibilidades que nos da una tarjeta adicional para usar con nuestros programas.

Empecemos

Primero debemos instalar algunos programas en nuestro computador para descargar y correr las herramientas.

sudo apt-get install -y git wget subversion build-essential libncurses5-dev zlib1g-dev gawk flex quilt git-core unzip libssl-dev python-dev python-pip libxml-parser-perl

Si ya tenemos varios de los paquetes instalados, este proceso no demora pero si no tenemos ningún paquete, esto puede demorar alrededor de 10 a 15 minutos dependiendo de nuestro equipo y nuestra conexión a Internet.

Procedemos a descargar el repositorio utilizando git, los archivos pesan alrededor de 138MB por lo que demorara un poco.

git clone https://git.lede-project.org/source.git

Ingresamos a la carpeta que se acaba de crear llamada source

cd source/

Configuramos las herramientas para que la compilación la haga para nuestra Omega 2 (+)

make menuconfig

En Target System marcamos MediaTek Relink MIPS

En Subtarget marcamos MT6x8 based boards

En Target Profile marcamos la opción Multiple devices

Esto nos abre un nuevo elemento, Target Diveces, Donde entramos y marcamos las opciones de Onion Omega2 y Onion Omega2+

Salimos de la configuración (flecha a la derecha y enter), nos pide si queremos guardar la nueva configuración, damos enter y nos saca de nuevo al terminal.

luego vamos a empezar la compilación de las herramientas LEDE, recomiendo hacer esto cuando no utilice el computador ya que este proceso se demora alrededor de dos horas y media dependiendo del equipo que tenga. Adicional a esto se le puede indicar a la compilación que utilice mas de un procesador aunque en ocasiones esto puede fallar.

Para este tutorial puedo usar 4 procesadores que dispone mi portátil, pero como lo deje toda la noche y en ocasiones falla, lo deje solo con un procesador.

make -j1

-j indica el numero de procesares, -j1 para un procesador, -j2 para dos procesadores, la limitante es nuestro computador.

Una ves finalizada la compilación nos quedan instaladas nuestras herramientas, solo falta crear los alias para que no tengamos que poner la dirección completa de la instalación cada ves que queramos compilar.

en mi caso, deje la descarga de git en la dirección /home/kamilo/source por lo que la dirección de mi compilador esta a partir de esta.

en el terminal escribimos

nano ~/.bashrc

vamos hasta el final del documento y escribimos nuestro alias.

alias onion_gcc=’/home/kamilo/source/staging_dir/toolchain-mipsel_24kc_gcc-7.3.0_musl/bin/mipsel-openwrt-linux-gcc’

y

alias onion_gpp=’/home/kamilo/source/staging_dir/toolchain-mipsel_24kc_gcc-7.3.0_musl/bin/mipsel-openwrt-linux-g++’

salimos con control+x luego damos en Y para guardar cambios y enter. Ya tenemos nuestro compilador para C y C++, solo nos queda reiniciar nuestro PC para que queden los cambios.

Para realizar nuestro primer programa con compilación cruzada te invito a visitar nuestro tutorial Omega 2 – HolaMunto Con Compilación Cruzada

Bibliografía

https://openwrt.org/

https://docs.onion.io

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *