# 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 ../../docs/hosts/macpro31.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"; }