nixos-config/hosts/electra
2026-01-25 10:49:45 +00:00
..
default.nix feat: Add detailed hardware configuration for Lena and comprehensive installation and host-specific documentation. 2026-01-25 10:49:45 +00:00
README.md feat: Add detailed hardware configuration for Lena and comprehensive installation and host-specific documentation. 2026-01-25 10:49:45 +00:00

Electra Setup Specifics

Machine: Framework 16 (Ryzen 7940HS + RTX 7700S / RTX 5070)

1. BIOS Configuration (Crucial)

Before booting NixOS, you must configure the BIOS to handle the memory split for LLMs and performance:

  1. Reboot and enter BIOS (F2 or Del).
  2. Find Graphics Memory, UMA Frame Buffer, or iGPU Memory.
  3. Set this to 16G (or "Game Optimized").

2. Disk Partitioning (Btrfs)

Electra uses a 2TB NVMe with a dedicated boot partition and a flat Btrfs subvolume layout.

Step 1: Subvolume Creation (If Reinstalling)

# Mount the main partition (nvme0n1p2)
mount /dev/nvme0n1p2 /mnt

# Standard subvolumes
btrfs subvolume create /mnt/@
btrfs subvolume create /mnt/@home
btrfs subvolume create /mnt/@nix
btrfs subvolume create /mnt/@log
btrfs subvolume create /mnt/@cache
btrfs subvolume create /mnt/@tmp
btrfs subvolume create /mnt/@srv

umount /mnt

Step 2: Mount with Optimizations

# Mount Root
mount -o subvol=@,compress=zstd,noatime /dev/nvme0n1p2 /mnt

# Create mount points
mkdir -p /mnt/{home,nix,var/log,var/cache,var/tmp,srv,boot}

# Mount subvolumes
mount -o subvol=@home,compress=zstd,noatime /dev/nvme0n1p2 /mnt/home
mount -o subvol=@nix,compress=zstd,noatime /dev/nvme0n1p2 /mnt/nix
mount -o subvol=@log,compress=zstd,noatime /dev/nvme0n1p2 /mnt/var/log
mount -o subvol=@cache,compress=zstd,noatime /dev/nvme0n1p2 /mnt/var/cache
mount -o subvol=@tmp,compress=zstd,noatime /dev/nvme0n1p2 /mnt/var/tmp
mount -o subvol=@srv,compress=zstd,noatime /dev/nvme0n1p2 /mnt/srv

# Mount Boot (8GB partition)
mount /dev/nvme0n1p1 /mnt/boot

3. Boot Specialisations

Electra has specialized boot modes selectable at startup (systemd-boot menu):

With dGPU (Graphics Module Installed)

  1. NixOS Default: NVIDIA + Balanced Power (Standard mode).
  2. Gaming-Zen: NVIDIA + Zen Kernel + Max Performance (Lower latency/Stutter reduction).
  3. dGPU-Battery: NVIDIA + TLP (Max energy saving while using dGPU).

Without dGPU (Expansion Shell Installed)

  1. No-dGPU: iGPU Only + Balanced Power.
  2. No-dGPU-Battery: iGPU Only + TLP Power Saving.

Note: The dgpu-guard service is active on modes 1-3 to prevent black screens if the hardware is missing.

4. Long-Term dGPU Removal (Expansion Shell Mode)

If you plan to leave the dGPU module out for an extended period, you have two options to make the boot process seamless:

You don't need to change any code.

  1. Reboot Electra.
  2. At the systemd-boot menu, use the arrow keys to highlight the No-dGPU (or No-dGPU-Battery) entry.
  3. Press 'd' (for Default).
  4. The bootloader will now automatically highlight and boot this entry every time until you change it back.

Option B: The Physical Swap Workflow

  1. Shutdown and unplug the charger.
  2. Move the lock switches on the back of the Framework 16 and pull the dGPU module out.
  3. Slide the Expansion Shell (the empty fan-only module) in and lock it.
  4. Boot: The system will attempt to boot the Default (Nvidia) mode, hit the dgpu-guard, and stop at the console.
  5. Reboot and perform Option A to set your new long-term default.

5. Hardware Identifiers & PCI Shift

Important: On the Framework 16, PCI Bus IDs shift depending on whether the dGPU is physically installed.

Component dGPU Installed (ID) dGPU Removed (ID)
NVIDIA dGPU PCI:193:0:0 (c1) N/A
AMD iGPU PCI:194:0:0 (c2) PCI:193:0:0 (c1)

Impact on Boot Modes:

  • Default / Gaming-Zen / Eco-Battery: These modes require the dGPU to be physically installed. Booting them without the dGPU may cause the Nvidia driver to conflict with the iGPU.
  • No-dGPU: Use this mode whenever the Expansion Bay is removed. It ignores Bus IDs and works regardless of the shift.

5. Fingerprint Reader

  • Login: Password required (KWallet compatibility).
  • Sudo / Lock Screen: Fingerprint enabled.
  • Enrollment: fprintd-enroll nimmo