Рейтинг:6

Есть ли какой-либо уровень перевода для программного обеспечения x86 в Ubuntu ARM?

флаг ua

Недавно я установил Ubuntu ARM на свой M1 MacBook Air на виртуальной машине (используя Parallels), и, в отличие от Windows ARM и macOS ARM, Ubuntu ARM, похоже, не включает уровень перевода для приложений x86, что делает систему практически непригодной для использования, как многие другие. Программное обеспечение Linux еще не поддерживает ARM.

Например, я получил эту ошибку при попытке установить VSCode с помощью Gdebi:

Скриншот

Я не могу поверить, что в Linux ARM еще нет уровня перевода, учитывая, что это ОС с открытым исходным кодом, которая часто делает разработку подобных вещей проще и быстрее, чем в других операционных системах.

Там есть слой перевода, который я мог бы установить?

davidbak avatar
флаг cn
«... учитывая, что это ОС с открытым исходным кодом, которая часто делает разработку таких вещей проще и быстрее, чем в других операционных системах» - почему вы так думаете? Открытый исходный код не делает ничего подобного. Может быть, и если это произойдет, то это случайность. Но как общее утверждение? Нет. (Конечно, _возможно_ разработать этот материал для ОС с открытым исходным кодом. Но "проще"? "быстрее"? "проще _и_ быстрее"? Не в общем случае.)
Peter Cordes avatar
флаг fr
Это открытый исходный код, поэтому нам не нужен слой эмуляции для большей части программного обеспечения, мы просто перестраиваем его из исходного кода. Но так как qemu и binfmt-misc уже существуют, все готово для прозрачной эмуляции, точно так же, как машины x86 Linux могут быть настроены на исполняемые файлы Windows, которые можно прозрачно запускать с помощью WINE.
флаг eg
«поскольку многие программы для Linux еще не поддерживают ARM» — **большинство** программ для Linux уже поддерживают ARM примерно с 2002 года. Тот факт, что почти все программы для Linux поддерживают ARM, делает такие проекты, как Android и Raspberry Pi, успешными.
Ismael Miguel avatar
флаг om
VSCode имеет версию для ARM. Но, как человек, который застрял с Raspberry Pi 4 в течение последних недель, я настоятельно рекомендую вам забыть о запуске VSCode на процессоре ARM. Мой опыт был ниже мусора с этим. Сохранение файла в сетевом ресурсе занимает 2 минуты, в котором VSCode тратит все свое время только на чтение файлов и ничего больше не делает. У меня **НАМНОГО** лучшие результаты при использовании Notepad++ поверх WineHQ поверх Box86 на моем Raspberry Pi 4. Я использовал PiApps для установки WineHQ и только что установил Notepad++ с веб-сайта. Работает... ок, без автозаполнения. В качестве альтернативы используйте geany.
Josef says Reinstate Monica avatar
флаг cn
@IsmaelMiguel, который, вероятно, не имеет ничего общего с ARM, и причина только в том, что у Raspberry Pi 4 довольно медленный процессор. Я предполагаю, что запуск VSCode на гораздо более мощном процессоре M1 работает без проблем.
Ismael Miguel avatar
флаг om
@JosefsaysReinstateMonica Это хороший момент. Я не заметил, что вокруг ОС Ubuntu был пользовательский интерфейс в стиле MacOS. Я должен был заметить это, прежде чем что-то сказать. Однако, когда кто-то говорит «на чипе ARM», люди думают, что это микрокомпьютеры и тому подобное, а не продукт Apple.
Ben Voigt avatar
флаг vg
@IsmaelMiguel «микрокомпьютеры» занимают гораздо более высокое место в иерархии размеров, чем вы думаете, включая все настольные и портативные компьютеры и очень много серверов. Именно такие устройства могут хорошо запускать IDE для программирования.
Ismael Miguel avatar
флаг om
@BenVoigt Да, но я высказал свое мнение, основанное на моем «микрокомпьютере». Raspberry Pi 4 2020 года выпуска (без разгона). А VSCode ниже мусора на моем "микрокомпьютере".Это фактически бесполезно до такой степени, что перевод программы Windows с x86 на ARM происходит намного быстрее, чем VSCode.
Josef says Reinstate Monica avatar
флаг cn
@IsmaelMiguel VSCode — это, по сути, браузер, который запускает IDE, реализованную на HTML и JavaScript. Конечно это медленно. Он был даже [известен тем, что использовал все ядро ​​ЦП только для того, чтобы моргнуть курсором] (https://github.com/microsoft/vscode/issues/22900) один раз. Просто компьютеры сегодня настолько быстры, что людям сходит с рук внедрение медленной IDE с использованием веб-технологий... Но это никак не связано с ARM или AMD64. VSCode тоже медленный на AMD64, просто сегодня сложнее получить медленный процессор AMD64. Но попробуйте VSCode на Intel Atom...
Ismael Miguel avatar
флаг om
@JosefsaysReinstateMonica В моем случае он использовал более 30% ЦП для доступа к общему ресурсу Samba и анализа файлов в нем (по какой-либо причине). И он просто продолжал бы анализировать их, снова и снова, снова и снова. Если я открываю его для редактирования файлов локально, без рабочей папки, он ведет себя вполне приемлемо.
Рейтинг:15
флаг us

Коробка86 и Box64 — это эмуляторы, которые можно использовать для запуска традиционных приложений x86 в ARM.

Вот как установить Box64, чтобы вы могли запускать amd64 двоичные файлы в рука64 (обратите внимание, что вы не сможете установить файлы amd64 .deb таким образом. Файлы .deb не предназначены для этого. Однако вы все равно сможете извлечь двоичный файл из файла .deb и запустить его.). Эти инструкции основаны на это руководство.

Сначала установите мерзавец и необходимые компиляторы, загрузите исходный код с помощью git и войдите в исходный каталог.

sudo apt установить git build-essential cmake
git-клон https://github.com/ptitSeb/box64.git
компакт-диск ~/box64

Теперь создайте каталог с именем build и сгенерируйте makefile с помощью cmake.

сборка mkdir
сборка компакт-диска
cmake .. -DRPI4ARM64=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo

Теперь скомпилируйте со всеми доступными ядрами.

сделать -j$(nproc)

Теперь установите скомпилированное программное обеспечение

судо сделать установить

Теперь перезапустите systemd-binfmt оказание услуг.

sudo systemctl перезапустить systemd-binfmt

Наконец, перезагрузите компьютер.

Теперь вы сможете запускать двоичные файлы, скомпилированные для amd64 архитектура.


Тем не менее, родной рука64 сборки для VSCode доступны на его Официальный веб-сайт, вам не нужно подражать этому.


многие программы для Linux еще не поддерживают ARM...

Вы, кажется, дезинформированы. Поскольку большая часть программного обеспечения в репозиториях является бесплатным и открытым исходным кодом, они уже скомпилированы и легко доступны для ARM. Согласно с https://debian.pkgs.org/, рука64 репозиторий для Debian Sid имеет 62542 пакета, тогда как amd64 репозиторий содержит 63568 пакетов (по состоянию на 18 ноября 2021 г.). Люди обычно используют box64 для эмуляции проприетарного программного обеспечения, созданного для Windows.

флаг br
Я думаю, что можно комбинировать box[64/86] с deb, используя `dpkg --add-architecture amd64`
флаг us
@Pelle Я этого не пробовал. Если вы протестировали его, не стесняйтесь редактировать.
FedKad avatar
флаг cn
@ArchismanPanigrahi Я попробовал эти установки на VPS на базе ARM. После их завершения и перезагрузки я могу запускать программы командной строки amd64.Однако у меня есть приложение с графическим интерфейсом amd64 (разработанное и скомпилированное в Lazarus), и оно не запускается. Он выдает некоторые ошибки, такие как «gtk_major_version не найден», «gtk_minor_version не найден», «gtk_marshal_VOID__POINTER_POINTER не найден» и «gtk_key_snooper_install (версия 0: gtk_key_snooper_install) не найден». Я думаю, что это упоминается в https://github.com/ptitSeb/box64 в разделе **Примечания о программах GTK**.
Aaron Franke avatar
флаг ar
Есть ли способ иметь нативную поддержку архитектуры amd64 (x86_32) в системах ARM, аналогично тому, как мы можем иметь поддержку поддержки i386 (x86_32) на amd64 (x86_64)? Я хочу иметь возможность установить любой пакет `amd64` через менеджер пакетов, либо через `sudo apt install`, либо через установку файлов `.deb`.
флаг us
@AaronFranke Посмотрите на комментарий Пелле.
Рейтинг:4
флаг br

Эмуляция пользователя Qemu предоставляет очень хороший способ беспрепятственного запуска программ из других архитектур. Однако у меня нет практического опыта работы с графическими программами, поэтому могут быть драконы.

Он также интегрируется с apt/dpkg путем регистрации внешней архитектуры.

флаг br
Обычно отлично работает для X, поскольку в основе его лежит клиент-сервер.
Aaron Franke avatar
флаг ar
Следуя этому руководству, я установил пакеты Qemu, `update-binfmts --display`, кажется, работает правильно, затем я добавил архитектуру `amd64` в dpkg, но `apt` не может найти никаких пакетов. `apt update` говорит `E: Не удалось получить http://us.ports.ubuntu.com/ubuntu-ports/dists/impish/main/binary-amd64/Packages 404 Not Found [IP: 91.189.91.38 80]` . Какая полная инструкция? Кажется, что чего-то не хватает помимо инструкций Debian.
флаг br
Ports.ubuntu.com не содержит пакетов amd64, вам нужно будет добавить обычные репозитории Ubuntu.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.