{
"meta": {
"title": "GPU zu LXC hinzufügen | ProxMenux-Dokumentation",
"description": "Intel-, AMD- oder NVIDIA-GPU mit LXC teilen. ProxMenux richtet Geräte, Gruppen und Bibliotheken passend zur Distribution ein; die App muss Beschleunigung unterstützen und entsprechend eingerichtet sein."
},
"header": {
"title": "GPU zu LXC hinzufügen",
"description": "GPU-Zugriff über Host-Geräteknoten mit LXC teilen. Der Treiber bleibt auf dem Host; Anwendungen brauchen kompatible Bibliotheken und eigene Einstellungen.",
"section": "Hardware: GPUs und Coral-TPU"
},
"intro": {
"title": "Funktionsweise",
"body": "Fügt dev<N>-Einträge zu /etc/pve/lxc/<ctid>.conf für passende /dev/dri/*-, /dev/kfd- oder /dev/nvidia*-Knoten hinzu. Startet den Container, installiert Userspace-Pakete für dessen Distribution und gleicht bei Intel/AMD die Gruppen video und render ab. Die Anwendungsbeschleunigung erfordert weiterhin kompatible Hardware, Bibliotheken und App-Einstellungen."
},
"compare": {
"heading": "LXC-Freigabe und VM-Passthrough im Vergleich",
"intro": "LXC teilt den Kernel und kann die GPU zwischen Host und Containern teilen. Bei vollständigem VM-Passthrough gehört das Gerät exklusiv zur VM und steht dem Host-Treiber nicht zur Verfügung.",
"headerFeature": "Merkmal",
"headerLxc": "LXC (diese Seite)",
"headerVm": "VM",
"rows": [
{
"feature": "Kann der Host die GPU weiter nutzen?",
"lxc": "Ja",
"vm": "Nein — ausschließlich für VM"
},
{
"feature": "Mehrere Container teilen sich einen GPU?",
"lxc": "Ja",
"vm": "Nein"
},
{
"feature": "Benötigt IOMMU / VFIO auf dem Host?",
"lxc": "Nein",
"vm": "Ja"
},
{
"feature": "Reboot erforderlich?",
"lxc": "Normalerweise nein (neustarten Sie einfach den CT)",
"vm": "Bei Änderungen am Host-Treiber oder IOMMU; nicht bei jeder Zuweisung"
},
{
"feature": "Gastbetriebssysteme",
"lxc": "Nur Linux (LXC ist nur Linux)",
"vm": "Unterstütztes Gastsystem mit kompatiblem GPU-Treiber"
}
]
},
"prereqs": {
"title": "Vorbereitung",
"gpu": "GPU auf dem Host von Intel, AMD oder NVIDIA, erkannt mit lspci.",
"gpuCheck": "lspci | grep -iE 'VGA|3D|Display'",
"vfio": "Die GPU darf nicht an vfio-pci gebunden sein. Sie benötigt den nativen Host-Treiber. Bei VM-Zuweisung bietet das Skript GPU-Modus wechseln an.",
"nvidia": "Für NVIDIA: zuerst den Host-Treiber installieren. Die Containerbibliotheken müssen zur Version passen. Siehe NVIDIA-Treiber auf dem Host installieren.",
"nvidiaCheck": "nvidia-smi",
"container": "Vorhandener LXC-Container. Das Skript erstellt keinen. Beide Modi werden unterstützt; privilegiert ist nicht grundsätzlich nötig. Geräteeinträge und numerische App-Gruppenrechte müssen passen."
},
"unpriv": {
"title": "Unterstützt privilegierte und unprivilegierte Container",
"body": "Das Skript schreibt dev<N>-Einträge in die LXC-Konfiguration und richtet auf unprivilegierten Containern die video- und render-GIDs zwischen Host und Container so aus, dass die GPU-Geräteknoten von innen erreichbar sind, ohne dass Sie lxc.idmap von Hand bearbeiten müssen."
},
"running": {
"heading": "Installationsprogramm ausführen",
"body": "Öffnen Sie ProxMenux und wählen Sie Hardware: GPUs und Coral-TPU → GPU zu LXC hinzufügen.",
"imageAlt": "Menüeintrag zum Hinzufügen einer GPU zu LXC"
},
"howRuns": {
"heading": "Ablauf des Skripts",
"body": "Container und GPU-Familien auswählen und Prüfungen durchlaufen. Danach wird der Container ohne weitere Abschlussbestätigung gestoppt und geändert. Optionale VFIO-Bereinigung wird separat bestätigt und kann den Host vorher ändern."
},
"walkthrough": {
"heading": "Schritt für Schritt",
"detect": {
"title": "Host-GPUs erkennen",
"body": "Sucht GPU-Controller mit lspci. Prüft für NVIDIA das Modul nvidia und nvidia-smi; die erkannte Version bestimmt den .run-Installer für den Container.",
"tipTitle": "NVIDIA nicht bereit?",
"tipBody": "Wenn Modul oder NVIDIA-Funktion auf dem Host fehlen, zuerst NVIDIA-Treiber auf dem Host installieren und den Treiber prüfen."
},
"pickCt": {
"title": "LXC-Container auswählen",
"body": "Listet geeignete LXC-Container mit ID und Name; OCI-Container sind ausgeschlossen und nutzen für Geräte OCI manager Apps. Der Container wird gestoppt, falls er läuft, zur Treiberinstallation gestartet und normalerweise in seinen ursprünglichen Zustand (laufend/gestoppt) zurückversetzt.",
"imageAlt": "Auswahl eines vorhandenen LXC-Containers"
},
"selectGpu": {
"title": "GPU-Familien auswählen",
"body": "Die Liste wählt Herstellerfamilien, kein isoliertes PCI-Gerät. Intel/AMD fügen die vorgesehenen DRI-Knoten hinzu; NVIDIA seine verfügbaren Geräteknoten, möglicherweise für mehrere Karten. Eine einzelne Familie wird automatisch gewählt. Ergebnis besonders bei mehreren GPUs prüfen.",
"imageAlt": "Liste erkannter GPU-Familien mit Name und PCI-Adresse"
},
"preflight": {
"title": "Vorabprüfungen",
"imageAlt": "Angebot zum Moduswechsel einer an vfio-pci gebundenen GPU",
"intro": "Drei Prüfungen können den Ablauf stoppen oder umleiten:",
"items": [
"SR-IOV-Prüfung. Der Assistent blockiert eine VF oder PF mit aktiven VFs. Das liegt an seiner breiten Geräteauswahl und ist kein generelles LXC-Verbot. Solche Geräte separat konfigurieren.",
"An vfio-pci gebunden. Der native Treiber kann keine /dev/dri/*- oder /dev/nvidia*-Geräte anlegen. GPU-Modus wechseln wird angeboten; Neustarthinweise befolgen und erneut starten.",
"Bereits eingerichtet. Sind alle Geräte vorhanden, beendet das Skript sich ohne Bibliotheks-Neuinstallation. Fehlende ausgewählte Familien werden weiter bearbeitet."
]
},
"applyConfig": {
"title": "Anwenden der LXC-Konfigurationsänderungen",
"body1": "Stoppt den Container, falls er läuft, und bearbeitet /etc/pve/lxc/<ctid>.conf. Nummerierte dev<N>-Einträge enthalten die Host-GID von video oder render. Vorhandene lxc.mount.entry-Bind-Zeilen für /dev/dri werden durch dev:-Einträge ersetzt; prüfen Sie die resultierende Konfiguration und die Rechte.",
"body2": "Beispiel nach Intel + NVIDIA auf demselben Container:"
},
"installDrivers": {
"title": "Starten Sie den Container und installieren Sie Treiber im Inneren",
"body": "Startet den Container und wartet bis zu etwa 30 Sekunden auf pct exec. Erkennt die Distribution aus /etc/os-release und installiert passende Pakete.",
"headerDistro": "Distribution",
"headerInt": "Intel / AMD",
"headerNvidia": "NVIDIA",
"rows": [
{
"distro": "Alpine",
"intel": "apk add mesa-va-gallium intel-media-driver libva-utils",
"nvidia": "apk add nvidia-utils"
},
{
"distro": "Arch / Manjaro",
"intel": "pacman -Sy intel-media-driver mesa libva-utils",
"nvidia": "pacman -Sy nvidia-utils"
}
],
"debianDistro": "Debian / Ubuntu / andere",
"debianIntel": "apt-get install va-driver-all intel-opencl-icd vainfo",
"debianNvidia": ".run auf dem Host entpacken → pct push → mit --no-kernel-modules --no-dkms installieren.",
"whyTitle": "Warum Debian den NVIDIA-.run-Installer nutzt",
"whyBody": "Repository-Pakete passen möglicherweise nicht zum Host. Bibliotheken müssen zum geladenen Host-Modul passen, etwa für nvidia-smi. Debian/glibc nutzt den zwischengespeicherten .run-Installer der Host-Version, entpackt und archiviert ihn auf dem Host, überträgt mit pct push und installiert mit --no-kernel-modules --no-dkms. Alpine und Arch nutzen Repository-Pakete; Versionen prüfen."
},
"alignGids": {
"title": "GIDs ausrichten und Zustand wiederherstellen",
"body1": "Liest bei Intel/AMD die Host-GIDs von video und render, wobei 44/104 nur als Ersatzwerte dienen, und passt dann /etc/group im Container entsprechend an; reine NVIDIA-Durchläufe überspringen diesen Schritt. Einträge wie video:44 und render:104 sind Beispiele, keine universellen IDs. Prüfen Sie die App-Mitgliedschaft und die wirksamen Geräterechte.",
"body2": "Bei normalem Abschluss wird ein ursprünglich gestoppter Container erneut gestoppt; ein laufender bleibt aktiv. Bei Start- oder Installationsfehlern Endzustand und Protokoll prüfen."
}
},
"vendors": {
"heading": "Herstellerspezifische Hinweise",
"intelHeading": "Intel iGPU",
"intelBody": "Intel-Medienbeschleunigung, einschließlich Quick Sync, hängt von GPU-Generation, Codecs und App-Einstellungen ab. Das Skript teilt diejenigen von /dev/dri/card0, card1, renderD128 und renderD129, die vorhanden sind; andere Knotennummern werden nicht hinzugefügt. Der Host muss sie bereits über seinen nativen Treiber bereitstellen, etwa i915.",
"amdHeading": "AMD",
"amdBody": "AMD nutzt DRI für Mesa/VA-API. Vorhandenes /dev/kfd wird ebenfalls geteilt. ROCm/OpenCL benötigt unterstützte Hardware und passende Bibliotheken; die Gerätefreigabe installiert keinen vollständigen ROCm-Stack.",
"nvidiaHeading": "NVIDIA",
"nvidiaBody": "Teilt verfügbare /dev/nvidia*-Geräte. Passende Treiberversionen sind für nvidia-smi entscheidend. Debian/glibc nutzt den .run-Installer der Host-Version, Alpine/Arch Repository-Pakete. Unter 2048 MiB konfiguriertem RAM bietet der Debian-Pfad eine vorübergehende Erhöhung mit Wiederherstellung; benötigt außerdem 1500 MiB freien Plattenplatz.",
"updateTitle": "Nach Host-NVIDIA-Update Containerbibliotheken prüfen",
"updateBody": "Alte Bibliotheken können in nvidia-smi Versionsfehler verursachen. Der NVIDIA-Host-Installer bietet Containerupdates. Erneutes Hinzufügen kann bei vorhandenen Geräten sofort enden und garantiert kein Bibliotheksupdate. Versionen prüfen und passende Pakete oder Userspace-Installation aktualisieren."
},
"verification": {
"heading": "Überprüfung",
"body": "Im Container prüfen, ob die GPU sichtbar und nutzbar ist."
},
"troubleshoot": {
"heading": "Fehlerbehebung",
"mismatchTitle": "nvidia-smi: Failed to initialize NVML: Driver/library version mismatch",
"mismatchBody": "Bibliotheken passen nicht zum geladenen Host-Modul. Versionen prüfen und Container-Userspace aktualisieren. Der zwischengespeicherte .run-Installer gilt für Debian/glibc; bei vorhandenen Geräteeinträgen kann das Hinzufügen vorher enden.",
"denyTitle": "Genehmigung verweigert auf /dev/dri/renderD128 im Container",
"denyBody": "Geräteeintrag und numerische Rechte der Gruppe render prüfen; App-Benutzer muss zu render gehören. Falls verfügbar, mit usermod -aG render <user> zu render hinzufügen; Platzhalter durch Kontonamen ersetzen. Sitzung neu starten. Privilegmoduswechsel ist keine allgemeine Lösung.",
"vainfoTitle": "vainfo sagt: VA-API Version 1.xx; konnte nicht initialisiert werden",
"vainfoBody": "Gerätezugriff und VA-API-Treiber prüfen. Paketnamen hängen von der Distribution ab: etwa intel-media-driver für unterstützte neuere Intel-GPUs, i965-va-driver für ältere und mesa-va-drivers für AMD. Die Meldung allein beweist kein fehlendes Paket.",
"logTitle": "Installationsprotokoll",
"logBody": "Jeder Durchlauf schreibt /tmp/add_gpu_lxc.log auf dem Host. Bei Hilfsanfragen beifügen."
},
"related": {
"heading": "Verwandte Themen",
"items": [
{
"label": "Installieren Sie NVIDIA Treiber (Host)",
"href": "/docs/hardware/nvidia-host",
"tail": " — Host-Treiber vor der NVIDIA-Freigabe installieren."
},
{
"label": "GPU zu VM hinzufügen (Passthrough)",
"href": "/docs/hardware/gpu-vm-passthrough",
"tail": " — Alternative für eine exklusiv zugewiesene VM-GPU."
},
{
"label": "GPU-Modus wechseln (VM ↔ LXC)",
"href": "/docs/hardware/switch-gpu-mode",
"tail": " — GPU zwischen LXC-Freigabe und VM-Zuweisung wechseln."
},
{
"label": "GPU Durchgangsbefehle",
"href": "/docs/help-info/gpu-commands",
"tail": "Schnellreferenz für verwandte Shell-Befehle."
}
]
}
}