Nix and NixOS Come to NVIDIA's DGX Spark AI Workstations
A community project from developer graham33 brings the Nix ecosystem to NVIDIA’s DGX Spark (and the compatible Asus Ascent GX10). It supports two paths: running Nix package manager, dev shells, and NVIDIA’s Spark playbooks on top of the stock Ubuntu-based DGX OS, or replacing the OS entirely by flashing a NixOS USB image for a fully declarative, reproducible setup. A hardware.dgx-spark NixOS module handles the platform specifics and exposes a kernel toggle: a custom NVIDIA-tuned kernel with full GPU support and working Ethernet, or the standard NixOS 6.17 kernel where Ethernet is broken.
Much of the engineering effort goes into making CUDA on this ARM (aarch64) hardware practical. The kernel configuration is auto-generated by diffing NVIDIA’s Debian annotations against NixOS defaults, cutting verbosity by roughly 82%. Binary caches do the heavy lifting elsewhere — Flox distributes prebuilt CUDA packages (cudatoolkit, cuDNN, NCCL, PyTorch) for aarch64 with NVIDIA’s blessing, and the project’s own Cachix cache serves extras like its DGX Dashboard GPU-telemetry UI. On non-NixOS hosts, a nixglhost wrapper lets Nix-built CUDA binaries locate the host GPU drivers.
The main caveat is firmware: only DGX OS can boot the factory firmware, so users must run a firmware update (via fwupd and NVIDIA’s LVFS entries) from DGX OS before NixOS will boot. Remote, headless installs are possible through nixos-anywhere, though that path is explicitly untested. The work is MIT-licensed and effectively offers a reproducible, version-controlled alternative to NVIDIA’s default vendor image for these AI development boxes.
Read the full article
Continue reading at Hacker News →This is an AI-generated summary. Read the original for the full story.