147 lines
3.9 KiB
Markdown
147 lines
3.9 KiB
Markdown
# Nimmo's NixOS Configurations (Electra & Lena)
|
|
|
|
This repository manages the NixOS configurations for multiple machines using **Flakes**.
|
|
|
|
* **Electra:** Framework 16 (Strix Point + RTX 5070) - High Performance / Gaming.
|
|
* **Lena:** Secondary Laptop - Standard / Light Use.
|
|
|
|
## 1. Directory Structure
|
|
|
|
* `common/`: Shared configuration (Users, GUI Apps, CLI Tools, Fonts, Plasma Settings).
|
|
* `hosts/electra/`: Electra-specific hardware config, kernel parameters, and strict boot modes.
|
|
* `hosts/lena/`: Lena-specific hardware config.
|
|
* `flake.nix`: Entry point defining both hosts.
|
|
|
|
---
|
|
|
|
## 2. Initial Setup (Electra Only - BIOS)
|
|
|
|
**Crucial:** Before booting NixOS on Electra, you must configure the BIOS to handle the memory split for LLMs.
|
|
|
|
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").
|
|
|
|
---
|
|
|
|
## 3. Installation Guide
|
|
|
|
Once you have booted the **NixOS Unstable ISO**:
|
|
|
|
### Step 1: Disk Partitioning & Mounting
|
|
|
|
Follow standard NixOS procedure (or see previous version of this README for BTRFS subvolume layout). Mount your root to `/mnt`.
|
|
|
|
### Step 2: Clone Configuration
|
|
|
|
We will clone the repo into the user's Scripts folder (persistent location), but for installation we can clone it temporarily or directly to the target.
|
|
|
|
**Recommended approach for Install:**
|
|
|
|
1. **Clone to /mnt/etc/nixos (Temporary):**
|
|
|
|
```bash
|
|
# Replace USERNAME with your git user
|
|
nix-shell -p git --run "git clone https://git.nimmog.uk/nimmo/nixos-config.git /mnt/etc/nixos"
|
|
```
|
|
|
|
2. **Generate Hardware Config:**
|
|
|
|
```bash
|
|
nixos-generate-config --root /mnt
|
|
```
|
|
|
|
3. **Move Hardware Config to Correct Host Folder:**
|
|
|
|
**For Electra:**
|
|
```bash
|
|
mv /mnt/etc/nixos/hardware-configuration.nix /mnt/etc/nixos/hosts/electra/hardware-configuration.nix
|
|
```
|
|
|
|
**For Lena:**
|
|
```bash
|
|
mv /mnt/etc/nixos/hardware-configuration.nix /mnt/etc/nixos/hosts/lena/hardware-configuration.nix
|
|
```
|
|
|
|
### Step 3: Install & Set Password
|
|
|
|
1. **Run the Installer:**
|
|
|
|
**For Electra:**
|
|
```bash
|
|
nixos-install --flake /mnt/etc/nixos#electra
|
|
```
|
|
|
|
**For Lena:**
|
|
```bash
|
|
nixos-install --flake /mnt/etc/nixos#lena
|
|
```
|
|
|
|
2. **Set User Password:**
|
|
Do not reboot yet!
|
|
|
|
```bash
|
|
nixos-enter
|
|
passwd nimmo
|
|
exit
|
|
```
|
|
|
|
3. **Reboot:** `reboot`
|
|
|
|
---
|
|
|
|
## 4. Post-Installation & Management
|
|
|
|
After rebooting, move your config to your home folder for easier management.
|
|
|
|
1. **Move Config:**
|
|
```bash
|
|
mkdir -p ~/Scripts
|
|
sudo mv /etc/nixos ~/Scripts/nixos-config
|
|
sudo chown -R nimmo:users ~/Scripts/nixos-config
|
|
```
|
|
|
|
2. **Apply Changes:**
|
|
From now on, edit files in `~/Scripts/nixos-config`.
|
|
|
|
* **Edit:** `nano ~/Scripts/nixos-config/common/user-apps.nix` (or other files)
|
|
* **Rebuild (Electra):**
|
|
```bash
|
|
sudo nixos-rebuild switch --flake ~/Scripts/nixos-config/#electra
|
|
```
|
|
* **Rebuild (Lena):**
|
|
```bash
|
|
sudo nixos-rebuild switch --flake ~/Scripts/nixos-config/#lena
|
|
```
|
|
|
|
3. **Adding Apps:**
|
|
* **CLI Tools:** Edit `common/system-utils.nix`
|
|
* **GUI Apps:** Edit `common/user-apps.nix`
|
|
|
|
---
|
|
|
|
## 5. Electra Specifics
|
|
|
|
### Boot Modes
|
|
Electra has specialized boot modes selectable at startup:
|
|
|
|
1. **NixOS Default:** NVIDIA + Balanced Power (Use when GPU module is inserted).
|
|
2. **Gaming-Zen:** NVIDIA + Zen Kernel + Max Performance.
|
|
3. **Eco-Battery:** NVIDIA + TLP (Max Saver).
|
|
4. **No-dGPU:** **iGPU Only**. Use this when the GPU module is physically replaced with the Expansion Shell.
|
|
|
|
### Bus IDs
|
|
* **NVIDIA:** 193 (`c1:00.0`)
|
|
* **AMD:** 194 (`c2:00.0`)
|
|
|
|
---
|
|
|
|
## 6. Docker
|
|
Docker is installed in Rootless mode.
|
|
```bash
|
|
docker run hello-world
|
|
```
|
|
|
|
## 7. Fingerprint Reader
|
|
* **Login:** Password only (required for KWallet).
|
|
* **Sudo/Unlock:** Fingerprint enabled.
|