Comment exécuter les exécutables armhf sur un système arm64?


10

J'ai Ubuntu 16.04.2 LTS installé sur un serveur arm64:

# uname -a
Linux test 4.9.23-std-1 #1 SMP Mon Apr 24 13:18:14 UTC 2017 aarch64 aarch64 aarch64 GNU/Linux

J'ai exécuté la commande suivante pour activer l' armhfinstallation du package:

# dpkg --add-architecture armhf

J'ai ensuite installé le traceroutepackage:

# apt-get install traceroute:armhf
Reading package lists... Done
Building dependency tree
[...]
Preparing to unpack .../traceroute_1%3a2.0.21-1_armhf.deb ...
Unpacking traceroute:armhf (1:2.0.21-1) ...
Processing triggers for man-db (2.7.5-1) ...

Cependant, je ne peux pas lancer l'exécutable:

# traceroute
-bash: /usr/sbin/traceroute: cannot execute binary file: Exec format error

Plus d'informations:

# file /usr/bin/traceroute.db
/usr/bin/traceroute.db: ELF 32-bit LSB shared object, ARM, EABI5 version 1 (SYSV),
    dynamically linked, interpreter /lib/ld-linux-armhf.so.3, for GNU/Linux
    2.6.32, BuildID[sha1]=0ebd0553e26b163dd848c131fe8ee0a4a2409109, stripped
# ldd /usr/bin/traceroute.db
        not a dynamic executable

J'ai également essayé d'installer binfmt-supportet de confirmer que le binfmt_miscmodule était chargé.

N'est pas arm64rétrocompatible avec armhf? Comment exécuter des armhfexécutables sur un arm64serveur?


Apparemment, toutes les dépendances ainsi que l'interpréteur doivent également être en 32 bits
You'reAGitForNotUsingGit

Avez-vous joué apt-get update; apt-get upgradeaprès dpkg --add-architecture armhf?
Marcos Silveira

@MarcosSilveira oui, aucune différence.
Nathan Osman

Réponses:


16

Le support Arm32 est facultatif sur arm64. En pratique, il n'y a qu'un seul processeur arm64 qui omet la prise en charge du jeu d'instructions arm32 hérité - Cavium ThunderX. À partir de la chaîne de version du noyau, il semble que vous utilisiez des serveurs Scaleway armv8. Si tel est le cas, vous n'avez pas de chance - les serveurs Scaleway armv8 sont basés sur ThunderX. Utilisez plutôt le Scaleway C1, qui est natif arm32.


2
Bonne supposition, j'utilise Scaleway. Merci pour la clarification.
Nathan Osman

1
Le serveur de type 2A de Packet est également basé sur ThunderX et est également soumis à cette restriction.
vielmetti
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.