☰
Bazzite 深度指南:基于 Fedora Atomic 的云原生 Linux 游戏镜像,从特性架构到 rpm-ostree 部署与安全验证
2026/9/25 2:59:03 网站建设 项目流程
  • 操作系统

【免费下载链接】bazzite

Bazzite makes gaming and everyday use smoother and simpler across desktop PCs, handhelds, tablets, and home theater PCs.

项目地址:https://gitcode.com/gh_mirrors/ba/bazzite
点击查看免费下载

Bazzite 是一个基于 Fedora Atomic(阿拉伯语版 README,与 README.md 内容同源)为主体脉络,结合仓库内的 Containerfile、Justfile、system_files/下的实际配置与脚本,完整解析 Bazzite 的镜像家族、核心特性、rebase 迁移命令、安全启动与签名验证流程,以及如何 fork 构建你自己的定制镜像。读完本文,你将掌握 Bazzite 各变体的适用场景与迁移命令、ujust高频运维命令、cosign 验证与 Secure Boot 注册方法,并能从源码层面理解这套镜像的构建管线。

Bazzite 是什么:云原生的游戏向 Fedora Atomic 镜像

Bazzite 是使用云原生技术构建的 Fedora Atomic 定制镜像:它不像传统发行版那样由包管理器增量维护一个可变系统,而是把整个系统作为不可变镜像进行原子化发布、拉取与切换(rebase)。这与 Universal Blue 生态的 "cloud native" 理念一致——系统像容器镜像一样被构建、签名、分发和验证。

从仓库根目录的 Containerfile 可以看到它的构建骨架:

  • 基础镜像来自ghcr.io/ublue-os/${BASE_IMAGE_NAME}-main,其中BASE_IMAGE_NAME默认为kinoite(KDE 变体),也支持silverblue(GNOME 变体),FEDORA_VERSION默认为 44(Containerfile)。
  • 内核默认采用ogc(Open Gaming Collective)内核口味(KERNEL_FLAVOR="${KERNEL_FLAVOR:-ogc}"),并通过akmods系列镜像预编译内核模块(Containerfile)。
  • 镜像从bazzite桌面版出发,叠加bazzite-deck、bazzite-nvidia等派生阶段,逐层 COPY 对应system_files/目录(Containerfile、Containerfile、Containerfile)。

项目从 ublue-os/main 目录保存了valve-hardware、non-valve-handheld-hardware、powerstation-hardware等硬件识别脚本,配合 bazzite-hardware-setup 在首次启动时按机型自动追加内核参数(例如对掌机追加amdgpu.ppfeaturemask、对特定机型追加amd_iommu=off),这正是"扩展硬件支持"的实现细节。

为什么会有 Bazzite:解决 SteamOS 的痛点

Bazzite 的诞生源于 SteamOS 的两个核心问题(见 README-AR.md 的 "لماذا" 章节):软件包陈旧(尽管基于 Arch),以及缺少可用的包管理器。Bazzite 虽同为镜像制系统,但你仍可直接从命令行安装任意 Fedora 软件包,且这些包会跨越系统更新持久保留(layered packages)。同时 Bazzite 每周多次随上游 Fedora 更新,把最新性能与特性建立在稳定基座之上,并默认启用 SELinux、支持 Secure Boot 与磁盘加密,使其同时适合游戏与日常通用计算。

镜像家族与核心特性:一份完整的特性矩阵

README-AR.md 开列的 Bazzite 特性,绝大多数都能在仓库的 Containerfile 与system_files/中找到对应的安装或配置证据。下表为完整特性矩阵(对照文档原文逐条继承):

特性说明仓库证据
bazzite 内核为 HDR、扩展硬件支持与多项补丁而定制(基于 fsync 内核思路;当前仓库默认口味为ogc)Containerfile
HDR游戏模式(Game Mode)下可用—
NVK非 NVIDIA 镜像中提供 Mesa 开源 NVIDIA 驱动—
H264 硬解完整硬件加速编解码支持—
AMD ROCm完整 OpenCL/HIP 运行时支持—
xoneXbox 手柄驱动—
DisplayLink完整显示链路支持—
SteamOS 主题内置 Valve KDE 主题—
游戏工具链LatencyFleX、vkBasalt、MangoHud、OBS VkCapture 默认安装即用Containerfile
Switcheroo-Control修复默认损坏的 iGPU/dGPU 切换—
ROM Properties Page内置 shell 扩展—
Wine 同步原语Winesync/Fastsync/NTsync 完整支持—
Distrobox预装—
davincibox简化安装 DaVinci Resolve(ujust install-resolve)yafti.yml
Ptyxis Terminal所有镜像默认终端,面向容器工作流设计—
bees/duperemove自动化去重服务,显著压缩 wine prefix 占用的磁盘空间beesd@.service.d、btrfs-dedup
HDMI CEC通过 libCEC 支持—
TCP BBR默认启用 Google 的拥塞控制算法—
Input Remapper预装并默认启用(Deck 变体默认关闭,可用ujust restore-input-remapper开启)85-bazzite-image.just
Bazzite Portal便捷安装大量应用与调优项(含 LACT)yafti.yml
Waydroid预装,用于运行 Android 应用—
应用管理Flatseal、Warehouse、Gear Lever—
OpenRGB内置 i2c-piix4 / i2c-nct6775 驱动—
OpenRazer内置驱动,可通过 Bazzite Portal 或ujust install-openrazer启用82-bazzite-apps.just
OpenTabletDriver内置 udev 规则,ujust install-opentabletdriver安装完整套件82-bazzite-apps.just
Wooting键盘开箱即用支持—
AMD 老显卡Southern Islands(HD 7000)/ Sea Islands(HD 8000)在amdgpu驱动下可用—
XwaylandVideoBridgeWayland 下 Discord 屏幕分享—
Webapp Manager从网站创建应用(支持 Firefox 等浏览器)—

特性背后的源码佐证

以几个关键特性为例说明仓库实现细节:

bees / duperemove 去重。桌面版通过btrfs-dedup服务驱动 rmlint/duperemove,配置位于 btrfs-dedup:其中DUPEREMOVE_ARGS="-r -d -h -q --skip-zeroes"、TIMEOUT="4h"、DB_MAX_AGE="14"(去重数据库文件 14 天后清理),并可设置POWERCHANGE_DISABLE让拔掉电源时暂停去重。Deck 版则在 Containerfile 阶段通过jupiter-hw-support-btrfs等包与/etc/default/steamos-btrfs实现 SD 卡 BTRFS 支持(switch-to-ext4命令可切换回 EXT4 以兼容 SteamOS 格式化过的卡,见 85-bazzite-image.just)。

ZRAM 与内存管理。Deck 版默认启用 4GB ZRAM 并使用 LZ4 压缩算法;桌面版在 zram-generator.conf 中配置zram-size = min(ram / 2, 16384)。bazzite-hardware-setup 还会按MemTotal的 1% 调整vm.min_free_kbytes,保证 ZRAM 场景下的内存水位。

输入映射。Input Remapper 在桌面版默认启用(Containerfile 中systemctl enable input-remapper.service);Deck 版默认关闭,需要用ujust restore-input-remapper(支持status/enable/disable参数)重新启用服务并恢复桌面入口与自启动项,其完整脚本见 85-bazzite-image.just。

桌面版:bazzite与 rebase 迁移实战

桌面通用变体名为bazzite,适用于桌面 PC,其亮点是依赖 uupd 与 topgrade 的自动更新体系,可自动更新系统、Flatpak 等。

如果你已在使用上游 Fedora Atomic(Kinoite/Silverblue),可以通过 rpm-ostree rebase 迁移到 Bazzite(数据保留,系统整体切换镜像):

# 希望使用开源 GPU 驱动(含 AMD/Intel,以及 NVIDIA 的 NVK 开源路线) rpm-ostree rebase ostree-unverified-registry:ghcr.io/ublue-os/bazzite:stable
# NVIDIA 用户希望使用 NVIDIA 专有驱动 rpm-ostree rebase ostree-unverified-registry:ghcr.io/ublue-os/bazzite-nvidia:stable

注意:文档明确提示,NVIDIA 的 NVK 开源驱动方案在写作时仍可能存在错误,相关问题应向 Mesa 项目报告,而不是报给 Ublue/Bazzite。

Secure Boot 用户须知:在 rebase 前务必先完成下方"安全启动(Secure Boot)"章节的密钥注册步骤。

Steam Deck / HTPC 变体:bazzite-deck的游戏模式深度解析

bazzite-deck是专为替代 SteamOS 打造的变体,目标是让 Steam Deck 与 HTPC 获得"主机式"体验。它默认直接引导进入游戏模式(Game Mode),行为对齐 SteamOS。文档列出的完整特性如下(逐条继承):

  • 直接引导进入游戏模式,匹配 SteamOS 行为;
  • 自动化bees去重大幅削减 compatdata 体积;
  • 最新版 Mesa 生成更小的着色器缓存,无需依赖缓存来避免卡顿;
  • 磁盘写满也能启动;
  • 支持上游 Fedora 支持的所有语言;
  • 桌面使用 Wayland,并支持 Steam 输入(基于 extest);
  • 移植了绝大多数 SteamOS 软件包(驱动、固件更新器、风扇控制器,来自 evlaV 仓库);
  • 针对 Gamescope 正确帧率控制打过补丁的 Mesa;
  • 内置 SteamOS BTRFS 补丁,SD 卡默认完整支持 BTRFS;
  • 预装移植版 SDGyroDSU(默认启用);
  • 安装时可选择 Decky Loader、EmuDeck、RetroDECK、ProtonUp-Qt 及众多实用软件包;
  • 基于 uupd/topgrade 的自定义更新系统,可直接在游戏模式界面更新系统与 Flatpak;
  • 保留 Fedora 的 GRUB 安装,原生支持与 Windows 双启动;
  • 更新出问题可借助rpm-ostree的 rollback 轻松回退,甚至可在启动时选择历史镜像;
  • Steam 与 Lutris 以 layered packages 形式预装;
  • 默认使用 ZRAM(4GB)与 LZ4 压缩算法;
  • LAVD 与 BORE CPU 调度器,保证游戏流畅与高响应;
  • Kyber I/O 调度器,避免安装游戏或后台duperemove时的 I/O 饥饿;
  • 应用 SteamOS 的内核参数;
  • 内置 Steam Deck 哑光屏与反射屏的校色文件;
  • 默认关闭的进阶用户功能(见下文)。

默认关闭的进阶功能

文档特别列出三类默认关闭的"power-user"功能:

  1. 低风险降压服务:为 Steam Deck 与 AMD Framework 笔记本提供(基于 RyzenAdj 与 Ryzen SMU),相关文件为ryzenadj.service与/etc/default/ryzenadj。仓库中还提供了ujust enable-ryzenadj-max-performance/disable-ryzenadj-max-performance命令,前者会在交流电切换到电池时通过 udev 规则执行ryzenadj --max-performance(见 85-bazzite-image.just)。
  2. 屏幕超频支持:例如向/etc/environment添加CUSTOM_REFRESH_RATES=30-68即可启用。注意:最小/最大刷新率因掌机型号而异。
  3. 32GB RAM 改装支持:改装到 32GB 的 Steam Deck 可自动获得双倍最大 VRAM。

此外,可运行ujust disable-bios-updates与ujust disable-firmware-updates在终端中禁用 Steam Deck 专属硬件服务(实际执行systemctl mask --now jupiter-biosupdate.service与jupiter-controller-update.service,见 85-bazzite-image.just)。这些服务在非 Deck 硬件、以及安装 DeckHD 屏幕或 32GB RAM 改装的 Deck 上会被自动禁用。

第三方掌机(Alternative Handhelds)

对于 Valve 之外的第三方掌机,文档建议参考掌机 Wiki 中针对具体机型所需的设置调整与 Decky Loader 插件,并务必阅读 hhd 的安装后文档——部分掌机需要特定更改/优化才能正常工作。

Bazzite 还附带了若干无法在 CSS Loader 商店中找到的主题安装命令,这些主题安装后会随 Bazzite 自动更新:

# 安装 Handheld Controller 主题(handheld-controller-glyphs) ujust install-hhd-controller-glyph-theme

Deck 变体的 rebase 命令

从现有上游 Fedora Atomic 迁移到 Deck 镜像:

rpm-ostree rebase ostree-unverified-registry:ghcr.io/ublue-os/bazzite-deck:stable

GNOME 变体:bazzite-gnome系列

GNOME 桌面版有桌面与 Deck 两种口味,额外特性包括:

  • 在 Wayland 下启用可变刷新率(VRR)支持与分数缩放;
  • 顶栏自定义菜单:可返回游戏模式、启动 Steam、打开常用工具;
  • GSConnect 预装即用;
  • 内置 Hanabi 扩展,提供类似 KDE Wallpaper Engine 的壁纸功能;
  • 预装大量可选扩展,包括重要的用户体验修复;
  • 自动更新 Firefox GNOME 主题与 Thunderbird GNOME 主题(若已安装)。

对应 rebase 命令:

# 标准 GNOME 桌面 rpm-ostree rebase ostree-unverified-registry:ghcr.io/ublue-os/bazzite-gnome:stable # 带 NVIDIA 专有驱动的 GNOME 桌面 rpm-ostree rebase ostree-unverified-registry:ghcr.io/ublue-os/bazzite-gnome-nvidia:stable # Steam Deck / HTPC 版 GNOME rpm-ostree rebase ostree-unverified-registry:ghcr.io/ublue-os/bazzite-deck-gnome:stable

同样地,Secure Boot 用户在 rebase 前需要先完成密钥注册。

上游继承的能力:Universal Blue 与 Fedora Kinoite/Silverblue

Bazzite 站在两个上游肩膀上(见 README-AR.md 的 "ميزات من المصدر الأعلى" 章节):

来自 Universal Blue:

  • NVIDIA 专有驱动预装(仅 NVIDIA 镜像);
  • Flathub 默认启用(Containerfile 中下载flathub.flatpakrepo写入/etc/flatpak/remotes.d/);
  • 提供ujust便捷命令(仓库根 Justfile 与 system_files/desktop/shared/usr/share/ublue-os/just/ 下有大量*.just脚本);
  • 开箱即用的多媒体编解码;
  • 可在最近 90 天内任意构建之间回退。

来自 Fedora Linux(Kinoite & Silverblue):

  • 极其稳定扎实的系统基座;
  • 系统包保持相对较新;
  • 可向镜像 layer Fedora 包且不会在更新间丢失;
  • 安全导向:SELinux 预装并开箱配置;
  • 可按需 rebase 到不同 Fedora Atomic 镜像而不丢失用户数据;
  • 预装 CUPS,打印开箱即用。

签名验证:用 cosign 校验镜像

Bazzite 的所有镜像都使用 sigstore 的 cosign 签名。要验证镜像签名,先从仓库根目录下载 cosign.pub 公钥,然后执行:

cosign verify --key cosign.pub ghcr.io/ublue-os/bazzite

这一步可在拉取/部署镜像前确认镜像来源与完整性,是云原生镜像供应链安全的关键一环。

安全启动(Secure Boot):密钥注册与 mokutil 用法

[!WARNING] Steam Deck 用户请注意:Steam Deck 出厂时并未启用 Secure Boot,也没有默认注册任何密钥。除非你完全清楚自己在做什么,否则不要自行启用。

Bazzite 使用自定义密钥支持 Secure Boot,公钥位于仓库根目录 secure_boot.der。如果你想在安装或 rebase 前注册该密钥,下载密钥后执行:

sudo mokutil --timeout -1 sudo mokutil --import secure_boot.der

已经运行在 Universal Blue 镜像上的用户,可以直接运行ujust enroll-secure-boot-key。如果系统提示输入密码,使用universalblue。

构建你自己的 Bazzite:fork、签名与发布

Bazzite 完全通过 GitHub Actions 构建。要创建自己的定制版本,只需要 fork 本仓库、添加私有签名密钥并启用 fork 的 Actions 即可(见 README-AR.md 的 "أنشئ نسختك الخاصة" 章节):

  1. 先在 GitHub 上了解如何安全管理加密 Secrets;
  2. 使用 cosign 生成新的密钥对(cosign generate-key-pair);
  3. 将生成的公钥替换到你公开仓库中的cosign.pub文件——你和你的用户需要它来验证签名;
  4. 将私钥(cosign.key文件中的文本内容)作为 Repository Secret 添加到 fork 的Settings -> Secrets -> Actions中,命名为SIGNING_SECRET。

如果你只想构建自己用到的变体,可以编辑.github/workflows/build.yml,在push-ghcrjob 的strategy.matrix列表中注释掉不需要的变体。仓库还附带了 pull app 的配置,方便 fork 与上游保持同步。

从构建管线理解镜像分层

仓库根目录的 Justfile 提供了本地构建入口:just build、just build-iso-release(别名build-iso)、just run-container(别名run)、just list-images、just clean-images等,对应脚本位于 just_scripts/。ISO 构建则通过 iso.yaml 描述 GRUB 引导条目(正常模式与nomodeset基础图形模式)。在 Containerfile 中可以看到完整的流水线:拉取 akmods 内核模块镜像 → 安装固定版本linux-firmware与固件 blob → 配置 COPR 与 Terra 等软件源 → 替换 Valve 补丁版 Mesa/BlueZ/Xwayland → 安装 Steam、Lutris、Waydroid 等游戏栈 → 按kinoite/silverblue分支配置 KDE/GNOME → 最后禁用无关源并bootc container lint校验。这解释了 README 中几乎所有"预装/默认启用"承诺是如何在镜像层面落地的。

展示与进一步阅读

仓库内可继续阅读的资源包括:根目录 README.md(英文主文档,与本篇主体同源)、README-zh-cn.md 等多语言版本,以及描述安装与更新语义的 installer/Containerfile、描述构建命令的 Justfile 与 just_scripts/ 目录。各变体实际落地配置可在 system_files/ 下按desktop/、deck/、nvidia/、overrides/分类查阅。

  • 操作系统

【免费下载链接】bazzite

Bazzite makes gaming and everyday use smoother and simpler across desktop PCs, handhelds, tablets, and home theater PCs.

项目地址:https://gitcode.com/gh_mirrors/ba/bazzite
点击查看免费下载

相关推荐

上一篇:Fan Control 配置指南:三步调好温度转速曲线,让电脑风扇安静下来
下一篇:Better xCloud远程游玩功能使用教程:在家畅玩主机游戏

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询