|
|
||
|---|---|---|
| driver.sh | Dateien nach „/" hochladen | |
| README.md | README.md aktualisiert | |
🖥️ NixOS Hardware Auto-Setup — TUI v3.0
Ein interaktiver Terminal-basierter Hardware-Treiber-Manager für NixOS mit GPU-, Drucker- und Scanner-Unterstützung — automatisch, farbig und sicher.
╔══════════════════════════════════════════════════════════════╗
║ 🖥️ NixOS Hardware Auto-Setup v3.0 ║
║ GPU · Drucker · Scanner · NixOS 25.xx / 26.xx Ready ║
╚══════════════════════════════════════════════════════════════╝
✨ Features
- 🎮 GPU-Treiber — NVIDIA (Open/Proprietär + Version), AMD (AMDVLK + ROCm), Intel (VAAPI)
- 🖨️ Drucker-Setup — HP, Epson, Canon, Brother mit CUPS & Avahi (AirPrint/mDNS)
- 📠 Scanner-Setup — Treiber (AirScan, HPLIP, EpsonScan2, BrScan4) + Software (Simple-Scan, XSane, gscan2pdf ...)
- 🎨 Farbiges TUI — ASCII-Banner, Box-Drawing-Zeichen, Fortschrittsbalken, Status-Icons
- ⚡ Automatische Systemintegration — verschiebt
.nix-Dateien nach/etc/nixos, trägt sie inimportsein, führtnixos-rebuild switchaus - 🔒 Idempotent — bereits eingetragene Module werden erkannt und übersprungen
- 💾 Automatische Backups —
configuration.nixund Modul-Dateien werden vor jeder Änderung gesichert - 🌿 Flakes-kompatibel — Git-Repository in
/etc/nixoswird automatisch erkannt und getrackt - 📋 NixOS 25.xx / 26.xx Ready — Aktuelle NVIDIA Open-Source-Kernel-Module, ROCm, VAAPI
- 🛡️ Sichere Fehlerbehandlung — Rollback-Hinweise bei fehlgeschlagenem Rebuild
🎯 Unterstützte Hardware
| Kategorie | Hersteller / Typ | Treiber / Pakete |
|---|---|---|
| 🎮 GPU | 🟢 NVIDIA (RTX 20+/GTX 16+) | nvidia (Open-Source Kernel-Modul, stable/beta/vulkan_beta) |
| 🎮 GPU | 🟢 NVIDIA (GTX 10 / älter) | nvidia (Proprietäres Kernel-Modul, legacy_580/legacy_535) |
| 🎮 GPU | 🔴 AMD | amdgpu + amdvlk + rocmPackages.clr.icd |
| 🎮 GPU | 🔵 Intel | intel-media-driver + intel-vaapi-driver + libvdpau-va-gl |
| 🖨️ Drucker | 🟦 HP | hplipWithPlugin (AirPrint, Fax, Scanner-All-in-One) |
| 🖨️ Drucker | 🟩 Epson | epson-escpr + epson-escpr2 |
| 🖨️ Drucker | 🟥 Canon | gutenprint + canon-cups-ufr2 |
| 🖨️ Drucker | 🟨 Brother | brlaser + brgenml1lpr + brgenml1cupswrapper |
| 📠 Scanner | 📡 AirScan / eSCL | sane-airscan (WLAN / Apple / MFP) |
| 📠 Scanner | 🟦 HP | hplipWithPlugin |
| 📠 Scanner | 🟩 Epson | epsonscan2 |
| 📠 Scanner | 🟨 Brother | brscan4 |
| 📦 Scan-Software | — | simple-scan, pdfarranger, xsane, skanlite, gscan2pdf |
🚀 Schnellstart
Voraussetzungen
- NixOS 25.05+ oder 26.05+ mit
configuration.nix - Bash 4+
sudo-Rechte (für systemweite Konfiguration)fzf— wird automatisch nachinstalliert, falls nicht vorhanden
Installation
# Datei herunterladen
chmod +x driver.sh
# Direkt ausführen (erfordert sudo)
sudo ./driver.sh
Optional: Desktop-Integration
# Symbolischer Link für einfachen Zugriff
sudo ln -s $(pwd)/driver_modern_v3.0.sh /usr/local/bin/nixos-hardware-setup
# Oder in ~/.local/bin (ohne sudo)
mkdir -p ~/.local/bin
ln -s $(pwd)/driver_modern_v3.0.sh ~/.local/bin/nixos-hardware-setup
🎮 Bedienung
ENTER Kategorie / Option auswählen
TAB Mehrere Scanner-Programme markieren (Mehrfachauswahl)
ESC Zurück / Beenden
↑ ↓ Navigation
Eingabe Fuzzy-Suche in Echtzeit
Ablauf
- Hauptmenü — Wähle GPU, Drucker oder Scanner
- Untermenü — Wähle Hersteller / Typ
- NVIDIA-Optionen (falls gewählt) — Open vs. Proprietär + Treiber-Version
- Scanner-Software (falls gewählt) — Mehrfachauswahl via TAB
- Systemintegration — Automatisch: Datei →
/etc/nixos→imports→nixos-rebuild switch - Ergebnis — Erfolgsmeldung mit spezifischen Hinweisen (z. B. Neustart, Gruppen)
⚙️ Wie es funktioniert
Das Setup generiert dedizierte .nix-Modul-Dateien und bindet sie automatisch in deine NixOS-Konfiguration ein:
/etc/nixos/configuration.nix
└── imports
├── ./hardware-configuration.nix
├── ./hardware-gpu.nix ← vom Setup generiert
├── ./hardware-printer.nix ← vom Setup generiert
├── ./hardware-scanner.nix ← vom Setup generiert
└── ./software-scanner.nix ← vom Setup generiert
Generierte Dateien
| Datei | Inhalt |
|---|---|
hardware-gpu.nix |
hardware.graphics, services.xserver.videoDrivers, GPU-spezifische Treiber |
hardware-printer.nix |
services.printing, CUPS-Treiber, Avahi/mDNS |
hardware-scanner.nix |
hardware.sane, Scanner-Backends, Avahi für eSCL |
software-scanner.nix |
environment.systemPackages mit Scan-Software |
🖥️ GPU-Setup im Detail
NVIDIA (NixOS 25.xx / 26.xx)
Seit Treiber 560 ist das Open-Source Kernel-Modul der Standard für moderne GPUs. Das Setup bietet:
| Kernel-Modul | Empfohlene GPUs | open-Wert |
|---|---|---|
| 🌟 Open Source | RTX 20+, GTX 16+, Turing, Ampere, Ada, Blackwell | true |
| 🔒 Proprietär | GTX 10, Maxwell, Pascal, ältere Karten | false |
| Treiber-Version | Alias | Nutzung |
|---|---|---|
stable |
latest, production |
🌟 Empfohlen — aktuellster offizieller Treiber |
beta |
— | ⚡ Experimentell — neue Features, möglicherweise instabil |
vulkan_beta |
— | 🎮 Vulkan-Entwickler-Build |
legacy_580 |
— | 📦 Pascal GPUs (GTX 10 Serie) |
legacy_535 |
— | 📦 Sehr alte GPUs (pre-Pascal) |
Hinweis: In NixOS 25.05/26.05 sind
stable,latestundproductionidentisch und zeigen auf denselben "New Feature Branch".
AMD
# Generierte hardware-gpu.nix für AMD
{
hardware.graphics = {
enable = true;
enable32Bit = true;
extraPackages = with pkgs; [ amdvlk rocmPackages.clr.icd ];
extraPackages32 = with pkgs; [ driversi686Linux.amdvlk ];
};
services.xserver.videoDrivers = [ "amdgpu" ];
}
Intel
# Generierte hardware-gpu.nix für Intel
{
hardware.graphics = {
enable = true;
enable32Bit = true;
extraPackages = with pkgs; [
intel-media-driver # Broadwell+ (Gen8+)
intel-vaapi-driver # VAAPI-Unterstützung
libvdpau-va-gl # VDPAU-Wrapper
];
extraPackages32 = with pkgs.pkgsi686Linux; [
intel-media-driver
intel-vaapi-driver
libvdpau-va-gl
];
};
}
🖨️ Drucker-Setup im Detail
Für jeden Hersteller werden die passenden CUPS-Treiber installiert und Avahi (mDNS) für Netzwerkdrucker aktiviert:
| Hersteller | Treiber-Pakete | Besonderheiten |
|---|---|---|
| HP | hplipWithPlugin |
AirPrint, Fax, Scanner-All-in-One |
| Epson | epson-escpr + epson-escpr2 |
ESC/P-R Treiber |
| Canon | gutenprint + gutenprintBin + canon-cups-ufr2 |
UFR-II-Unterstützung |
| Brother | brlaser + brgenml1lpr + brgenml1cupswrapper |
LPR + CUPS-Wrapper |
Alle Setups aktivieren automatisch:
services.printing.enable = trueprograms.system-config-printer.enable = trueservices.avahi(mDNS / Bonjour für Netzwerkdrucker)
📠 Scanner-Setup im Detail
Scanner-Treiber
| Treiber | Paket | Anwendungsfall |
|---|---|---|
| AirScan / eSCL | sane-airscan |
🌟 Empfohlen für WLAN-Scanner, Apple, MFP |
| HP | hplipWithPlugin |
HP All-in-One Geräte |
| Epson | epsonscan2 |
Epson Netzwerk- und USB-Scanner |
| Brother | brscan4 |
Brother Scanner (ADS / DCP / MFC Serien) |
Scanner-Software (Mehrfachauswahl)
| Software | Beschreibung |
|---|---|
simple-scan |
Einfache, benutzerfreundliche GNOME-Oberfläche |
pdfarranger |
PDF-Seiten neu anordnen, zusammenfügen, aufteilen |
xsane |
Erweiterte Scan-Oberfläche mit Profi-Features |
skanlite |
Leichtgewichtige KDE-Scan-Anwendung |
gscan2pdf |
Direktes Scannen zu PDF mit OCR-Unterstützung |
Wichtig: Für USB-Scanner muss dein Benutzer in den Gruppen
scannerundlpsein:sudo usermod -aG scanner,lp $USER # Danach Ab- und Neuanmeldung!
🛡️ Sicherheit & Backups
Vor jeder Änderung werden automatisch Backups erstellt:
/etc/nixos/configuration.nix.bak-20240101-120000
/etc/nixos/hardware-gpu.nix.bak-20240101-120000
Bei fehlgeschlagenem Rebuild
Das Setup zeigt automatisch:
- Die Fehlermeldung des Rebuilds
- Die Pfade zu allen Backups
- Den Wiederherstellungs-Befehl
# Manuelle Wiederherstellung
sudo cp /etc/nixos/configuration.nix.bak-<TIMESTAMP> /etc/nixos/configuration.nix
# Rebuild mit Trace für detaillierte Fehleranalyse
sudo nixos-rebuild switch --show-trace
🗑️ Deinstallation / Rückbau
Einzelne Module entfernen
# 1. Modul aus imports in configuration.nix entfernen
sudo nano /etc/nixos/configuration.nix
# Entferne die Zeile: ./hardware-gpu.nix
# 2. Modul-Datei löschen (optional)
sudo rm /etc/nixos/hardware-gpu.nix
# 3. Rebuild
sudo nixos-rebuild switch
Alle Hardware-Module entfernen
# Alle vom Setup generierten Dateien entfernen
sudo rm -f /etc/nixos/hardware-gpu.nix /etc/nixos/hardware-printer.nix /etc/nixos/hardware-scanner.nix /etc/nixos/software-scanner.nix
# Aus imports entfernen und rebuild
sudo nano /etc/nixos/configuration.nix
sudo nixos-rebuild switch
🐛 Bekannte Hinweise
- NVIDIA Neustart: Nach dem ersten NVIDIA-Treiber-Setup ist oft ein Systemneustart erforderlich. Prüfe danach mit
nvidia-smi. - NVIDIA Open-Source: Für Turing+ (RTX 20+/GTX 16+) empfohlen. Ältere GPUs (GTX 10) sollten das proprietäre Modul verwenden.
- AMD ROCm:
rocmPackages.clr.icdist seit NixOS 23.11 verfügbar. Bei älteren Versionen ggf.rocm-opencl-icdverwenden. - Intel VAAPI:
intel-media-driverist für Broadwell+ (Gen8+). Ältere CPUs (Haswell und älter) brauchen nurintel-vaapi-driver. - Scanner USB: Nach der Installation einmal ab- und neu anmelden, damit die Gruppen-Rechte (
scanner,lp) wirksam werden. - Flakes: Wird ein Git-Repository in
/etc/nixoserkannt, werden neue Dateien automatisch viagit addgetrackt. - Legacy-NVIDIA: Pascal-GPUs (GTX 10 Serie) werden möglicherweise nicht mehr vom
stable-Treiber unterstützt — dannlegacy_580wählen.
📄 Lizenz
MIT — frei verwendbar, anpassbar und weitergabefähig.