Frage

Mein Endziel ist es, drahtlose Tools für mein altes ActionTec -Modem/Router zu kompilieren, damit ich es als drahtlose für die Ethernet -Brücke konfigurieren kann. Derzeit werden die drahtlosen Funktionen (scheinbar) von derselben Binärdatei gesteuert, die den größten Teil der Weboberfläche verwaltet. Es scheint jedoch, dass sie die drahtlosen Bibliotheks -Tools zumindest für zumindest einen Teil der Funktionalität verwenden.

Ich habe noch nie zuvor für eine andere CPU -Architektur zusammengestellt und bin mir nicht sicher, wie ich voll identifizieren kann, was ich tun muss. Ich versuche, UCLIBC zu verwenden, da es im Rest des Systems anscheinend verwendet zu werden, aber ich bin mir nicht sicher, wie man Buildroot für die Modems -Umgebung konfiguriert. Ich machte einen beste Annahme In welcher Konfiguration sollte auf den Informationen von Proc unten basieren, aber etwas falsches, da eine einfache C -Anwendung, die nur damit zusammengestellt wird, nicht ordnungsgemäß ausgeführt wird.

# 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
War es hilfreich?

Lösung

Sie haben Recht, Sie brauchen ein angemessenes MIPS Toolchain Um Ihre Anwendung zu kompilieren und Bauroot kann das tun. Aber vielleicht müssen Sie Buildroot's optimieren Menuconfig Optionen.Abhängig von der Ausgabe von file, Ihre Optionen können sich ändern. In meinem System informieren binäre Apps Folgendes:

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

Dies sind die Optionen, die ich für das Menuconfig meines Buildroot aktiviert habe:

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  --->

Die Toolchain selbst ist bei installiert /opt/cross-mips-buildroot. Sie können den Compiler und andere Tools finden /opt/cross-mips-buildroot/usr/bin/

Versuchen Sie, eine einfache zu kompilieren Hallo Welt Anwendung und prüfen Sie, ob Sie es im MIPS -System ausführen können.

Notiz: Diese Konfiguration erstellt keinen C ++ - Compiler. Wenn Sie es brauchen, können Sie grep LIBSTDCPP .config und prüfen Sie, ob es aktiviert ist oder nicht, und ändern Sie es an Ihre Vorlieben. Dann make menuconfig es möglich machen.

Andere Tipps

Kasse:

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

Es ist der maßgebliche Standort auf Cross-Compiling unter GCC.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top