So erstellt man einen Custom-Fork von SteamOS
- SteamOS 3 ("Holo") ist eine auf Arch basierende Linux-Distribution, die für den Steam Deck entwickelt wurde, Valves tragbares PC-Gaming-Gerät.
- SteamOS führt atomare Updates durch, indem ein neues schreibgeschütztes Root-Dateisystem auf eine inaktive Partition heruntergeladen wird.
- Nutzer können
steamos-devmode ausführen, um das Root-Dateisystem zu entsperren, die pacman-Datenbank zu bereinigen und so eine funktionierende Linux-Distribution mit regulärer Paketverwaltung zu erhalten.
Systemarchitektur von SteamOS
- Ein SteamOS-System besteht aus 8 Partitionen; auf der EFI-Systempartition werden der Stage-1-Bootloader und Metadatendateien gespeichert.
- Zwei A/B-Partitionssätze enthalten den Stage-2-Bootloader (GRUB), das Root-Dateisystem und die
/var-Partition.
- Zusätzlich gibt es eine einzelne Home-Partition, die den restlichen Speicherplatz des Datenträgers belegt.
So patcht man den Kernel
- Valve verwendet in SteamOS einen stark modifizierten Linux-Kernel.
- Der Kernel-Quellcode ist im pacman-Mirror von Valve zu finden, und der Quellcode des aktuell stabilen Images kann online heruntergeladen werden.
- Das Source-Tarball ist 2,9 GiB groß, da es den vollständigen Linux-Git-Tree enthält.
Re-Paketierung des Root-Dateisystems
- Es ist möglich, das Root-Dateisystem zu verändern und passend zu den eigenen Anforderungen „neu zu paketieren“.
- Das Image des Root-Dateisystems erhält man entweder durch den Kauf eines Steam Deck oder durch das Herunterladen des SteamOS-Recovery-Images.
- Das Image kann mit
casync heruntergeladen werden, indem die benötigten Image-Fragmente aus dem .castr-Repository geladen und auf die inaktive Root-Dateisystem-Partition geschrieben werden.
Erstellen eines RAUC-Bundles
- Nachdem das
casync-Repository und der Blob-Index erstellt wurden, kann ein RAUC-Bundle gebaut werden.
- RAUC stellt Vertrauen mithilfe von X.509-Zertifikaten her; ein neues Zertifikat muss im Root-Dateisystem installiert werden.
- Das RAUC-Bundle muss
rootfs.img.raucb und rootfs.img.caibx enthalten, und diese Dateien müssen auf einen Webserver hochgeladen werden.
Einrichten des Update-Servers
- Der Update-Server muss eine JSON-Datei bereitstellen, die mit der
manifest.json des Images übereinstimmt.
- Mit einer Caddy-Konfiguration lassen sich Anfragen, die
steamos-atomupd mit QueryUrl und MetaUrl erzeugt, auf live.json umleiten.
Meinung von GN⁺
- Wichtigkeit eines Custom-OS: Dieser Artikel zeigt, wie Nutzer ein Betriebssystem an ihre eigenen Anforderungen anpassen können. Das ist wichtig, um Softwareentwicklern maßgeschneiderte Lösungen zu ermöglichen.
- Wert als Lernmaterial: Durch diesen Prozess können angehende Softwareingenieure lernen, wie Linux-Distributionen funktionieren und wie sie angepasst werden können.
- Beitrag zur Community: Das Teilen solchen Wissens trägt zur Open-Source-Community bei und kann anderen Nutzern helfen, ähnliche Projekte zu starten.
1 Kommentare
Hacker-News-Kommentare
Begeisterung für die tiefgehende Auseinandersetzung damit, Software/OS nach den eigenen Wünschen anzupassen
nixpkgsunterstützt (nicht standardmäßig installiert, aber auf dem Gerät installierbar, ohne gleich das gesamte OS zu forken)Gründliche und interessante Bewertung des Beitrags
Ausdruck von Nostalgie für das Netscape-Meteor-Shower-Favicon
Bestellung einer GPU für einen unRaid-NAS-Server, um Steam Headless über ein Docker-Image umzusetzen
nvidia-persistencedmöglich)Es gibt bereits Distributionen auf Basis von SteamOS
Meinung zu A/B-Upgrades
Geteilte Erfahrung mit einem Gaming-Handheld (Legion Go), um mehr Erfahrung mit Linux zu sammeln
Geteilte Erfahrung mit 120-Hz-VRR-Unterstützung auf AMD-Hardware und HDR-Alpha-Tests von bazzite.gg
Interessante Entdeckung, dass SteamOS auf Arch Linux basiert
Wer SteamOS auf einem Linux-PC ausführen möchte, dem wird HoloISO empfohlen