- 操作系统
【免费下载链接】bazzite
Bazzite makes gaming and everyday use smoother and simpler across desktop PCs, handhelds, tablets, and home theater PCs.
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 运行时支持 | — |
| xone | Xbox 手柄驱动 | — |
| 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驱动下可用 | — |
| XwaylandVideoBridge | Wayland 下 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"功能:
- 低风险降压服务:为 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)。 - 屏幕超频支持:例如向
/etc/environment添加CUSTOM_REFRESH_RATES=30-68即可启用。注意:最小/最大刷新率因掌机型号而异。 - 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-themeDeck 变体的 rebase 命令
从现有上游 Fedora Atomic 迁移到 Deck 镜像:
rpm-ostree rebase ostree-unverified-registry:ghcr.io/ublue-os/bazzite-deck:stableGNOME 变体: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 的 "أنشئ نسختك الخاصة" 章节):
- 先在 GitHub 上了解如何安全管理加密 Secrets;
- 使用 cosign 生成新的密钥对(
cosign generate-key-pair); - 将生成的公钥替换到你公开仓库中的
cosign.pub文件——你和你的用户需要它来验证签名; - 将私钥(
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.
相关推荐
Bazzite 深度指南:基于 Fedora Atomic 的云原生游戏与日常使用 Linux 发行版全景解析
Bazzite 深度指南:基于 Fedora Atomic 的云原生游戏与日常使用 Linux 发行版全景解析 Bazzite 是一款面向桌面 PC、Steam
操作系统Bazzite 深度指南:基于 Fedora Atomic 的云原生游戏系统,覆盖桌面、Steam Deck 与 HTPC
Bazzite 深度指南:基于 Fedora Atomic 的云原生游戏系统,覆盖桌面、Steam Deck 与 HTPC 本篇指南以 Bazzite 官方 R
操作系统Bazzite 技术全解:基于 Fedora Atomic 的云原生游戏 Linux 发行版(桌面 / Steam Deck / HTPC 多变体实战指南)
Bazzite 技术全解:基于 Fedora Atomic 的云原生游戏 Linux 发行版(桌面 / Steam Deck / HTPC 多变体实战指南) B
操作系统
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考