2017-01-27 7 views
1

J'ai un tableau de commutation Broadcom avec un processeur PowerPC MPC8548E. J'ai créé un toolchain pour ce CPU très en utilisant crosstool-ng. Lorsque je tente de charger le fichier binaire compilé en utilisant le chargeur de démarrage CFE> sur cette carte avec la commande load -elf 10.13.51.131:main, je reçois la sortie suivante:Erreur de fichier ELF non valide dans le chargeur de démarrage CFE

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 

Pourquoi dirait-il Invalid ELF file? readelf -h me montre les informations suivantes:

$ 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 

Comment puis-je obtenir le fichier ELF chargé, je ne veux même pas courir encore rien, il faut d'abord accepter l'ELF. J'ai un autre ELF qui est (soi-disant) prêt à fonctionner compilé avec VxWorks mais je reçois la même erreur en utilisant celui-là aussi.

Ceci pour une carte de référence Broadcom pour le commutateur BCM956440.

Répondre

1

Il semble que votre fichier ne soit pas transféré (via tftp) correctement, ce qui entraîne des erreurs lorsque le fichier doit être analysé en tant que fichier ELF.

Essayez peut-être d'exécuter une capture de paquet sur le serveur tftp, pour inspecter le trafic entre booloader et le serveur. Essayez quelque chose comme ceci sur le serveur tftp:

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

- puis ouvrez le fichier tftp.pcap résultant avec Wireshark.