档案库 · 内容与影视 · 技术决策 · 2021
Boiling Steam在GNU Guix上打造游戏PC,整个操作系统就是一个配置文件
一个Linux游戏网站用GNU Guix打造了其2021年旗舰台式机——专有软件隔离在Flatpak中,彻底重装只需几条命令。
Boiling Steam
当时的题目
After six and a half years, Boiling Steam's writer finally got a new GPU in the shortage-ridden summer of 2021 and set out to build a desktop capable of 4K gaming and VR. He contributed packages to GNU Guix and wanted his own gaming machine to run it — but Guix follows the Free System Distribution Guidelines, officially supports only free hardware and the Linux-libre kernel, and Steam plus modern GPU firmware do not fit that world without a plan.
它是怎么成立的
2021年年中,GPU仍然一卡难求,Boiling Steam的作者终于拿到一块AMD Radeon RX 6700XT,于是重建台式机以支持4K游戏和VR。硬件清单是常规发烧级配置——锐龙5 5600X、12GB显卡、联力O11 Dynamic Mini机箱、水冷,大约$1,800——但操作系统才是激进之处:GNU Guix,基于Guile Scheme的源代码发行版。
Guix是一个所有系统都可写入一个系统配置文件的发行版:软件包和系统设置可以回滚,版本可以混用,损坏的机器可以用生成它的同一个文件恢复。冲突在于Guix官方只通过Linux-libre内核支持自由硬件,而该内核无法加载现代AMD GPU所需的二进制固件;Guix社区也完全禁止非自由软件进入官方频道。
作者的解法是隔离而非妥协。Nonguix频道提供完整的Linux内核、CPU微码和AMD固件;Steam和游戏通过Flatpak安装,防止其进入系统核心;OpenRGB为风扇、散热器和内存提供统一开源控制界面,否则这些硬件需要各家专有软件。结果是一台能跑4K和VR的游戏机,其"非自由"部分都被隔离开且透明可见。
回报在故障中展现:ext4文件系统选项导致GRUB损坏后,他在Btrfs上重装系统,因为系统配置、软件包选择和dotfiles都存于文件,他只用了几个命令就恢复到可用状态。这篇文章在Hacker News上获得210分和140条评论(2021-09-23),并预告了一个向玩家介绍Guix的系列文章。
妙在哪
- 先选择操作系统,将其作为机器的主要组件,颠倒了通常攒机时把发行版当作事后补丁的顺序。
- 将整个系统声明在文件中使得重装和回滚成本极低,消除了游戏玩家对不熟悉发行版的恐惧。
- 通过频道和Flatpak隔离非自由软件,双方都得利:核心保持FSF纯净,同时Steam和GPU固件正常工作。
- 全AMD配置让硬件匹配开源驱动,因而自由软件目标和游戏性能不再互相掣肘。
做出来什么
The build article drew 210 points and 140 comments on Hacker News on 2021-09-23 and opened a promised series introducing GNU Guix for gaming machines. The machine itself delivered what it was built for: Red Dead Redemption 2 at 4K and VR at a smooth 90–120 Hz.
可以借走的
将操作系统纳入版本控制:一旦机器的完整状态都存放在文件中,重装、回滚和实验就不再可怕——即使是对需要专有软件的游戏PC来说。
后来
这篇文章成为预告的面向玩家的GNU Guix系列的开篇,作者持续贡献项目——为Guix打包OpenRGB,并描述Nonguix加Flatpak的方案是现代游戏硬件可用路径。文章本身在Linux游戏圈成为参考,多年后仍出现在讨论搭建自由软件游戏PC的论坛帖子中,网友引用其拆分方案:自由核心、Steam隔离、可复现配置。
资料来源
- I Built My New Linux Gaming Desktop in 2021 with AMD (CPU+GPU) and GNU Guix
- Hacker News discussion of the GNU Guix gaming build
发现哪里写错了?告诉我们。
轮到你了
你刚读完一个点子。把你手上的题目说出来,看看谁接过同样的题。
免费账号 · 3 次免费提问 · 不用绑卡