- Bazzite ist ein Custom Image auf Basis von Fedora Atomic, das eine Linux-Gaming-Umgebung für Handhelds wie das Steam Deck ebenso wie für Desktops und HTPCs bieten soll
- Es entstand, um die veralteten Pakete und das Fehlen eines funktionalen Paketmanagers in SteamOS zu adressieren; obwohl es imagebasiert ist, lassen sich Fedora-Pakete installieren und diese bleiben auch nach Updates erhalten
- Es bietet mehrere Varianten wie
bazzite, bazzite-deck, GNOME-Varianten und Images mit proprietären NVIDIA-Treibern sowie Unterstützung für Game mode, HDR, Mesa, portierte SteamOS-Pakete, Rollbacks und Secure Boot
- Zur Standardausstattung gehören Distrobox, Waydroid, vkBasalt, MangoHud, OBS VkCapture, xone, DisplayLink, ROCM OpenCL/HIP sowie Unterstützung für verschiedene Eingabe-, RGB- und Tablet-Treiber
- Installations-ISOs und Rebase-Befehle werden bereitgestellt; die Images unterstützen Signaturprüfung mit cosign, und Nutzer können mit GitHub Actions und Cosign-Schlüsseln eigene Bazzite-Varianten bauen
Zweck und Basis von Bazzite
- Bazzite ist ein Custom Image auf Basis von Fedora Atomic und wird mit dem Cloud-nativen Ansatz von Universal Blue gebaut
- Ziel ist es, Linux-Gaming-Umgebungen auf Desktops, Wohnzimmer-HTPCs und Handheld-Geräte wie das Steam Deck auszuweiten
- Bazzite wird aus ublue-os/main gebaut und nutzt Fedora-Technologien, um erweiterte Hardwareunterstützung und integrierte Treiber bereitzustellen
- Es wurde gestartet, um die in SteamOS problematischen veralteten Pakete und das Fehlen eines funktionalen Paketmanagers zu beheben
- Obwohl es imagebasiert ist, können Fedora-Pakete über die Kommandozeile installiert werden; installierte Pakete bleiben auch nach Updates erhalten
- Es wird mehrmals pro Woche mit Upstream-Fedora-Paketen aktualisiert und unterstützt den aktuellen Linux-Kernel, standardmäßig aktiviertes SELinux, Secure Boot und Festplattenverschlüsselung
Gemeinsame Gaming- und Hardware-Funktionen
- Bazzite verwendet den bazzite kernel, um HDR und erweiterte Hardwareunterstützung bereitzustellen, und enthält mehrere Patches
- HDR ist im Game mode nutzbar
- In Nicht-NVIDIA-Builds kann NVK verwendet werden
- Es bietet Unterstützung für hardwarebeschleunigte Codecs zur H264-Decodierung
- AMDs ROCM-OpenCL/HIP-Runtime wird unterstützt
- Der xone-Treiber für Xbox-Controller und DisplayLink werden unterstützt
- Valves SteamOS-KDE-Theme ist enthalten
- vkBasalt, MangoHud und OBS VkCapture sind standardmäßig installiert
- Winesync/Fastsync/NTsync wird unterstützt
- Distrobox ist vorinstalliert
- Über
ujust install-resolve wird die Installation von Davinci Resolve auf Basis von davincibox vereinfacht
- Ein automatischer
duperemove-Dienst reduziert den von wine-prefix-Inhalten belegten Speicherplatz
- HDMI CEC über libCEC wird unterstützt
- Als standardmäßige TCP-Staukontrolle wird Google BBR verwendet
- Input Remapper ist vorinstalliert und aktiviert; in Deck-Varianten ist es verfügbar, aber standardmäßig deaktiviert
- Bazzite Portal installiert Anwendungen und Anpassungen und bietet Schaltflächen zum Aktualisieren, Rebasen und Zurücksetzen des System-Images
- Waydroid ist vorinstalliert und unterstützt das Ausführen von Android-Apps
- Für die Verwaltung von Flatpak und AppImage werden Flatseal, Warehouse und Gear Lever verwendet
- Für die RGB-Steuerung einiger Mainboards sind die OpenRGB-Treiber i2c-piix4 und i2c-nct6775 enthalten
- OpenRazer-Treiber sind integriert und können über Bazzite Portal oder
ujust install-openrazer genutzt werden
- OpenTabletDriver-udev-Regeln sind integriert; das komplette Software-Bundle kann über Bazzite Portal oder
ujust install-opentabletdriver installiert werden
- Wooting-Tastaturen werden standardmäßig unterstützt
- AMD-GPUs der Southern-Islands-HD-7000- und Sea-Islands-HD-8000-Serien werden mit dem
amdgpu-Treiber unterstützt
- Mit dem Webapp Manager lassen sich Websites aus Firefox und anderen Browsern wie Anwendungen einrichten
Desktop- sowie Steam-Deck-/HTPC-Varianten
- Die gemeinsame Desktop-Variante heißt
bazzite und eignet sich für Desktop-Computer
- Automatische Updates für das OS, Flatpaks und mehr übernehmen uupd und topgrade
- ISOs sind auf der Download-Seite verfügbar; eine Installationsanleitung wird bereitgestellt
- Von einem bestehenden Fedora Atomic kann auf ein Image mit Open-Source-GPU-Treibern rebased werden
rpm-ostree rebase ostree-unverified-registry:ghcr.io/ublue-os/bazzite:stable
- Geräte, die proprietäre NVIDIA-Treiber benötigen, werden auf das Image
bazzite-nvidia rebased
rpm-ostree rebase ostree-unverified-registry:ghcr.io/ublue-os/bazzite-nvidia:stable
- Nutzer mit aktiviertem Secure Boot sollten vor dem Rebase der Secure-Boot-Dokumentation folgen
- NVK, die Open-Source-Option von Mesa für NVIDIA, ist zum Zeitpunkt der Erstellung fehleranfällig; NVK-bezogene Probleme sollten an Mesa gemeldet werden, nicht an Ublue/Bazzite
-
bazzite-deck für Steam Deck und HTPC
bazzite-deck ist als SteamOS-Alternative für das Steam Deck und für eine konsolenartige Erfahrung auf HTPCs konzipiert
- Es bootet wie SteamOS direkt in den Game mode
- Automatisches
duperemove reduziert die Größe von compatdata deutlich
- Das aktuelle Mesa erzeugt kleinere Shader-Caches und benötigt keinen Shader-Cache zur Vermeidung von Stottern
- Es kann auch booten, wenn das Laufwerk voll ist
- Alle von Upstream-Fedora unterstützten Sprachen werden unterstützt
- Auf dem Desktop wird Wayland verwendet, und Steam Input wird unterstützt
- Es enthält portierte Versionen der meisten SteamOS-Pakete aus dem evlaV repository, darunter Treiber, Firmware-Updater und Fan-Controller
- Für korrekte Framerate-Steuerung in Gamescope wird ein gepatchtes Mesa verwendet
- BTRFS-Unterstützung für SD-Karten ist standardmäßig enthalten, einschließlich der SteamOS BTRFS-Patches
- Eine Portierung von SDGyroDSU wird standardmäßig aktiviert bereitgestellt
- Bei der Installation können unter anderem Decky Loader, EmuDeck, RetroDECK und ProtonUp-Qt optional installiert werden
- Es bietet ein eigenes Update-System in der Game-mode-UI, um OS, Flatpaks und mehr zu aktualisieren
- Die GRUB-Installation von Fedora bleibt erhalten, um Dual-Boot mit Windows zu unterstützen
- Mit der Rollback-Funktion von
rpm-ostree kann zu früheren Bazzite-Versionen zurückgekehrt werden; beim Booten kann ein früheres Image ausgewählt werden
- Steam und Lutris sind als Layered Packages im Image vorinstalliert
- Standardmäßig werden 4 GB ZRAM mit dem LZ4-Kompressionsalgorithmus verwendet
- Für flüssiges und reaktionsschnelles Gameplay sind die CPU-Scheduler LAVD und BORE enthalten
- Der Kyber-I/O-Scheduler wird eingesetzt, um I/O-Starvation bei Spieleinstallationen oder während
duperemove im Hintergrund zu vermeiden
- SteamOS-Kernelparameter werden angewendet
- Farbkalibrierte Displayprofile für matte und glänzende Steam-Deck-Displays sind enthalten
- Power-User-Funktionen wie risikoarmes Undervolting des Steam Decks, Display-Overclocking und bis zu doppelte maximale VRAM-Zuweisung bei 32-GB-RAM-Mods sind standardmäßig deaktiviert verfügbar
- Steam-Deck-hardwarespezifische Dienste für BIOS- und Firmware-Updates können im Terminal mit
ujust disable-bios-updates bzw. ujust disable-firmware-updates deaktiviert werden
- Diese Dienste werden auf Nicht-Deck-Hardware sowie bei Decks mit DeckHD-Display oder 32-GB-RAM-Mod automatisch deaktiviert
- Für die Einrichtung des Steam Gaming Mode auf alternativen Handhelds ist das Handheld Wiki zu konsultieren
GNOME-Varianten und Upstream-Funktionen
- Builds mit GNOME-Desktop-Umgebung werden sowohl für Desktop- als auch für Deck-Varianten angeboten
- GNOME-Builds aktivieren unter Wayland variable Bildwiederholraten und Fractional Scaling
- Ein Custom-Menü in der oberen Leiste bietet die Rückkehr in den Game mode, das Starten von Steam und das Ausführen mehrerer Utilities
- GSConnect ist vorinstalliert und sofort nutzbar
- Die Hanabi extension ist enthalten und bietet Funktionen ähnlich der Wallpaper Engine von KDE
- Mehrere optionale GNOME-Erweiterungen sind vorinstalliert; außerdem sind Anpassungen der User Experience enthalten
- Das Firefox-GNOME-Theme und das Thunderbird-GNOME-Theme werden, falls installiert, automatisch aktualisiert
- Der Rebase-Befehl für die GNOME-Desktop-Variante lautet wie folgt
rpm-ostree rebase ostree-unverified-registry:ghcr.io/ublue-os/bazzite-gnome:stable
- Das GNOME-Image mit proprietären NVIDIA-Treibern wird mit folgendem Befehl rebased
rpm-ostree rebase ostree-unverified-registry:ghcr.io/ublue-os/bazzite-gnome-nvidia:stable
- Für das GNOME-Release für Steam Deck/HTPC wird folgender Befehl verwendet
rpm-ostree rebase ostree-unverified-registry:ghcr.io/ublue-os/bazzite-deck-gnome:stable
-
Funktionen aus Universal Blue und Fedora
- Funktionen auf Basis von Universal Blue
- In NVIDIA-Images sind proprietäre NVIDIA-Treiber vorinstalliert
- Flathub ist standardmäßig aktiviert
- Der Komfortbefehl
ujust wird bereitgestellt
- Multimedia-Codecs sind standardmäßig enthalten
- Bazzite kann auf jeden Build der letzten 90 Tage zurückgerollt werden
- Funktionen auf Basis von Fedora Linux Kinoite und Silverblue
- Eine stabile Basis wird bereitgestellt
- Systempakete bleiben vergleichsweise aktuell
- Fedora-Pakete können dem Image als Layer hinzugefügt werden und bleiben auch nach Updates erhalten
- SELinux ist vorinstalliert und konfiguriert
- Ohne Verlust von Nutzerdaten kann auf andere Fedora-Atomic-Images rebased werden
- CUPS ist vorinstalliert und unterstützt Drucken
Verifizierung, Secure Boot und eigene Builds
- Bazzite-Images sind mit cosign von sigstore signiert
- Durch Herunterladen des
cosign.pub-Schlüssels aus dem Repository kann die Signatur mit folgendem Befehl verifiziert werden
cosign verify --key cosign.pub ghcr.io/ublue-os/bazzite
- Secure Boot wird mit einem Custom Key unterstützt; der öffentliche Schlüssel befindet sich in secure_boot.der im Root des Repositorys
- Um den Secure-Boot-Schlüssel vor der Installation oder dem Rebase zu registrieren, werden folgende Befehle verwendet
sudo mokutil --timeout -1
sudo mokutil --import secure_boot.der
- Wer bereits ein Universal-Blue-Image nutzt, kann stattdessen
ujust enroll-secure-boot-key ausführen
- Wenn nach einem Passwort gefragt wird, ist
universalblue zu verwenden
- Das Steam Deck wird nicht mit aktiviertem Secure Boot ausgeliefert und hat auch keine standardmäßig registrierten Schlüssel; wenn man es nicht genau versteht, sollte man es nicht aktivieren
- Bazzite wird vollständig mit GitHub Actions gebaut
- Eine eigene Custom-Version kann erstellt werden, indem das Repository geforkt, ein eigener Signaturschlüssel hinzugefügt und GitHub Actions im Fork aktiviert wird
- Der Workflow
Build Bazzite erzeugt Custom Images für alle Varianten von Bazzite
- Um nur die benötigten Varianten zu bauen, werden in der
strategy.matrix-Liste des push-ghcr-Jobs in .github/workflows/build.yml die nicht gewünschten Varianten auskommentiert
- Zum Synchronisieren eines Forks mit Upstream kann die Konfiguration der pull app verwendet werden
-
Signaturverfahren für eigene Images
- Zunächst sollte geprüft werden, wie GitHub Secrets verwaltet
- Mit Cosign wird ein neues Schlüsselpaar erzeugt
cosign generate-key-pair
cosign.pub im öffentlichen Repository wird durch den erzeugten öffentlichen Schlüssel ersetzt
- Der Text des privaten Schlüssels in
cosign.key wird als Repository Secret im Fork hinzugefügt
- Der Secret-Name muss
SIGNING_SECRET lauten
Dokumentation und Community
- Dokumentation
- Die Community wird über den Bazzite Discord betrieben
- Support-Thread-Archive können ohne Account eingesehen werden
1 Kommentare
Meinungen auf Hacker News
Gut. Ich glaube, der Medienserver im Wohnzimmer wird zum trojanischen Pferd, das Self-Hosting wiederbelebt und das Internet am Ende wieder stärker P2P-orientiert macht.
Wenn die meisten Menschen symmetrische Anschlüsse und leistungsfähige Linux-Systeme haben, bleibt nur noch ein Softwareproblem, das sie daran hindert, das Internet wie ursprünglich gedacht zugleich als Konsumenten und als Publisher zu nutzen.
Besser ist dort ein kleiner, leiser und Privatsphäre respektierender Client, etwa ein Apple TV, während die Medien auf einem NAS anderswo liegen. Je nach bevorzugter Client-UX braucht man dafür vielleicht eine separate App zum Bereitstellen der Medien wie Plex, oder eben nicht, wie bei Infuse.
Ob der Server im Wohnzimmer, im Arbeitszimmer oder im Homelab steht, macht für die Verbreitung von Self-Hosting kaum einen Unterschied; die Verwaltung lokaler Mediatheken dürfte eher noch weniger populär werden. Die Leute machen das seit Jahrzehnten – wenn es einen Trojaner-Effekt gegeben hätte, wäre er längst eingetreten.
Deshalb wäre ein Produkt, das in diesem Bereich einfach einstecken und loslegen lässt, sehr reizvoll.
Ich habe mehrere Tools für rpm-ostree-Distributionen kennengelernt.
gnome-randr-rust: https://github.com/maxwellainatchi/gnome-randr-rust
Übernimmt auf Distributionen ohne
wlr-randr-Unterstützung die Rolle vonxrandrfür Gnome/Wayland.Kernel-fsync: https://copr.fedorainfracloud.org/coprs/sentry/kernel-fsync/
gnome-vrr: https://copr.fedorainfracloud.org/coprs/kylegospo/gnome-vrr/
gsettings set org.gnome.mutter experimental-features "['variable-refresh-rate']"obs-vkcapture: https://copr.fedorainfracloud.org/coprs/kylegospo/obs-vkcapt...
system76-scheduler: https://copr.fedorainfracloud.org/coprs/kylegospo/system76-s...
Schön, dass das endlich hochgekommen ist. Als ich es vor ein paar Wochen gepostet hatte, war ich überrascht, warum ich nicht früher davon erfahren hatte, und dachte, es würde direkt nach oben gehen, aber es ging einfach unter (https://news.ycombinator.com/item?id=38642298)
Bazzite hat mich ziemlich überrascht. Bisher habe ich noch keinen Nachteil gegenüber SteamOS gesehen, wenn man Bazzite statt SteamOS nutzt, aber viele Vorteile. Ich wollte mein Deck schon lange in mein Tailnet aufnehmen, aber das war nicht einfach; außerdem wollte ich mehrere Pakete, die als Flatpak nicht gut funktionieren, im Basis-OS installieren – das geht jetzt.
Zum Beispiel lasse ich per Remote Play ein Spiel auf einem starken Desktop laufen und schaue es auf dem Fernseher. Dabei gehe ich per SSH auf den Host und lasse in einem tmux-Pane htop laufen und in einem anderen nvtop für die AMD-Karte. Auch mit AMD funktioniert das inzwischen gut. Für mich fühlt sich das an wie der Unterschied zwischen Fahren mit Tacho und Drehzahlmesser und Fahren ganz ohne Anzeigen. Unter SteamOS ist so etwas Einfaches schwierig, unter Bazzite ist es leicht.
services.tailscale.enable = truein meinem Tailnet.Bazzite hat mich neugierig gemacht; vielleicht sollte ich NixOS und Bazzite einmal vergleichen.
Sieht cool aus. Ich brauche keine Portabilität und mag kein Lüfterrauschen, will aber die einfache Bedienung von Steam – deshalb hatte ich gerade nach Dingen wie „PC mit ähnlichen Specs wie das Steam Deck“ gesucht.
Damit gibt es jetzt im Grunde einen einfachen Weg, Spiele auf einem normalen, leisen dedizierten PC laufen zu lassen. Allerdings wird es wohl keine Optimierungen für beliebige GPU/CPU/RAM-Kombinationen geben, wie Valve und AMD sie für das Steam Deck machen.
Interessant ist, dass der SteamOS-BTRFS-Patch enthalten ist und SD-Karten damit standardmäßig vollständige BTRFS-Unterstützung haben. Ich hatte mich gefragt, welche Vorteile BTRFS bei Spielen oder im Steam-Deck-Kontext bringt; laut https://gitlab.com/popsulfr/steamos-btrfs spart es durch transparente Kompression und Deduplizierung Speicherplatz, kann Ladezeiten verbessern, weil weniger Daten gelesen werden müssen, und macht es mit sofortigen Snapshots einfach, zu einem früheren Zustand zurückzukehren. Das dürfte für System-Rollbacks oder Rollbacks auf andere Versionen desselben Spiels nützlich sein.
Es weist immer neue Blöcke zu und markiert alte Blöcke als freigegeben, sobald sie vom aktiven Dateisystem oder, falls unterstützt, von Snapshots nicht mehr referenziert werden.
Flash-Medien mögen Überschreiben an Ort und Stelle gar nicht, weil ein Block erst gelöscht und dann neu beschrieben werden muss. Moderne Flash-Firmware versucht zwar ohnehin, neue Blöcke zuzuweisen, wodurch sich ein Teil davon ausgleicht, aber insgesamt ist es für Flash die bessere Schreibweise.
Überraschend viel der schweren Arbeit erledigen der Kernel und der Mesa-Stack; dort passiert die eigentliche Arbeit. Fedora bekommt Kernel- und Mesa-Updates relativ schnell, und der Steam-Client kümmert sich um Proton-Updates.
Auch die Synergie zwischen gamingorientierten Distributionen wie Bazzite, ChimeraOS und Nobara ist gut. Es gibt viel Code-Sharing und Zusammenarbeit, und alles ist offen, sodass jeder mitarbeiten kann.
Es verhält sich wie ein großes Steam Deck: Performance-Overlay, Xbox-Controller, FSR usw. funktionieren direkt gut. Die Controller müssen jeweils gekoppelt werden, aber nur einmal. Ich persönlich habe AAA-Kampagnen wie God of War, Horizon Zero Dawn und Baldur’s Gate 3 in 4K durchgespielt, und auf Reisen ist mein Fortschritt einfach auf dem Deck da. Das ist eine vollständige Multi-Device-Erfahrung.
Man muss die Erwartungen richtig setzen. VR, Multiplayer-Spiele, die sich nicht für EAC entschieden haben oder Kernel-Level-Anti-Cheat verwenden, sowie alles von Epic funktionieren praktisch nicht. Für mich ist es ähnlich wie bei einer Konsolenplattform: Man kann viele Spiele spielen, aber manche eben nicht. Im Moment ist die UX sowohl unter Windows als auch unter Linux chaotisch, und schreckliche Third-Party-Launcher sind auf beiden Seiten das schlimmste Problem.
Zur Einordnung: Ich bin an Universal Blue beteiligt, trage aber nicht direkt zu Bazzite bei.
Wenn man Proton-/Wine-Runtimes auf derselben Platte speichert, kann auch Deduplizierung nützlich sein. Jedes Spiel kann andere Runtimes benötigen, die neueste Version ist nicht immer die beste, und selbst eine Wine-Umgebung ganz ohne Spiele kann allein durch DLLs und gemeinsame Abhängigkeiten Hunderte MB belegen. Deduplizierung kann verschwendeten Speicherplatz reduzieren, aber angesichts der heutigen Preise für Flash-Speicher dürfte das praktisch kein großes Thema mehr sein.
Manche mögen Prüfsummen, aber ohne ECC-Speicher halte ich sie nicht für besonders nützlich.
Die wichtigsten Vorteile sind Kompression und insbesondere höhere Lesegeschwindigkeit auf komprimierten Laufwerken wie MicroSD. BTRFS-Deduplizierung löst außerdem das Problem, dass Wine-Prefixes mit ähnlichen Abhängigkeiten mehr Platz belegen als nötig.
Leicht verwandt: Ich habe heute eine SteamOS-Redistribution für normale Maschinen entdeckt. Voraussetzung ist allerdings, dass keine Nvidia-Grafik vorhanden ist: https://github.com/HoloISO/holoiso
Ich kenne die Details der GPU-Kompatibilität unter Linux nicht gut, aber warum ist es nicht einfach damit getan, Nvidias Closed-Source-Paket zu installieren?
Mich würde interessieren, was die Motivation hinter diesem Projekt ist und wer dahintersteht. Es fühlt sich weniger wie ein Wochenend-Hobbyprojekt an, sondern eher wie eine strategische Open-Source-Bewegung.
Könnte es vielleicht mit Nvidia zusammenhängen?
Am Anfang wollte ich etwas, das SteamOS ähnelt, aber bei dem man Pakete installieren und es über Updates hinweg erhalten kann. Nachdem ich Silverblue etwa ein Jahr lang genutzt hatte, wurde mir klar, dass Fedora das liefern kann. Von dort aus hat es sich weiterentwickelt und ist gewachsen.
Ich habe gerade HDR in den Test-Channel gebracht und arbeite außerdem an einer Signierung für einen Custom-Kernel, um es in den Stable-Channel zu verschieben, ohne Secure-Boot-Unterstützung zu beschädigen.
Wenn du im Moment unterstützen willst, ist das Beste, es zu installieren und gefundene Bugs zu melden. Je mehr Nutzer, desto besser.
Ich frage mich, wie gut es auf reinen Touch-Geräten, zum Beispiel Tablets, funktioniert.
Ich habe ein ThinkPad X1 Tablet der 3. Generation und suche noch nach einer Linux-Distribution, die sich ohne Tastatur einfach gut als Tablet nutzen lässt. Das normale Fedora hat ziemlich lästige Bugs mit der Bildschirmtastatur; wenn man die Phosh-Erweiterungen installiert, ist das meiste gelöst, aber es entstehen andere Ärgernisse, die die Nutzung umständlich machen.
Außerdem muss man bei Festplattenverschlüsselung beim Booten weiterhin eine Tastatur anschließen, weil Grub keine Bildschirmtastatur hat. Mich würde interessieren, wie dieses Problem hier gelöst wurde.
Seht her, Bazzite läuft auf einem Mülleimer-Mac-Pro: https://youtu.be/te1AEj_RA64
Als ich vor ein paar Monaten einen Gaming-PC zusammengebaut habe, wirkte es wie eine interessante Option, also habe ich es ausprobiert.
Ich bin auf mehrere Probleme gestoßen und habe nach etwa 6–7 fehlgeschlagenen Versuchen aufgegeben; inzwischen bin ich bei Debian gelandet (https://blog.c10l.cc/09122023-debian-gaming).
Trotzdem wäre ich bereit, Bazzite noch einmal auszuprobieren, um zu sehen, ob die vielen Probleme, die ich damals hatte, behoben wurden. Für mich gab es allerdings eine entscheidende Einschränkung: Dual-/Multiboot wurde nicht unterstützt. Weiß jemand, ob sich das inzwischen geändert hat?