Bagaimana menjalankan executable armhf pada sistem arm64?

10

Saya telah menginstal Ubuntu 16.04.2 LTS pada 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

Saya menjalankan perintah berikut untuk mengaktifkan armhfinstalasi paket:

# dpkg --add-architecture armhf

Saya kemudian menginstal traceroutepaket:

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

Namun, saya tidak bisa meluncurkan executable:

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

Informasi lebih lanjut:

# 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

Saya juga mencoba menginstal binfmt-supportdan mengonfirmasi bahwa binfmt_miscmodul telah dimuat.

Tidak arm64kompatibel dengan mundur armhf? Bagaimana saya bisa menjalankan armhffile executable di arm64server?

Nathan Osman
sumber
Rupanya semua dependensi dan interpreter juga harus 32-bit
You'reAGitForNotUsingGit
Apakah Anda tampil apt-get update; apt-get upgradesetelah dpkg --add-architecture armhf?
Marcos Silveira
@MarcosSilveira ya, tidak ada perbedaan.
Nathan Osman

Jawaban:

16

Dukungan Arm32 adalah opsional pada arm64. Dalam praktiknya, hanya ada satu arm64 CPU yang menghilangkan dukungan set instruksi arm32 legacy - Cavium ThunderX. Dari string versi kernel, tampaknya Anda menggunakan server Scaleway armv8. Jika ini masalahnya, Anda kurang beruntung - server Scaleway armv8 didasarkan pada ThunderX. Gunakan Scaleway C1 sebagai gantinya, yang merupakan arm32 asli.

Riku Voipio
sumber
2
Tebakan bagus, saya menggunakan Scaleway. Terimakasih atas klarifikasinya.
Nathan Osman
1
Server Tipe 2A paket juga berbasis ThunderX dan juga tunduk pada pembatasan ini.
vielmetti