Làm cách nào để chạy tệp thực thi armhf trên hệ thống arm64?


10

Tôi đã cài đặt Ubuntu 16.04.2 LTS trên máy chủ 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

Tôi đã chạy lệnh sau để kích hoạt armhfcài đặt gói:

# dpkg --add-architecture armhf

Sau đó tôi đã cài đặt traceroutegói:

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

Tuy nhiên, tôi không thể khởi chạy chương trình thực thi:

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

Thêm thông tin:

# 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

Tôi cũng đã thử cài đặt binfmt-supportvà xác nhận rằng binfmt_miscmô-đun đã được tải.

Không arm64tương thích ngược với armhf? Làm thế nào tôi có thể chạy armhfcác tệp thực thi trên một arm64máy chủ?


Rõ ràng tất cả các phụ thuộc cũng như trình thông dịch cũng cần phải có 32 bit
You'reAGitForNotUsingGit

Bạn có biểu diễn apt-get update; apt-get upgradesau dpkg --add-architecture armhfkhông?
Marcos Silveira

@MarcosSilveira có, không có sự khác biệt.
Nathan Osman

Câu trả lời:


16

Hỗ trợ Arm32 là tùy chọn trên arm64. Trong thực tế, chỉ có một CPU arm64 bỏ qua hỗ trợ tập lệnh arm32 kế thừa - Cavium ThunderX. Từ chuỗi phiên bản kernel, có vẻ như bạn đang sử dụng máy chủ Scaleway armv8. Nếu đây là trường hợp, bạn không gặp may - Máy chủ của armeway 8 dựa trên ThunderX. Sử dụng Scaleway C1 thay thế, đó là arm32 gốc.


2
Đoán tốt, tôi đang sử dụng Scaleway. Cảm ơn bạn đã làm rõ.
Nathan Osman

1
Máy chủ Type 2A của Packet cũng dựa trên ThunderX và cũng chịu sự hạn chế này.
vielmetti
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.