Entradas etiquetadas con MIPS
Compilación OpenWRT
0Comenzando con nuevo proyecto, me veo en la necesidad de preparar el toolchain de OpenWRT para poder compilar paquetes, la idea final que perseguimos es poder compilar OpenPANA para poder correr este protocolo en OpenWRT.
Para poder generar el firmware de OpenWRT y el toolchain, necesario este último para poder realizar la compilación cruzada de paquetes para la arquitectura seleccionada para el firmware en cuestión, necesitamos tener instalados una serie de paquetes básicos.
Como realizando este proceso en una Debian 6.0 (squeeze), lo primero es instalar los paquetes básicos, para ello hacemos:
Con lo que a continuación ya podremos descargar el trunk de OpenWRT de los repositorios:
Si somos root nos dará un aviso al compilar, así que mejor usar una cuenta de usuario
A continuación haremos:
make menuconfig
En las opciones base, añado libpthreads ya que en nuestra caso estamos interesados en tener disponible gestión de hilos.
Una vez hecho esto, ya podremos compilar, obtendremos el firmware para nuestra arquitectura (en nuestro caso una Broadcom que va en un Linksys WRT54G) como también obtendremos el toolchain necesario para la compilación cruzada de aplicaciones/paquetes.
Aunque si lo que queremos es solamente el toolchain, haremos:
Hecho make o make toolchain, tendremos el toolchain en ambos casos y el firmware solo en el primer caso para la arquitectura que a nosotros nos interese.
Actualización
Podemos compilar de forma rápida un programita en C tipo “Hola Mundo!” para ver que todo funciona con normalidad, para ello:
Creamos con joe o vi, un programa en holamundo.c con el siguiente código:
#include
int main(char **argv, int argc){
printf("Hola mundo!!!\n");
}
A continuación exportamos el PATH añadiendo al actual, la ruta el compilador de C para nuestra arquitectura destino:
Y pasamos a compilar:
Y listo ya tenemos un ejecutable que podemos ejecutar dentro de nuestro Linksys.
Ahora solo nos queda llevarnos el binario de holamundo a nuestro Linksys Wrt54G y ejecutarlo:
Password:
BusyBox v1.15.3 (2010-03-19 05:58:57 CET) built-in shell (ash)
Enter 'help' for a list of built-in commands.
| |.-----.-----.-----.| | | |.----.| |_
| - || _ | -__| || | | || _|| _|
|_______|| __|_____|__|__||________||__| |____|
|__| W I R E L E S S F R E E D O M
BackFire (10.3-rc1, r20254)
* 1/3 shot Kahlua In a shot glass, layer Kahlua
* 1/3 shot Bailey's on the bottom, then Bailey's,
* 1/3 shot Vodka then Vodka.
---------------------------------------------------
root@OpenWrt:~# wget http://www.josevelasco.org/openwrt/holamundo
Connecting to www.josevelasco.org (86.109.170.38:80)
holamundo 100% |*******************************| 5730 --:--:-- ETA
root@OpenWrt:~# chmod a+x holamundo
root@OpenWrt:~# ./holamundo
Hola mundo!!!
root@OpenWrt:~#
Y como véis al final de la imagen anterior, “Hola mundo!!!” se muestra desde nuestro Linksys.