Come eseguire eseguibili armhf su un sistema arm64?


10

Ho Ubuntu 16.04.2 LTS installato su un server 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

Ho eseguito il comando seguente per abilitare l' armhfinstallazione del pacchetto:

# dpkg --add-architecture armhf

Ho quindi installato il traceroutepacchetto:

# 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) ...

Tuttavia, non riesco ad avviare l'eseguibile:

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

Ulteriori informazioni:

# 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

Ho anche provato a installare binfmt-supporte confermare che il binfmt_miscmodulo è stato caricato.

Non è arm64compatibile con le versioni precedenti armhf? Come posso eseguire armhfeseguibili su un arm64server?


Apparentemente tutte le dipendenze e l'interprete devono essere anche a 32 bit
You'reAGitForNotUsingGit

Ti sei esibito apt-get update; apt-get upgradedopo dpkg --add-architecture armhf?
Marcos Silveira,

@MarcosSilveira sì, nessuna differenza.
Nathan Osman,

Risposte:


16

Il supporto Arm32 è opzionale su arm64. In pratica, esiste solo una CPU arm64 che omette il supporto del set di istruzioni arm32 legacy - Cavium ThunderX. Dalla stringa della versione del kernel, sembra che tu stia utilizzando i server armv8 di Scaleway. In questo caso, sei sfortunato: i server armv8 di Scaleway sono basati su ThunderX. Utilizzare invece Scaleway C1, che è nativo arm32.


2
Bene, sto usando Scaleway. Grazie per il chiarimento.
Nathan Osman,

1
Anche il server di tipo 2A di Packet è basato su ThunderX ed è soggetto a questa limitazione.
Vielmetti,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.