Ergebnisse der Initiative zur vollständigen Unterstützung von ARM64 in Ubuntu

Ravi Sharma vom Ubuntu Foundations Team hat die Ergebnisse der Arbeit zusammengefasst, die im letzten Jahr für die vollständige Unterstützung der ARM64-Architektur in Ubuntu unternommen wurde. Es wird angemerkt, dass durch die Verbesserung der Werkzeuge und Infrastruktur sowie die Umsetzung von Änderungen im Kern von Linux spezifische Probleme für ARM64 gelöst werden konnten, wie die Verbreitung von Paketen über ein separates Repository, das Fehlen der Unterstützung von Live-Patches für den Kernel, eingeschränkte Möglichkeiten für Computerspieler und die Nichterreichbarkeit von Secure Boot auf Laptops mit Qualcomm Snapdragon-Chips.

Wesentliche Errungenschaften:

  • Pakete für die ARM64-Architektur wurden aus den Ports (ports.ubuntu.com) in das Hauptarchiv von Ubuntu (archive.ubuntu.com) übertragen, was die Nutzung der gleichen Infrastruktur für ihre Verbreitung ermöglichte, die auch für die x86_64-Architektur verwendet wird. Pakete für ARM64 werden jetzt über das primäre Spiegelserversystem bereitgestellt, was die Geschwindigkeit und Zuverlässigkeit beim Herunterladen erhöht hat. Die Migration erforderte Änderungen an den Paketen cloud-init, live-build, livecd-rootfs und ubuntu-release-upgrader. Diese Änderungen sind Bestandteil von Ubuntu 26.04 und werden für Ubuntu 24.04 LTS zurückportiert.
  • Der Livepatch-Dienst, der es ermöglicht, Korrekturen im Linux-Kernel auf einem laufenden System ohne Neustart einzuführen, wurde auf Systeme mit ARM64-Architektur ausgeweitet. Zuvor wurden Live-Patches nur für die x86_64-Architektur angeboten, da im Linux-Kernel für ARM64 keine Unterstützung für zuverlässige Stack-Traces (CONFIG_HAVE_RELIABLE_STACKTRACE) zur Identifizierung von Aktivitäten im Zusammenhang mit der Unterbrechungsverarbeitung vorhanden war, und die Werkzeuge objtool und kpatch keine vollständigen Möglichkeiten zur Bewertung des Zustands vor und nach der Anwendung eines Patches boten. Die Unterstützung für Live-Patches für ARM64 steht für Ubuntu 26.04 LTS und Ubuntu Core 26 zur Verfügung.
  • Ein stabiler Snap-Paket mit dem Steam-Client wurde für die ARM64-Architektur erstellt. Da der Steam-Client für Linux nur für die x86-Architektur verfügbar ist, wird zur Ausführung auf ARM64-Systemen eine Emulationsschicht auf Basis des FEX-Pakets verwendet. Bei der Emulation wird die Durchleitung von GPU und die Nutzung von Wine, Proton, DXVK und vkd3d unterstützt, um Computerspiele auszuführen, die für die x86_64-Architektur erstellt und über das Steam-Katalog verbreitet werden. Die Funktionalität des Snap-Pakets wurde auf Laptops mit Qualcomm Snapdragon X Elite, NVIDIA DGX Spark und Radxa Orion O6 getestet.
  • Die Unterstützung von Laptops auf Basis der Qualcomm Snapdragon X Elite-Chips, wie dem Lenovo Thinkpad X13s/T14s und dem Dell XPS 9345, wurde hinzugefügt. Zunächst wurde die Unterstützung für diese Geräte in das Basis-ISO-Image für ARM64-Systeme aufgenommen, es war jedoch nicht möglich, im Secure Boot-Modus zu laden, da separate Device Tree-Konfigurationen verwendet wurden, die die Firmware der Laptops nicht an den Linux-Kernel übermittelte. Die erforderlichen Device Tree-Einstellungen wurden vom GRUB-Bootloader aus einer separaten Datei geladen, die nicht von der digitalen Signatur abgedeckt war.

    Um das Problem zu lösen, wurden der Kernel und die Device Tree-Datenbank in einer einzigen monolithischen EFI-Datei zusammengeführt, die einer digitalen Signatur der Distribution ähnelt (UKI – Unified Kernel Image). Für das Laden dieser Datei wurde eine neue EFI-Schicht namens „stubble“ erstellt, die beim Booten das Gerät über SMBIOS identifiziert, die benötigten Device Tree-Daten auswählt und diese in den Kernel einfügt, ohne die Vertrauenskette des Secure Boot zu gefährden. Es wird an der Implementierung der Unterstützung für Laptops mit Snapdragon X2 Elite-Chips gearbeitet.

  • Ein Prototyp eines Boot-Images auf Basis von Ubuntu 26.04 für Laptops mit ARM64 SoC CIX P1 wurde vorbereitet, der im Gegensatz zu Snapdragon die Konfiguration über ACPI-Tabellen ohne Verwendung von Device Tree bestimmen kann.
  • Google hat die Veröffentlichung offizieller Chrome-Builds für Linux-Systeme auf ARM64-Architektur angekündigt, was es ermöglicht, in ARM64-Builds von Ubuntu den Chrome-Browser zu betreiben, der das Content Decryption Module (CDM) Widevine enthält, welches in Chromium nicht verfügbar ist. Die Bereitstellung von Widevine ermöglicht es, urheberrechtlich geschützte (DRM) Medieninhalte, die auf Diensten wie Netflix, Spotify und Disney+ veröffentlicht werden, ohne externe Patches anzusehen. Darüber hinaus wird die Unterstützung von Widevine in Snap-Pakete mit Firefox und Spotify integriert.
  • Neue Anwendungsbuilds im Snap-Format für die ARM64-Architektur wurden hinzugefügt. Unter anderem wurde die Veröffentlichung von Snap-Paketen mit OnlyOffice, FreeCAD und Teams für Linux für ARM64 gestartet.

Quelle: opennet.ru

60GB SSD 8Gb DDR4