LINUX.ORG.RU

box86(64) или есть ли жизнь на ARM-e?

 , , ,

box86(64) или есть ли жизнь на ARM-e?

9

3

Запуск программ, собранных для архитектуры x86, на Linux-системах с ARM-процессорами

Представляю вашему вниманию Box86 и Box 64

Box86 и Box 64 — это бинарные трансляторы и эмуляторы Linux x86 Userspace для процессоров на архитектуре ARM.

Box 86 позволяет запускать программы x86 Linux (например, игры) на системах Linux, отличных от x86, таких как ARM.

Поскольку Box 86 работает путем прямой трансляции вызовов функций из x86 в хост-систему, хост-система (та, на которой работает Box86) должна иметь 32-разрядные библиотеки. Box86 не включает в себя какой-либо 32-разрядный <-> 64-разрядный транслятор. Однако для запуска 64 битных программ рекомендуется использовать сестринский проект Box 64. В принципе, чтобы запустить Box86, например, на платформе ARM64, вам нужно будет создать Box86 для 32-разрядной версии ARM, а также иметь chroot с 32-разрядными библиотеками.

Box86 и Box64 очень просты в использовании

Установка в систему с использованием интеграции systemd-binfmt позволяет системе автоматически использовать box86/box64 при запуске двоичного файла i386/x86_64. Но это не обязательно. Если systemd не установлен (или если systemd-binfmt недоступен), box все равно можно использовать. Например, после сборки (эта часть описана в COMPILE.md doc из каждого репозитория) на Pandora (там нет systemd), к примеру world of goo можно запустить следующим образом:

box86 ./WorldOfGoo.bin32

Для использования Windows-программ вам понадобится версия wine i386 или x86_64. Проще всего использовать уже собранный двоичный файл. Некоторые можно найти из них в сборке PlayOnLinux или в любом другом удобном для вас месте. Раздобыв tgz с двоичными файлами, извлеките его в свою домашнюю папку (например, ~ / wine), а затем создайте несколько симлинков для его запуска с помощью

sudo ln -s ~/wine/bin/wine /usr/local/bin/wine
sudo ln -s ~/wine/bin/wineserver /usr/local/bin/wineserver
sudo ln -s ~/wine/bine/wineboot /usr/local/bin/wineboot

Если у вас 64 битная сборка, вам также необходимо добавить

sudo ln -s ~/wine/bin/wine64 /usr/local/bin/wine64

Вы также можете установить winetricks, просто следуйте инструкции на его странице GitHub, и он должен работать «из коробки» с последними версиями box86 и box64.

Теперь просто запустите свои игры для Windows с помощью wine, как если бы вы были на ПК с x86…

Большинству игр x86 требуется OpenGL, поэтому на платформах ARM обычно требуется такое решение, как gl4es. (Большинство платформ ARM поддерживают только OpenGL ES и / или их реализация OpenGL сомнительна (см. OpenGL на Android).)

Поддержка DynaRec

Box 86 теперь интегрирует DynaRec (динамический перекомпилятор) для платформы ARM, обеспечивая увеличение скорости в 5-10 раз по сравнению с использованием только интерпретатора. Некоторую информацию о том, как работает Dynarec, можно найти здесь.

Немного про Vulkan

Box86 поставляется вместе с врапером для Vulkan. Если в вашей системе установлен 32-битный драйвер Vulkan, box86 будет использовать его при необходимости. Однако врапер сильно не тестировался из-за ограниченной поддержки Vulkan на оборудовании, которым автор владет в настоящее время. Профили 1.0 и 1.1, с некоторыми расширениями, должны работать. Однако 1.2 может работать нестабильно.

Обратите внимание, что драйвер Vulkan для Pi4 ПОКА НЕ поддерживает dxvk (wine DirectX->Vulkan wrapper). Это не проблема box86, в нем отсутствуют расширения (аппаратная поддержка) и несколько других вещей, из-за которых dxvk не работает на pi4. Что касается Panfrost, PanVK немного сыроват, и автор еще не тестировал dxvk с ним.

Что касается Box64, то он включает в себя библиотеки Vulkan, но обратите внимание, что он был протестирован только с картой RX550, некоторые расширения могут отсутствовать в зависимости от вашей видеокарты. Пример такого теста на вполне конкретных играх будет приведен ниже.

Производительность и бенчмарки

Box86/Box64 vs QEMU vs FEX

Как мы видим производительность по сравнению с QEMU в десятки раз выше! Ну и чисто ради любопытства сравним с коммерческим аналогом.

Box64 vs Rosetta2 (бенчмарк на основе 7z)

macOS NatifmacOS Rosetta2linux Natiflinux Box64
47239337464327124746

Вполне себе сносная производительность для проекта написанного любителями!

Ну и вишенка на торте это запуск всеми любимых игр на D2000 ARM Mini-PC.

В ролике засветились Flatout1, Flatout2, HALO, HalfLife 2, Portal 2, Colin McRae Rally и другие, вполне играбельные, даже в наше время, тайтлы. Как установить Steam и Proton можно почитать в описании проектов.

Вот несколько тестов уже с RPI4 со Steam и Proton

От себя добавлю

Я очень люблю игры, особенно когда они запущенны на linux. А особый восторг у меня вызывает когда эти игры вообще запущены на том железе, под которое они изначально не писались и даже не задумывались работать. Поэтому в качестве примера приведу запуск HALF-LIFE 2 и пару-тройку других игр на различных одноплатных ARM компьютерах.

Примечание: HALF-LIFE 2 сама по себе не является бенчмарком, но учитывая мощности чипов, встроенных графических ускорителей, трансляции в неродную архитектуру, и так далее, это все таки показатель быстродействия box86-64. Можно считать что это техническое демо.

HALF-LIFE 2 на ROCK PI 4C выглядит вполне себе здраво учитывая что это компьютер размером с кредитную карточку.

HALF-LIFE 2 даже умудрились запустить на PinePhone Pro!

Celeste показала себя неплохо и выдавала, хоть и не всегда стабильный, но довольно высокий FPS.

Что уж говорить про SHOVEL KNIGHT запущенном на забавном сетапе из Raspbery Pi 4, миниатюрного башенного куллера с RGB подсветкой (!), m2 nvme диском и игровой клавиатурой! Ну разве это не милота в чистом виде? 😍

А если еще к примеру поставить retroarch, то Raspberry Pi 4 вполне сможет скрасить вечерок-другой в компании друзей. Благо мощности чипа вполне хватает чтобы эмулировать ретроконсоли.

HUNTDOWN тоже себя неплохо показал как на RPI4 (30 fps) так и на более мощном ROCKPRO64, с настоящей нестареющей классикой RK3399 на борту, держащей стабильные 60 кадров в секунду.

Cuphead запущенный на PINEBOOK pro показывает вообще какие-то чудеса акробатики в плане FPS. Так что не ретро-играми едиными!

Отвечая на вопрос: Есть ли жизнь на ARM-e?

Да! Определенно! Она довольно обширна и прям таки кипит! Лично мне это чем-то напоминает начало эры игр на десктопном linux. Пока что мало что работает, драйверов нет, игры выдают нестабильный FPS, но жизнь зародилась и бьет ключом! А с приходом таких проектов как box86 и box64 она станет еще ярче и красочнее.

Оставлю также ссылки на оригинальные статьи, чтобы вы тоже могли почитать и составить свое мнение:

https://box86.org/2021/06/game-performances

https://box86.org/2022/03/box86-box64-vs-qemu-vs-fex-vs-rosetta2

https://box86.org/2022/02/box86-box64-are-easy-to-use

https://box86.org/2021/05/arm-gaming

Всем хороших игр и стабильных FPS!



Проверено: hobbit ()
Последнее исправление: hobbit (всего исправлений: 6)
Ответ на: комментарий от sparkie

А из квак лучше всех зашла первая.

Удваиваю. Единственная игра, которую я проходил принципиально без читов на всех уровнях сложности включая скрытый «nightmare». Но диск с музыкой непременно вставлял от второкваки. :) Один из лучших саундтреков, вместе с UT99.

Эхо от шмаляния из гвоздемёта, тучи в небесах, разлетающиеся останки туловищ.

Сейм фил бро :). Ещё ТОПОР. Нафига его на эту пукалку во втором заменили...

yu-boot ★★★★★
()

Это что же теперь? Можно накатить линукс на air на m1/m2 и использовать его как полноценный десктоп?

Aswed ★★★★★
()

Чтобы это жило нужно сделать сборку под ведроид. Больше армов у населения нету. И должно работать искаропки - поставил apk, указал в гуе папку с игрой, а в папке конфиг. В конфиге путь до стартового исполняемого файла и настройки тыкательного гуя.

Редакторы тыкогуя на самом ведроиде не нужны. Мало того что их трудно сделать удобными, так ещё гении всякие могут портативности лишить

DumLemming ★★★
()
Ответ на: комментарий от Unixson

через 10 лет железо уже не тянет

Мой текущий домашний десктоп(за исключением видеокарты, ну и битые плашки оперативки еще пару раз менял) куплен как раз десять лет назад. Тогда это был почти топ(круче на этот сокет были только 2 модели проца, соответственно в 2 и в 3 раза дороже - но вовсе не в столько же раз производительнее), сейчас это вполне себе нормальная рабочая машинка с i7, которая и в игры поиграть могёт и покомпелять генту не побоится.

Из недостатков - нет нормального VT-d(потому что Gigabyte - три-два-расы и нормально биос не допилили и бросили), но честно говоря - я давно всю тяжелую виртуализацию вынес с десктопа на кластера на работе. Пару виртуалок на KVM/Virtualbox с пробросом USB тянет - и ладно.

Предлагаешь выкинуть рабочее, устраивающее меня железо, которое устарело только разве что морально? Спасибо, удружил.

Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 1)
Ответ на: комментарий от einhander

человек не мог зайти в свой ноутбук, потому что у него не было интернета, а телефон не ловил сеть.

Венда или хромоось? В любом случае - слава онлайн-онли аккаунтам(нет)

Pinkbyte ★★★★★
()
Ответ на: комментарий от Pinkbyte

Венда 11, от такого фортеля я офигел. Винда умеет кэшировать доменного пользователя, почему тут такого нет, не знаю.

einhander ★★★★★
()

ненужно. есть нативный арм.

burato ★★★★★
()

Да, прикольно. Я вот на этом (Колхозный роутер) запускал i386 cups-драйвер для принтера brother hl-1110r, правда через qemu.

sergej ★★★★★
()
Ответ на: комментарий от Unixson

лучше мой код будет требовать чуть выше плинтуса зато читаться как нормальный код а не как магический свиток.

Хахаха. А когда коредуо был новым железом, под него как писали?

Psilocybe ★★★★
()
Последнее исправление: Psilocybe (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.