Pregunta

Mi objetivo final es compilar las herramientas inalámbricas para mi viejo módem Actiontec / enrutador para que pueda configurarlo como un puente inalámbrico para Ethernet. Actualmente sus características inalámbricas son (aparentemente) controladas por el mismo binario que gestiona la mayor parte de la interfaz web, pero parece que usaron los usos herramientas inalámbricas biblioteca internamente para al menos algunas de las funciones.

Nunca he compilado cruz por una arquitectura de CPU diferente antes y no está seguro de cómo plenamente la identidad lo que tengo que hacer. Estoy tratando de utilizar uClibc ya que parece que se utilizará en el resto del sistema, pero no estoy seguro de cómo configurar buildroot para el medio ambiente módems. Hice una mejor conjetura a lo que la configuración se debe basar en la información de proc abajo, pero algunas cosas mal ya que una C sencilla aplicación que sólo devuelve 0 compilados con ella no se puede ejecutar correctamente.

# cat /proc/version 
Linux version 2.4.17_mvl21-malta-mips_fp_le (root@localhost.localdomain) (gcc version 2.95.3 20010315 (release/MontaVista)) #1 Thu Apr 21 18:04:37 PDT 2005
# cat /proc/cpuinfo 
processor               : 0
cpu model               : MIPS 4KEc V4.8
BogoMIPS                : 149.91
wait instruction        : no
microsecond timers      : yes
extra interrupt vector  : yes
hardware watchpoint     : yes
VCED exceptions         : not available
VCEI exceptions         : not available
¿Fue útil?

Solución

Está bien, se necesita un adecuado MIPS cadena de herramientas para cruzar-compilar su aplicación y Buildroot puede hacer eso. Sin embargo, es posible que tenga que ajustar de BuildRoot menuconfig Opciones. En función de la salida de file , sus opciones pueden cambiar. En mi sistema, aplicaciones binarias informan lo siguiente:

ELF 32-bit MSB executable, MIPS, MIPS32 rel2 version 1 (SYSV)

Estas son las opciones que he habilitados para menuconfig de mi Buildroot:

Target Architecture (mips)  ---> 
Target Architecture Variant (mips 32r2)  --->                                                            
Target ABI (o32)  --->                                                                                   
Target options  --->                                                                                     
Build options  --->   
    (/opt/cross-mips-buildroot) Toolchain and header file location?                                                                                   
Toolchain  --->        
    Toolchain type (Buildroot toolchain)  ---> 
    Kernel Headers (Linux 2.6.34.x kernel headers)  --->
    uClibc C library Version (uClibc 0.9.31.x)  ---> 
    [*] Build/install a shared libgcc?
    [*] Enable compiler tls support       
    [*] Build gdb debugger for the Target
    [*] Build gdb server for the Target
    [*] Build gdb for the Host
        GDB debugger Version (gdb 6.8)  --->
    [*] Enable large file (files > 2 GB) support?
    [*] Enable WCHAR support
    [*] Use software floating point by default
    [*] Enable stack protection support
    [*] Build/install c++ compiler and libstdc++?
    [*] Include target utils in cross toolchain  
Package Selection for the target  --->   
    [*] BusyBox
    [*]   Run BusyBox's own full installation
    Libraries  ---> 
        Networking  ---> 
            [*] libcurl
        Text and terminal handling  ---> 
            [*] icu
            -*- ncurses    
Target filesystem options  --->                                                                          
Bootloaders  --->                                                                                        
Kernel  --->

El conjunto de herramientas en sí está instalada en / opt / cruzadas MIPS-buildroot . Usted puede encontrar el compilador y otras herramientas en / opt / cruzadas MIPS-buildroot / usr / bin /

intenta compilar un simple hola mundo aplicación y ver si se puede ejecutar en el interior del sistema de MIPS.

Nota: esta configuración no va a construir un compilador de C ++. Si lo necesita, puede grep LIBSTDCPP .config y comprobar si se trata de habilitar o no, y el cambio a sus gustos. Entonces make menuconfig para que esto ocurra.

Otros consejos

Salida:

http://www.kegel.com/crosstool/

Es el sitio autorizada sobre compilación cruzada bajo GCC.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top