NVIDIA的DGX Spark出厂只装官方Ubuntu系统DGX OS,想用Nix管理CUDA依赖的开发者,以前只能自己手搓配置。GitHub用户graham33放出的开源项目NixOS-DGX-Spark把这件事标准化了:可以只在DGX OS上装Nix跑一批官方开发环境,也可以整机换成NixOS,用声明式配置管理这台迷你AI工作站,同时支持华硕同款硬件Ascent GX10

这不是NVIDIA官方动作,是个人维护的MIT许可开源项目。真正决定要不要换的,不是能不能装,而是装完之后固件、内核、容器这几道坎能不能过。

固件不松手:装NixOS前得先在DGX OS里“开门”

项目文档写得很直白:出厂固件只有DGX OS能启动。想装NixOS,得先在DGX OS里用fwupd拉取NVIDIA发布到LVFS的固件更新,再去BIOS关掉Secure Boot,才能从USB引导安装。跳过这一步,USB镜像直接装不上。

USB镜像默认带NVIDIA专用内核,GPU和以太网都正常;换成标准NixOS 6.17内核,以太网会出问题。这两点合在一起说明一件事:现在的NixOS方案,硬件层面仍依赖NVIDIA提供的定制内核和固件通道,不是一套完全独立的通用发行版。

对工程师来说,这意味着换系统前最好留一份DGX OS完整可用。固件更新或BIOS设置一旦出错,恢复路径还得靠原厂系统本身,项目本身没提供额外的救援手段。

NixOS 安装前置流程 出厂 DGX OS 唯一能启动 fwupd 更新固件 在 DGX OS 内运行 关闭 Secure Boot BIOS 里手动设置 USB 装 NixOS 选内核、走分区

DGX OS 与 NixOS:两笔不同的账

跟官方DGX OS比,NixOS的强项和短板都很清楚。一张表能看完:

维度DGX OSNixOS
开机方式出厂固件直接启动需先更新固件、关闭Secure Boot
硬件兼容默认全兼容依赖NVIDIA专用内核,标准内核以太网有问题
支持渠道NVIDIA官方支持社区维护,个人MIT项目
环境管理手动配置声明式配置,flake级可复现

NixOS管的是配置,DGX OS管的是能不能开机。项目还提供nixos-anywhere远程装机功能,但文档里明确标注这个方式“尚未测试,风险自担”,暂时不建议用在生产机器上。

DGX OS 与 NixOS:两种确定性 DGX OS 出厂固件直接启动 默认硬件全兼容 官方支持通道 NixOS 声明式配置可复现 依赖专用内核保网络 需手动更新固件

15个官方工作流,只有6个真正“纯Nix”

项目列了15个来自build.nvidia.com/spark的官方playbook,覆盖ComfyUI、PyTorch微调、vLLM推理,在NixOS和DGX OS上都做过测试。但“测试通过”不等于“纯Nix可复现”。

类型数量说明
全Nix6所有依赖由Nix构建,运行时不再联网拉镜像
容器方案8环境由Nix搭好,模型/运行时镜像仍在运行时从网络拉取
混合型1CLI工具本身用Nix打包,内部仍调用容器

8个容器方案的可复现程度,仍绑定外部镜像仓库能不能访问。真正做到完全离线、完全可复现构建的,目前只有那6个。

15 个官方 playbook,兼容方式不同 全 Nix 6 容器方案 8 混合型 1

正在评估DGX Spark本地开发环境的工程师,可以先在DGX OS上装Nix,跑一遍这15个devshell,确认哪几个是全Nix、哪几个还依赖外部镜像。确认没问题,再决定要不要整机换NixOS。

小团队的生产负载,暂时留在DGX OS更稳妥。项目对多机部署、长期固件维护还没有足够验证,等社区和上游内核支持再往前走一步不迟。