CI / flake (push) Skipped
CI / flake (pull_request) Successful in 4m11s
The stock GPU has been replaced with a Quadro P400 (Pascal, GP108). Add hosts/MacPro31/nvidia.nix: - Driver branch 580 (nvidiaPackages.legacy_580), not the nixpkgs default production branch (595.x). 580 is the last branch supporting Maxwell/Pascal/Volta and is an LTS branch until Aug 2028; a newer one does not drive this card. - modesetting.enable for Wayland (nvidia-drm.modeset=1), open = false (the open kernel modules need Turing or later), and sway --unsupported-gpu, which wlroots requires with the proprietary driver. - Docker with GPU access via CDI (hardware.nvidia-container-toolkit), rather than the deprecated virtualisation.docker.enableNvidia runtime wrapper. Containers run with --device=nvidia.com/gpu=all and must ship a CUDA 12.x or older runtime: CUDA 13 dropped sm_61. The driver packages are unfree, so allowlist them in unfreePackages; they are not cached and the kernel module builds on the host. Also declare features.cpu.microarchLevel = 1 for this machine: the Harpertown Xeons have SSE4.1 but no SSE4.2/POPCNT, which switches off Claude Code through the fleet-wide gate.
49 lines
2.0 KiB
Nix
49 lines
2.0 KiB
Nix
# Apple Mac Pro 3,1 (Early 2008, dual Xeon Harpertown, x86_64). Desktop host:
|
|
# shared graphical/wired options live in ../../modules/desktop.nix; only
|
|
# host-specific settings are here. Install notes (EFI booting, GPU, partitions):
|
|
# see ./README.md.
|
|
{ ... }:
|
|
|
|
{
|
|
imports = [
|
|
./hardware-configuration.nix
|
|
./nvidia.nix
|
|
];
|
|
|
|
# Dual quad-core Xeon (Harpertown/Penryn): SSE4.1 but no SSE4.2 or POPCNT,
|
|
# i.e. x86-64-v1. Declaring it here switches off the fleet flags that need a
|
|
# newer CPU -- currently features.claudeCode (see ../../modules/features.nix).
|
|
features.cpu.microarchLevel = 1;
|
|
|
|
# The Mac Pro 3,1 has 64-bit EFI (confirmed by the owner), so boot via
|
|
# systemd-boot like the MBP -- no GRUB/BIOS shim needed.
|
|
boot.loader.systemd-boot.enable = true;
|
|
# Apple's EFI does not reliably support efibootmgr NVRAM writes; leave the
|
|
# firmware vars untouched.
|
|
boot.loader.efi.canTouchEfiVariables = false;
|
|
# Apple-EFI quirk: if the Mac does not pick up the bootloader at the boot
|
|
# picker, install it to the fallback path \EFI\BOOT\BOOTX64.EFI and/or
|
|
# "bless" the ESP from macOS. Uncomment to write the removable fallback path:
|
|
# boot.loader.efi.efiInstallAsRemovable = true;
|
|
|
|
networking.hostName = "MacPro31-NixOS";
|
|
|
|
# Elderly host: a compressed RAM swap softens memory pressure (earlyoom in
|
|
# workstation.nix is the backstop).
|
|
zramSwap.enable = true;
|
|
|
|
# sshd (daemon, port 22, key-only policy) comes from ../../modules/ssh.nix;
|
|
# the firewall itself is enabled in workstation.nix with a default-deny policy.
|
|
|
|
# Dual Harpertown Xeon microcode. Redistributable firmware (GPU/NIC blobs) is
|
|
# enabled in workstation.nix.
|
|
hardware.cpu.intel.updateMicrocode = true;
|
|
|
|
# GPU: the stock card (ATI Radeon HD 2600 XT / NVIDIA GeForce 8800 GT) has
|
|
# been replaced with an NVIDIA Quadro P400. Driver, Wayland quirks and
|
|
# GPU-enabled Docker live in ./nvidia.nix.
|
|
|
|
# See `man configuration.nix` / the stateVersion docs before changing.
|
|
system.stateVersion = "26.05";
|
|
}
|