LINUX.ORG.RU

Сообщения whbex

 

Нативный Wine под ARM64 (с поддержкой x86-приложений)

 , , ,

Subj.

Вообще, Wine собираться под ARM64 умеет достаточно давно, но особого смысла от этого не было. То, ради чего нужен Wine, под ARM64, понятным образом, не заработает без эмуляции, в которую сам по себе Wine не умел. В самом же оффтопе для запуска x64 используется как стандартный эмулятор/транслятор xtajit64, так и ARM64EC ABI – что-то похожее на Universal бинарники в одной известной BSD-based OS.

Добавление такого в Wine был вопрос времени и.. в Wine 10.0 таки появилась официальная (экспериментальная) поддержка ARM64EC. Собранный с таким таргетом Wine вместе с готовым эмулятором, адаптированным к работе в окружении ntdll (Win32 не подходит) позволяет запускать как нативные приложения, так и x64, используя тот же механизм, что применяется в самом Windows-on-ARM.

Кому это надо? Энтузиастам на маках с Asahi навроде меня и… неожиданно Valve, которые делают VR шлем с ARM на борту.

По сравнению с старыми способами запуска Wine под эмулированным x86 Linux окружением (FEX/box64), тут всё работает чуть стабильнее засчёт прямого доступа к линуксовым либам (libvulkan, libwayland-client, libGL, etc..). И сколько-то быстрее – по идее, fsync/ntsync должен в таком окружении поддерживаться без проблем т.к. эмулируется только CPU-часть.
WoW64 (x86_32) тоже запускается, но менее стабильно – по большей части потому, что сама по себе поддержка wow64 в вине оставляет желать лучшего. Но для запуска инсталляторов хватает (многие до сих пор 32 битные).
С Wine-10.4 добавили поддержку работы оного на ядрах с размером страниц выше 4K – не знаю, как они это смогли реализовать (ведь не существует WoA устройств с таким размером), но разницы с запуском под 4K окружением и 16К я не заметил. Всё работает одинаково, разве что костыли с виртуальной машиной для обхода ограничений железа не нужны.

Собирается легко, если в системе есть clang/llvm 20: ./configure --enable-archs=i386,arm64ec,aarch64 --disable-tests --with-mingw=clang
Забавно, что в вышеупомянутом Darwin вайн собирается, но… zsh: killed wineboot.
Похоже, что в XNU чего-то не хватает.

TL;DR игрушечки и приложения работают, на x64 стабильно, на x86_32 как повезёт.

P.S. Notepad++ на скриншоте нативный ARM64. Игра (DX12), очевидно, нет, только x64.

P.P.S. добавил тег asahi, потому что это одно из окружений, на котором wine теперь работает нативно. Скриншоты также сделаны под Asahi.

whbex
()

Линукс на ARM-макбуке... но зачем?

 , , ,

… ответ: Just for fun.
Купил на днях себе новенький (Air 2020) макбук – захотелось посмотреть на этот ARM’овый эмейзинг, да и с 7840HS/8845HS не особо задалось. Иметь к дополнению к родной OS родное для меня окружение тоже хотелось, поэтому… here we are. Благо конфиг 16/512/8Core-GPU позволяет.

Собственно, по аппаратной части сказать много и не получится: то, что уже работает – просто работает. Не видел GPU Hang как на AMD, отвалов WiFi, невыходов из сна и т. д. Один раз возникла проблема со звуком (не поднималась громкость), может быть, потому что обновлялся в фоне. Починилось полноценным обновлением с перезагрузкой. По качеству звука претензий нет, я не аудиофил и разницы с macOS не ощутил. Музыку слушать и там и там приятно, звук удивил сильно вообще.
Заряд держит хорошо, возможно не так хорошо, как в родной ОС, но проценты на глазах не летят. Если работать и нагружать ноутбук – разрыв становится ещё меньше. Сон работает, s2idle. macOS умеет переводить железо в «deep» sleep, Asahi в такое колдунство пока не умеет. Но подобного всё равно достаточно – батарея за ночь не улетает, что меня уже устраивает. Из сна выходит не так быстро, как на macOS. Да и нажатия на клавиши ноутбук не пробуждают. Но это мелочь. По сравнению с Pro 2011 всё равно быстро, и не так раздражает.
Touch ID (отпечаток пальца) не поддерживается, естественно. Но… он не так нужен, учитывая, что в macOS часто всё равно приходится вводить пароль ручками.
Haptic Feedback на трекпаде работает (т. е. клик симулируется), Force Touch, конечно, нет. Его по сути и нет вне macOS нигде.
К клавиатуре вопросов нет, если только убогая Think Different раскладка (короткий шифт и доп. клавиша вместо этой половинки).
Базовые системные приложения работают, экран записывается, микрофон нет… да, один из минусов пока что. Не всё же идеально должно быть. Подвижек в починке не видно. Ещё USB-C Alt Mode (т. е. DisplayPort) не работает, но такого адаптера у меня всё равно нет.
Почему-то не работает FaceTime HD вебкамера, видимо, требуются файлы прошивки из макоси.
Сам Apple M1 даже под линуксом показывает чудеса энергоэффективности – внизу вывел показатель потребления энергии с батареи. В PowerTOP он не отображается по какой-то причине.
В фоне Discord, Telegram, два Firefox (много вкладок), VSCode, в дискорде скринкаст включён, в панели индикатор о нём сообщает.
Аппаратного кодировщика нет, но и без него всё довольно неплохо, однако.

По софтовой части всё интереснее и подводных камней тут больше. Самый главный – нестандартный размер страниц памяти (16KB вместо 4). Автоматом отлетает Wine через box64/FEX, Waydroid (Android) и всё, что нормально в такой размер не умеет. На данный момент в большей части приложений вроде как всё исправлено: OBS, Telegram, VSCode, Vesktop (Discord-клиент) – работают без нареканий.
Интересно, что есть поддержка OpenGL 4.6, полноценная. В macOS 4.1, так ещё и некоторые приложения на него ругаются. Однако FPS выше. Да и вообще по какой-то неизвестной для меня причине бенчмарки выдают заметно худшие результаты (PassMark singlethread – 2890 asahi, 3790 macOS). Но по скорости работы и производительности в реальных задачах пока не заметил разницы. Опять же кроме 3D поигрушек.
Vulkan есть, но в зачаточном состоянии. В Mesa недавно его добавили уже более допиленный, но на моём хосте он отказывается видеть M1 даже с патчами из форка Asahi. Minecraft на нём работает, Ryujinx (эмулятор Nintendo Switch) – нет. Один раз увёл всю систему в Kernel Panic, но… HK_I_WANT_A_BROKEN_VULKAN_DRIVER=1 намекает, что это – норма. (Иронично, что недавно словил в родной macOS Sonoma панику при запуске Cyberpunk 2077. Вот так вот, паритет).
Как я написал, wine/fex не работают, но парни из Asahi написали костыль krun – запускает distrobox контейнер в микровиртуалке с подходящим размером страниц – и всё работает. 3D туда проброшено с Virtio-GPU Native Context – разницы с нативом практически нет. Замерял. Ну и CPU-Z виндовый через это дело встал и заработал. (Заголовка окна нет, потому что X11 обрабатывает Sommelier в самой VM – на хосте это Wayland окна).
Xorg «из коробки» нет, ставить не пытался, говорят, и не стоит.

По итогу, опыт не сильно отличается от моего старого MacBook 2011. Правда, всё работает на голову быстрее и здесь действительно можно работать работу без боли в одном месте.
Родная macOS, конечно, лучше, красивее, энергоэффективнее, стабильнее – не спорю. Но мне захотелось посмотреть на Linux – вот, посмотрел. И не разочаровался. Да и в будущем, видимо, это и будет единственный способ побегать в RDR2 здесь. Железо способно, видеодрайвер под macOS нет. А желание есть.
P. S. всё написано с Asahi.

whbex
()

Игры на вяленом без Xwayland

 , ,

Частенько на своей печке играю, решил поглядеть, как дела с запуском игорей нативно без XWayland.
DE: GNOME 45.
Собственно, игры:

  • Minecraft (glfw);
  • Red Dead Redemption 2 (wine);
  • freegish (SDL2).

Всё запущено без иксов, как видно в выводе xlsclients. Зачем – вопрос сложный, так-то и с иксами работает не хуже. А то и лучше, т.к. в Wayland нет возможности установить кастом иконку окна без .desktop файла. Пока.

В Wine и SDL2 играх проблем не заметил – всё играется, курсор из окна не убегает. SDL2 ещё и libdecor поддерживает нормально искоропки, так что в гномовском композиторе заголовки у таких игр нормальные. glfw его тоже поддерживает, но работает кривовато из-за VulkanMod. А без него завести Minecraft нативно ещё-то приключение. Но, как проверял давно, связка работала неплохо. (потом только в 1.17 отломали).

Окно в glfw ресайзится кривовато, баг в реализации CSD и в нормальных композиторах (Kwin/wlroots) не проявляется.

Из других игорей ещё проверял Cyberpunk 2077, работает так же отлично. Конкретно wine-wayland – win, хотя есть проблемы с контекстным меню и сворачиванием. В играх оно, естественно, не нужно и не проявляется.

P.S. Вообще, изначально ждал wine-wayland из-за неприятного бага с зависанием игр на RAGE при любом вводе. Но в итоге в winex11 его тоже починили, хотя изначально думал, что вот она, победа wayland.

Завести несложно:
SDL2 - SDL_VIDEODRIVER=wayland (можно добавить в /etc/environment, но не советую).
wine (9.0+) - wine regedit -> HKCU\Software\Wine\Drivers\Graphics установить в значение wayland,x11.
Minecraft (как в других играх с GLFW не представляю) - поставить VulkanMod, игра запустится с wayland автоматически. Был способ завести без него, но работает ли он - не знаю. У меня игра просто игнорирует существование внешнего libglfw с включённым wayland.

Как я уже написал, смысла от такого не особо много. Но оно работает.

P.S. Пока писал, ничего в фоне не вылетело. Вдруг кому интересно.

Железо видно на самом скриншоте, разве что видеокарта - RX 580, но с прошивкой от 470. Потому что я ниосилил нормально андервольтнуть видеокарту, проще стало потерять 4% фпс путём «даунгрейда». Заодно потребление упало, и кулеры почти не слышно.

whbex
()

Vulkan на старой графике Intel

 , , , ,

Собственно, вот. Встройка поколения Bay Trail (между Ivy Bridge и Haswell).

Вообще, у Intel официально Vulkan поддерживается только со Skylake, а всё что раньше работает через пень-колоду. Но подобной реализации хватило для запуска Minecraft с Vulkan-рендерером. Сама игра без сторонних модификаций работает только через OpenGL, с которым проблем нет ещё с Intel HD 3000 (3.3). Подобной реализации так же должно хватить для запуска wlroots композиторов с Vulkan бекэндом. Но это лишь в теории - на практике ещё не проверял.

Побегал немного, артефактов не заметил. Что интересно - у знакомого с iHD 4000 (Ivy Bridge) они были. В это не углублялся.

Также запускал DXVK - как минимум DirectX 9 заработал, но с просадками фпс. Видимо, всё же оптимизацией под такое легаси никто не занимался. В самой игре - Touhou Project 15 - дальше главного меню продвинуться не удалось - бесконечная загрузка. Но я подобные проблемы ловил и на других ПК, подозреваю, что дело не в драйвере.

Под оффтопиком никаким Vulkan и не пахнет, естественно. Что печально, так как только там планшет работает более-менее адекватно.

Ну о самом устройстве говорить особо и нечего: трансформер из 2013 - Asus T100TA. 2 ГБ RAM, слабенький атом. Звук работает плохо, кнопки питания и громкости тоже - может я просто не осилил, если тут есть владельцы этого аппарата - подскажите.

Дистрибутив - Debian 12. Лучше всего работает на этом устройстве, остальное либо пердолить долго (Arch), либо откровенно тормозит и жрёт ОЗУ как не в себя (Fedora). GNOME поставил чисто из привычки, так-то туда гораздо больше подходит что-то легковесное в виде xfce/labwc/sway. Но пока не хочу настраивать, редко пользуюсь.

Сам гном практически никак не кастомизирован - и так пойдёт. Но поставил gjs-osk, потому что ванильная гномовская клавиатура - УГ, а всякие Onboard’ы и прочее не работают. У меня ж Wayland. А без наэкранной клавиатуры никак - на док-станции не работают самые нужные в линуксе клавиши.

А пока пытался снимок экрана сделать, планшет раза 3 завис на ровном месте. Это тот старый баг на платформе Bay Trail. Отключение C6 Report в биосе не помогает. Только intel_idle.max_cstate=1, но с ним зарядка улетает заметно быстрее.

whbex
()

УнылоGNOME

 ,

Надоела стоковая Adwaita, решил немного покастомайзить гноме.
Занимался когда-то давно этим, но после выхода 42 гнома нормальный теминг окончательно отломали, а руки уже приросли к гшеллу и переходить на KDE не хотелось. Так и привык к ванильной теме, но желание пердолить DE до конца не пропало.

Изначально делал закосы под макOS, но выглядело оно криво-косо, так что снова забросил кастомизацию, лишь сейчас захотелось опробовать что-то новое. Заодно посмотреть на компактные темы, т.к. с монитором 1024x768 предпочтительнее устанавливать именно их. Конкретно на скриншоте FullHD монитор, но большую часть времени всё же приходится сидеть на старье.

Понравилась тема Colloid-gtk-compact (на скрине как раз оно), выглядит более-менее нормально, хоть и уныло, работает с gtk4/libadwaita. Единственный минус — слишком жирные пункты меню в GNOME Settings, но это, видимо, особенность самого приложения. Из твиков темы — float панель и нормальные кнопки, а не макосветофор.

Из расширений стоит BlurMyShell (размытие верхней панели отключил, т.к. криво работает), Caffeine, RoundedWindowCorners, AppIndicator (трей), Vitals (вывожу температуру ЦП и свободную память, из-за объёма в 8 ГБ приходится постоянно за ней следить), ну и DockFromDash. Док от него по умолчанию скрыт, а само расширение не тормозит так сильно, как DashToDock.

Шрифт - Open Sans, в терминале - Noto Sans Mono.

Иконки - Colloid.

В качестве дистра Fedora. Вообще раньше всегда Arch использовал, т.к. Fedora казалась тяжёлой - там, где на рачике всё шло максимально плавно, на федорке проскакивали статтеры, тормоза и т.д. Сейчас поставил 38 - подобного уже не заметил. Ну и постоянно доделывать руками то, что в других дистрах работает по умолчанию не захотелось. А конкретно для себя минусов не нашёл, разве что необходимость доустанавливать кодеки из RPMFusion.

Обоина - https://unsplash.com/photos/body-of-water-near-trees-under-cloudy-sky-Flxl7OUuO1M

whbex
()

RSS подписка на новые темы