Điểm:6

Có lớp dịch nào cho phần mềm x86 trên Ubuntu ARM không?

lá cờ ua

Gần đây tôi đã cài đặt Ubuntu ARM trên M1 MacBook Air của mình trên máy ảo (sử dụng Parallels) và không giống như Windows ARM và macOS ARM, Ubuntu ARM dường như không bao gồm lớp dịch cho các ứng dụng x86, điều này khiến hệ thống gần như không sử dụng được nhiều Phần mềm Linux chưa hỗ trợ ARM.

Ví dụ: tôi gặp lỗi này khi cố gắng cài đặt VSCode với Gdebi:

ảnh chụp màn hình

Tôi không thể tin rằng vẫn chưa có lớp dịch trên Linux ARM, vì đây là một hệ điều hành nguồn mở thường giúp việc phát triển những thứ đó dễ dàng và nhanh hơn so với trên các hệ điều hành khác.

Có một lớp dịch mà tôi có thể cài đặt?

davidbak avatar
lá cờ cn
"... coi đó là một hệ điều hành mã nguồn mở thường giúp việc phát triển những thứ đó dễ dàng và nhanh hơn so với trên các hệ điều hành khác" - tại sao bạn lại nghĩ như vậy? Nguồn mở không làm gì cả. Nó có thể, và nếu nó xảy ra thì đó là điều ngẫu nhiên. Nhưng như một tuyên bố chung? Không. (Chắc chắn _có thể_ phát triển công cụ này cho HĐH nguồn mở. Nhưng "dễ dàng hơn"? "nhanh hơn"? "dễ dàng hơn _và_ nhanh hơn"? Nói chung thì không.)
Peter Cordes avatar
lá cờ fr
Đó là nguồn mở nên chúng tôi không cần lớp mô phỏng cho hầu hết phần mềm, chúng tôi chỉ cần xây dựng lại từ nguồn. Nhưng vì qemu và binfmt-misc đã tồn tại, nên các phần này đã sẵn sàng để mô phỏng minh bạch, giống như cách các máy Linux x86 có thể được thiết lập để các tệp thực thi Windows có thể chạy với RƯỢU một cách minh bạch.
lá cờ eg
`vì nhiều phần mềm Linux chưa hỗ trợ ARM` - **phần lớn** phần mềm Linux đã hỗ trợ ARM từ khoảng năm 2002. Thực tế là hầu hết tất cả các phần mềm Linux đều hỗ trợ ARM là điều giúp các dự án như Android và Raspberry Pi thành công.
Ismael Miguel avatar
lá cờ om
VSCode có phiên bản ARM. Tuy nhiên, với tư cách là một người đã bị mắc kẹt với Raspberry Pi 4 trong những tuần qua, tôi thực sự khuyên bạn nên quên việc chạy VSCode trên CPU ARM. Kinh nghiệm của tôi đã được dưới rác với nó. Mất 2 phút để lưu tệp vào mạng chia sẻ, trong đó VSCode dành toàn bộ thời gian chỉ để đọc tệp và không làm gì khác. Tôi có **CÁCH** kết quả tốt hơn khi chạy Notepad++ trên WineHQ trên Box86 trên Raspberry Pi 4. Tôi đã sử dụng PiApps để cài đặt WineHQ và vừa cài đặt Notepad++ từ trang web. Nó hoạt động ... ok, không cần tự động hoàn thành. Ngoài ra, sử dụng geany.
Josef says Reinstate Monica avatar
lá cờ cn
@IsmaelMiguel có lẽ không liên quan gì đến ARM và lý do duy nhất là Raspberry Pi 4 có CPU khá chậm. Tôi cho rằng việc chạy VSCode trên CPU M1 mạnh hơn nhiều sẽ hoạt động mà không gặp sự cố.
Ismael Miguel avatar
lá cờ om
@JosefsaysReinstateMonica Đó là một điểm tốt. Tôi không nhận thấy rằng có giao diện người dùng kiểu MacOS xung quanh hệ điều hành Ubuntu. Lẽ ra tôi nên nhận ra điều đó trước khi nói bất cứ điều gì. Tuy nhiên, khi ai đó nói "trên chip ARM", mọi người sẽ nghĩ đó là máy vi tính và những thứ tương tự, không phải là sản phẩm của Apple.
Ben Voigt avatar
lá cờ vg
@IsmaelMiguel "máy vi tính" chiếm một không gian cao hơn nhiều trong hệ thống phân cấp kích thước so với bạn nghĩ, bao gồm tất cả máy tính để bàn và máy tính xách tay cũng như rất nhiều máy chủ. Chính xác là loại thiết bị có thể chạy tốt một IDE lập trình.
Ismael Miguel avatar
lá cờ om
@BenVoigt Có, nhưng tôi đã đưa ra ý kiến ​​​​của mình dựa trên "máy tính siêu nhỏ" của mình. Raspberry Pi 4 2020 (không ép xung). Và VSCode nằm dưới rác trên "máy vi tính" của tôi.Nó thực sự vô dụng đến mức có một chương trình Windows được dịch từ x86 sang ARM nhanh hơn rất nhiều so với VSCode.
Josef says Reinstate Monica avatar
lá cờ cn
@IsmaelMiguel VSCode về cơ bản là một trình duyệt chạy IDE được triển khai bằng HTML và JavaScript. Tất nhiên là chậm. Nó thậm chí còn [được biết đến với việc sử dụng toàn bộ lõi CPU chỉ để nháy con trỏ](https://github.com/microsoft/vscode/issues/22900) một lần. Chỉ là máy tính ngày nay quá nhanh nên mọi người không thể triển khai một IDE chậm bằng công nghệ web... Nhưng điều đó không liên quan đến ARM hay AMD64. VSCode cũng chậm trên AMD64, ngày nay khó có CPU AMD64 chậm hơn. Nhưng hãy thử VSCode trên Intel Atom...
Ismael Miguel avatar
lá cờ om
@JosefsaysReinstateMonica Trong trường hợp của tôi, nó đã sử dụng hơn 30% CPU để truy cập phần chia sẻ Samba và phân tích các tệp trong đó (vì bất kỳ lý do gì). Và nó sẽ tiếp tục phân tích chúng, lặp đi lặp lại. Nếu tôi mở nó để chỉnh sửa tệp cục bộ, không có thư mục nơi làm việc, thì nó hoạt động khá chấp nhận được.
Điểm:15
lá cờ us

hộp86 và Box64 là trình giả lập có thể được sử dụng để chạy các ứng dụng x86 truyền thống trong ARM.

Đây là cách cài đặt Box64 để bạn có thể chạy amd64 nhị phân trong cánh tay64 (lưu ý rằng bạn sẽ không thể cài đặt các tệp amd64 .deb theo cách này. Các tệp .deb không được thiết kế như vậy. Tuy nhiên, bạn vẫn có thể trích xuất tệp nhị phân từ tệp .deb và chạy nó.). Các hướng dẫn này dựa trên hướng dẫn này.

Đầu tiên, cài đặt git và các trình biên dịch cần thiết, tải xuống nguồn bằng git và nhập thư mục nguồn.

sudo apt cài đặt git build-essential cmake
bản sao git https://github.com/ptitSeb/box64.git
cd ~/hộp64

Bây giờ hãy tạo một thư mục có tên build và tạo tạo tập tin sử dụng cmake.

xây dựng mkdir
xây dựng đĩa cd
cmake .. -DRPI4ARM64=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo

Bây giờ biên dịch, với tất cả các lõi có sẵn.

làm -j$(nproc)

Bây giờ hãy cài đặt phần mềm đã biên dịch

sudo thực hiện cài đặt

Bây giờ khởi động lại systemd-binfmt dịch vụ.

Sudo systemctl khởi động lại systemd-binfmt

Cuối cùng, khởi động lại máy tính.

Bây giờ, bạn sẽ có thể chạy các tệp nhị phân được biên dịch cho amd64 ngành kiến ​​​​trúc.


Tuy nhiên, bản địa cánh tay64 bản dựng cho VSCode có sẵn tại Trang web chính thức, bạn không cần phải mô phỏng nó.


nhiều phần mềm Linux chưa hỗ trợ ARM ...

Bạn dường như được thông tin sai. Vì hầu hết phần mềm trong kho đều là Nguồn mở và Miễn phí, nên chúng đã được biên dịch sẵn và sẵn sàng cho ARM. Dựa theo https://debian.pkgs.org/, các cánh tay64 kho lưu trữ cho Debian Sid có 62542 gói, trong khi amd64 kho lưu trữ có 63568 gói (tính đến ngày 18 tháng 11 năm 2021). Mọi người thường sử dụng box64 để mô phỏng phần mềm độc quyền được tạo cho Windows.

lá cờ br
Tôi nghĩ rằng có thể kết hợp box[64/86] với deb, bằng cách sử dụng `dpkg --add-architecture amd64`
lá cờ us
@Pelle Tôi chưa thử điều đó. Trong trường hợp bạn đã thử nghiệm nó, vui lòng chỉnh sửa.
FedKad avatar
lá cờ cn
@ArchismanPanigrahi Tôi đã thử các cài đặt này trên VPS dựa trên ARM. Sau khi hoàn thành chúng và khởi động lại, tôi có thể chạy các chương trình dòng lệnh amd64.Tuy nhiên, tôi có một ứng dụng GUI AMD64 (được phát triển và biên dịch trong Lazarus) và nó không chạy. Nó đưa ra một số lỗi như `gtk_major_version not found`, `gtk_minor_version not found`, `gtk_marshal_VOID__POINTER_POINTER not found` và `gtk_key_snooper_install(ver 0: gtk_key_snooper_install) not found`. Tôi nghĩ rằng điều này được đề cập trong https://github.com/ptitSeb/box64 dưới **Ghi chú về các chương trình GTK**
Aaron Franke avatar
lá cờ ar
Có cách nào để có hỗ trợ giống như gốc cho kiến ​​trúc `amd64` (x86_32) trên các hệ thống ARM, tương tự như cách chúng tôi có thể có hỗ trợ cho `i386` (x86_32) trên `amd64` (x86_64) không? Tôi muốn có thể cài đặt bất kỳ gói `amd64` nào thông qua trình quản lý gói, thông qua `sudo apt install` hoặc thông qua cài đặt các tệp `.deb`.
lá cờ us
@AaronFranke Hãy xem bình luận của Pelle.
Điểm:4
lá cờ br

Mô phỏng người dùng Qemu cung cấp một cách rất hay để chạy liên tục các chương trình từ các kiến ​​trúc khác. Tuy nhiên, tôi không có kinh nghiệm thực tế với các chương trình đồ họa, vì vậy có thể có những con rồng theo cách đó.

Nó cũng tích hợp với apt/dpkg bằng cách đăng ký một kiến ​​trúc nước ngoài.

lá cờ br
Nói chung hoạt động tốt cho X, vì nó là máy khách-máy chủ.
Aaron Franke avatar
lá cờ ar
Làm theo hướng dẫn này, tôi đã cài đặt các gói Qemu, `update-binfmts --display` dường như hoạt động chính xác, sau đó tôi đã thêm kiến ​​trúc `amd64` trong dpkg, nhưng `apt` không thể tìm thấy bất kỳ gói nào. `apt update` cho biết `E: Không tìm nạp được http://us.ports.ubuntu.com/ubuntu-ports/dists/impish/main/binary-amd64/Packages 404 Not Found [IP: 91.189.91.38 80]` . Các hướng dẫn đầy đủ là gì? Có vẻ như thiếu một cái gì đó cần thiết trong hướng dẫn Debian.
lá cờ br
Ports.ubuntu.com không chứa các gói amd64, bạn sẽ cần thêm các kho Ubuntu thông thường.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.