Как запустить исполняемые файлы armhf в системе arm64?


10

У меня Ubuntu 16.04.2 LTS установлен на сервере 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

Я запустил следующую команду, чтобы включить armhfустановку пакета:

# dpkg --add-architecture armhf

Затем я установил tracerouteпакет:

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

Однако я не могу запустить исполняемый файл:

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

Дальнейшая информация:

# 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

Я также попытался установить binfmt-supportи подтвердить, что binfmt_miscмодуль был загружен.

Не arm64совместим с armhf? Как я могу запустить armhfисполняемые файлы на arm64сервере?


Очевидно, что все зависимости, а также интерпретатор должны быть 32-битными
You'reAGitForNotUsingGit

Вы выступали apt-get update; apt-get upgradeпосле dpkg --add-architecture armhf?
Маркос Сильвейра

@ MarcosSilveira да, без разницы.
Натан Осман

Ответы:


16

Поддержка Arm32 является дополнительной на arm64. На практике есть только один процессор arm64, который не поддерживает устаревший набор команд arm32 - Cavium ThunderX. Судя по строке версии ядра, вы используете серверы Scaleway armv8. Если это так, то вам не повезло - серверы Scaleway armv8 основаны на ThunderX. Вместо этого используйте Scaleway C1, который является родным arm32.


2
Хорошее предположение, я использую Scaleway. Благодарю за разъяснение.
Натан Осман

1
Сервер Packet Type 2A также основан на ThunderX и также подпадает под это ограничение.
vielmetti
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.