By: Ammar <ammar.nanjiani@gmail.com>
feat(steammachine): add Jovian NixOS host for Valve fremont hardware
Replace stock SteamOS on the Steam Machine's internal NVMe with Jovian
NixOS. Jovian's Steam Machine support is unmerged upstream (PR #584), so
this pins the author's fork branch as a separate input. Only this host
imports it; steamdeck stays on chaotic's vendored Jovian.
Notable choices:
- GRUB with efiInstallAsRemovable. efibootmgr on the machine shows no
explicit OS boot entry, only an {auto_created_boot_option} for the
NVMe, so the firmware resolves \EFI\BOOT\BOOTX64.EFI. An NVRAM-only
install would leave the box unable to boot.
- The Jovian overlay is applied by the host config. Jovian's
modules/default.nix does not apply it, and the Steam Machine modules
reference pkgs.linuxPackages_jovian, pkgs.fremont-hw-support and
pkgs.mesa-{radeonsi,radv}-jupiter.
- BIOS updates stay manual. enableFwupdBiosUpdates is on, but autoUpdate
keeps its default of false: a BIOS flash cannot be rolled back by a
NixOS generation.
- Theoden's game archive is mounted read-only with a host-local
systemd.mounts block rather than modules/nixos/nfs-client.nix, which
hardcodes its mount flags and exposes no read-only option.
- home-manager is managed by the NixOS module, so one nixos-anywhere run
covers both system and user config.
hardware-configuration.nix is still a placeholder. nixos-anywhere fills
it in via --generate-hardware-config during install.
| Time to Start | Worker time | Duration | Time to finish | Idle | |
|---|---|---|---|---|---|
| Config | 1m03s | 1s | 1s | 1m05s | 1m03s |
| Eval | 4m27s | 25m04s | 25m04s | 29m32s | 3m22s |
| Build | 29m32s | 31m09s | - | - | 1s |
| Suite | 1m03s | 56m15s | - | - | 4m27s |