Результаты инициативы по обеспечению полноценной поддержки ARM64 в Ubuntu

Рави Шарма (Ravi Sharma) из команды Ubuntu Foundations Team подвёл итоги работы, проведённой за последний год для обеспечения полноценной поддержки архитектуры ARM64 в Ubuntu. Отмечается, что благодаря улучшению инструментария и инфрастурктуры, а также продвижению изменений в основной состав ядра Linux, за год удалось решить специфичные для ARM64 проблемы, такие как распространение пакетов через отдельный репозиторий, отсутствие поддержки live-патчей для ядра, ограниченные возможности для любителей компьютерных игр и недоступность Secure Boot на ноутбуках с чипами Qualcomm Snapdragon.

Основные достижения:

  • Пакеты для архитектуры ARM64 перенесены из портов (ports.ubuntu.com) в основной архив Ubuntu (archive.ubuntu.com), что позволило задействовать для их распространения ту же инфраструктуру, что используется для архитектуры x86_64. Пакеты для ARM64 теперь доставляются через первичную систему зеркал, что повысило скорость и надёжность при их загрузке. Миграция потребовала внесения изменений в пакеты cloud-init, live-build, livecd-rootfs и ubuntu-release-upgrader. Изменения вошли в состав Ubuntu 26.04 и в процессе бэкпортирования для Ubuntu 24.04 LTS.
  • Cервис Livepatch, позволяющий вносить исправления в ядро Linux на работающей системе без перезагрузки, распространён на системы на базе архитектуры ARM64. Ранее Live-патчи распространялись только для архитектуры x86_64, так как в ядре Linux для архитектуры ARM64 отсутствовала поддержка надёжных трассировок стека (CONFIG_HAVE_RELIABLE_STACKTRACE) для выявления активности, связанной с обработкой прерываний, а в инструментарии objtool и kpatch отсутствовали полноценные возможности для оценки состояния до и после применения патча. Поддержка Live-патчей для ARM64 предоставлена для Ubuntu 26.04 LTS и Ubuntu Core 26.
  • Сформирован стабильный snap-пакет с клиентом Steam, собранный для архитектуры ARM64. Так как клиент Steam для Linux доступен только для архитектуры x86, для его запуска на системах ARM64 задействован слой эмуляции на базе пакета FEX. При эмуляции поддерживается проброс GPU и использование Wine, Proton, DXVK и vkd3d для выполнения компьютерных игр, собранных для архитектуры x86_64 и распространяемых через каталог Steam. Работа snap-пакета протестирована на ноутбуках с чипами Qualcomm Snapdragon X Elite, NVIDIA DGX Spark и Radxa Orion O6.
  • Добавлена поддержка ноутбуков на базе чипов Qualcomm Snapdragon X Elite, таких как Lenovo Thinkpad X13s/T14s и Dell XPS 9345. Изначально поддержка данных устройств была добавлена в базовый iso-образ для систем ARM64, но его невозможно было использовать для загрузки в режиме Secure Boot из-за использования отдельных конфигураций Device Tree, которые прошивка ноутбуков не передавала ядру Linux. Необходимые настройки Device Tree загружались загрузчиком GRUB из отдельного файла, который не охватывался цифровой подписью.

    Для решения проблемы ядро и база данных Device Tree были объединены в одном монолитном EFI-файле, похожем на UKI (Unified Kernel Image), подписанном цифровой подписью дистрибутива. Для загрузки этого файла была создана новая EFI-прослойка «stubble«, при загрузке определяющая модель устройства через SMBIOS, выбирающая нужные данные Device Tree и подставляющая их в ядро, не нарушая цепочку доверия Secure Boot. Ведётся работа над реализацией поддержки ноутбуков на чипах Snapdragon X2 Elite.

  • Подготовлен прототип загрузочного образа на базе Ubuntu 26.04 для ноутбуков на ARM64 SoC CIX P1, который в отличие от Snapdragon позволяет определять конфигурацию через таблицы ACPI без применения Device Tree.
  • Компания Google анонсировала публикацию официальных сборок Chrome для Linux-систем на базе архитектуры ARM64, что позволит запускать в ARM64-сборках Ubuntu браузер Chrome, содержащий CDM-модуль (Content Decryption Module) Widevine, который недоступен в Chromium. Поставка Widevine даст возможность без сторонних патчей просматривать медиаконтент, защищённый авторскими правами (DRM), размещаемый на таких сервисах, как Netflix, Spotify и Disney+. Кроме того, поддержку Widevine намерены интегрировать в snap-пакеты с Firefox и Spotify.
  • Добавлены новые сборки приложений, доступные в формате snap для архитектуры ARM64. Среди прочего, для ARM64 началась публикация snap-пакетов с OnlyOffice, FreeCAD и Teams for Linux.

Источник: http://www.opennet.ru/opennews/art.shtml?num=65857