2017-01-27 3 views
1

Ich habe eine Broadcom Schaltplatine mit einer MPC8548E PowerPC-CPU drauf. Ich habe eine Toolchain für diese CPU mit crosstool-ng erstellt. Wenn ich versuche, die kompilierte binären mit dem CFE> Bootloader mit dem Befehl load -elf 10.13.51.131:main auf diesem Board zu laden, erhalte ich die folgende Ausgabe:Ungültige ELF-Datei Fehler in CFE Bootloader

CFE> load -elf 10.13.51.131:main 
Loader:elf Filesys:tftp Dev:eth0 File:10.13.51.131:main Options:(null) 
Loading: Warning: negative seek on tftp file attempted 
Failed. 
Could not load 10.13.51.131:main: Invalid ELF file 
*** command status = -16 

Warum wäre es Invalid ELF file sagen? readelf -h zeigt mir die folgenden Informationen:

$ readelf -h main 
ELF Header: 
    Magic: 7f 45 4c 46 01 02 01 00 00 00 00 00 00 00 00 00 
    Class:        ELF32 
    Data:        2's complement, big endian 
    Version:       1 (current) 
    OS/ABI:       UNIX - System V 
    ABI Version:      0 
    Type:        EXEC (Executable file) 
    Machine:       PowerPC 
    Version:       0x1 
    Entry point address:    0x100002c8 
    Start of program headers:   52 (bytes into file) 
    Start of section headers:   3972 (bytes into file) 
    Flags:        0x0 
    Size of this header:    52 (bytes) 
    Size of program headers:   32 (bytes) 
    Number of program headers:   7 
    Size of section headers:   40 (bytes) 
    Number of section headers:   28 
    Section header string table index: 25 

Wie kann ich die ELF-Datei zu erhalten geladen, ich will nicht einmal etwas noch laufen, es muss zuerst die ELF akzeptieren. Ich habe ein anderes ELF, das (angeblich) bereit ist, mit VxWorks kompiliert zu laufen, aber ich bekomme den gleichen Fehler, der auch verwendet.

Dies für eine Broadcom Referenzplatine für den Schalter BCM956440.

Antwort

1

Es sieht so aus, als ob Ihre Datei nicht korrekt übertragen wird (über tftp), was zu Fehlern führt, wenn die Datei als ELF geparst werden soll.

Vielleicht versuchen Sie eine Paketerfassung auf dem TFTP-Server, um den Verkehr zwischen Bollader und Server zu überprüfen. Versuchen Sie so etwas wie dies auf dem TFTP-Server:

tcpdump -s 2048 -w tftp.pcap -i <interface> udp port tftp 

- öffnen Sie dann die resultierende tftp.pcap Datei mit wireshark.