Initial commit: DarkForge Linux — Phases 0-12

Complete from-scratch Linux distribution targeting AMD Ryzen 9 9950X3D +
NVIDIA RTX 5090 on ASUS ROG CROSSHAIR X870E HERO.

Deliverables:
- dpack: custom package manager in Rust (3,800 lines)
  - TOML package parser, dependency resolver, build sandbox
  - CRUX Pkgfile and Gentoo ebuild converters
  - Shared library conflict detection
- 124 package definitions across 4 repos (core/extra/desktop/gaming)
- 34 toolchain bootstrap scripts (LFS 13.0 adapted for Zen 5)
- Linux 6.19.8 kernel config (hardware-specific, fully commented)
- SysVinit init system with rc.d service scripts
- Live ISO builder (UEFI-only, squashfs+xorriso)
- Interactive installer (GPT partitioning, EFISTUB boot)
- Integration test checklist (docs/TESTING.md)

No systemd. No bootloader. No display manager.
Kernel boots via EFISTUB → auto-login → dwl Wayland compositor.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-03-19 11:30:40 +01:00
commit 029642ae5b
206 changed files with 14696 additions and 0 deletions

64
kernel/README.md Normal file
View File

@@ -0,0 +1,64 @@
# DarkForge Kernel Configuration
Hardware-specific Linux 6.19.8 kernel configuration for the target machine.
## Target Hardware
- **CPU:** AMD Ryzen 9 9950X3D (Zen 5, 16C/32T)
- **GPU:** NVIDIA RTX 5090 (Blackwell) — out-of-tree nvidia-open modules
- **NIC:** Realtek RTL8125BN 2.5GbE (R8169 driver)
- **NVMe:** Samsung 9100 PRO (PCIe 5.0)
- **Motherboard:** ASUS ROG CROSSHAIR X870E HERO
## Key Choices
| Feature | Config | Why |
|---------|--------|-----|
| CPU optimization | `CONFIG_MZEN4=y` | Closest kernel config symbol; real znver5 from CFLAGS |
| Scheduler | EEVDF (default) | Modern, built-in since 6.6 |
| Preemption | `CONFIG_PREEMPT=y` | Full preemption for gaming latency |
| Timer | `CONFIG_HZ_1000=y` | Lowest latency tick rate |
| CPU governor | `CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL=y` | P-State EPP integration |
| NVMe | `CONFIG_BLK_DEV_NVME=y` | Built-in (root is on NVMe) |
| GPU | nouveau disabled | nvidia-open kernel modules used instead |
| Boot | `CONFIG_EFI_STUB=y` | Direct UEFI boot, no bootloader |
| Network | `CONFIG_R8169=y` | Realtek 2.5GbE |
| Hibernation | `CONFIG_HIBERNATION=y` | 96GB swap partition |
| Bluetooth | `CONFIG_BLUETOOTH=n` | Disabled |
| WiFi | `CONFIG_WIRELESS=n` | Ethernet only |
Every non-default option in `config` has an inline comment explaining the rationale.
## Usage
```bash
cp config /usr/src/linux-6.19.8/.config
cd /usr/src/linux-6.19.8
make olddefconfig # fill new options with defaults
make -j32 # build with 32 threads
make modules_install
cp arch/x86/boot/bzImage /boot/vmlinuz
```
## NVIDIA Driver
The RTX 5090 requires nvidia-open kernel modules (570.86.16+). These are built out-of-tree after the kernel:
```bash
cd /usr/src/nvidia-open-570.133.07
make -j32 modules KERNEL_UNAME=$(uname -r)
make modules_install
```
The modules are loaded at boot via `/etc/rc.conf`:
```bash
MODULES=(nvidia nvidia-modeset nvidia-drm nvidia-uvm)
MODULE_PARAMS=("nvidia-drm modeset=1")
```
## Repository
```
git@git.dannyhaslund.dk:danny8632/darkforge.git
```