Jak uruchomić pliki wykonywalne armhf w systemie arm64?


10

Mam Ubuntu 16.04.2 LTS zainstalowany na serwerze 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

Uruchomiłem następujące polecenie, aby włączyć armhfinstalację pakietu:

# dpkg --add-architecture armhf

Następnie zainstalowałem traceroutepakiet:

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

Nie mogę jednak uruchomić pliku wykonywalnego:

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

Dalsza informacja:

# 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

Próbowałem także zainstalować binfmt-supporti potwierdzić, że binfmt_miscmoduł został załadowany.

Nie jest arm64kompatybilny wstecz armhf? Jak mogę uruchomić armhfpliki wykonywalne na arm64serwerze?


Najwyraźniej wszystkie zależności oraz tłumacz muszą być również 32-bitowe
You'reAGitForNotUsingGit

Czy występowałeś apt-get update; apt-get upgradepóźniej dpkg --add-architecture armhf?
Marcos Silveira

@MarcosSilveira tak, bez różnicy.
Nathan Osman

Odpowiedzi:


16

Obsługa Arm32 jest opcjonalna w arm64. W praktyce jest tylko jeden procesor arm64, który pomija obsługę starszych zestawów instrukcji arm32 - Cavium ThunderX. Z ciągu wersji jądra wygląda na to, że używasz serwerów Scaleway armv8. Jeśli tak jest, nie masz szczęścia - serwery Scaleway armv8 są oparte na ThunderX. Zamiast tego użyj Scaleway C1, który jest natywnym uzbrojeniem32.


2
Zgaduję, używam Scaleway. Dziękuję za wyjaśnienie.
Nathan Osman

1
Serwer typu 2A pakietu jest również oparty na ThunderX i również podlega tym ograniczeniom.
vielmetti
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.