Como executar executáveis ​​armhf em um sistema arm64?


10

Eu tenho o Ubuntu 16.04.2 LTS instalado em um servidor 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

Executei o seguinte comando para ativar a armhfinstalação do pacote:

# dpkg --add-architecture armhf

Eu instalei o traceroutepacote:

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

No entanto, não consigo iniciar o executável:

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

Outras informações:

# 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

Eu também tentei instalar binfmt-supporte confirmar que o binfmt_miscmódulo estava carregado.

Não é arm64compatível com versões anteriores armhf? Como posso executar armhfexecutáveis ​​em um arm64servidor?


Aparentemente, todas as dependências, bem como a necessidade intérprete a ser de 32 bits bem
You'reAGitForNotUsingGit

Você se apresentou apt-get update; apt-get upgradedepois dpkg --add-architecture armhf?
Marcos Silveira

@MarcosSilveira sim, não faz diferença.
Nathan Osman

Respostas:


16

O suporte do Arm32 é opcional no arm64. Na prática, existe apenas uma CPU arm64 que omite o suporte ao conjunto de instruções arm32 legado - Cavium ThunderX. Na sequência da versão do kernel, parece que você está usando servidores Scaleway armv8. Se for esse o caso, você está sem sorte - os servidores Scaleway armv8 são baseados no ThunderX. Use o Scaleway C1, que é arm32 nativo.


2
Bom palpite, estou usando o Scaleway. Obrigado pelo esclarecimento.
Nathan Osman

1
O servidor Tipo 2A do pacote também é baseado em ThunderX e também está sujeito a esta restrição.
vielmetti
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.