{ "meta": { "title": "GPU-Modus wechseln (VM ↔ LXC) | ProxMenux-Dokumentation", "description": "GPU zwischen VFIO für VMs und nativem Treiber für LXC umschalten. ProxMenux erkennt den Treiber, fragt nach dem Umgang mit betroffenen Gästen, entfernt zugehörige Audiozuweisungen und erstellt bei Host-Konfigurationsänderungen initramfs neu." }, "header": { "title": "GPU-Modus wechseln (VM ↔ LXC)", "description": "Zugewiesene GPU zwischen VM-Passthrough und LXC-Nutzung umschalten. ProxMenux verwaltet Treiberbindung, VFIO, Module und initramfs und fragt nach dem Umgang mit betroffenen Gästen. Prüfen Sie die Auswahl und nach dem Neustart die Konfiguration.", "section": "Hardware: GPUs und Coral-TPU" }, "intro": { "title": "Funktionsweise", "body": "Mit vfio-pci ist die GPU für eine VM reserviert. Mit nativem Treiber (i915 / amdgpu / nvidia) können Host und LXC sie teilen. GPU-Modus wechseln verwaltet vfio.conf, Treibersperren und Gastzuweisungen und meldet verbleibende Verweise." }, "graphics": { "lxcTitle": "Bereit für LXC-Container", "lxcDesc": "Nativer Treiber aktiv", "vmTitle": "Bereit für VM-Passthrough", "vmDesc": "VFIO-PCI-Treiber aktiv" }, "when": { "heading": "Wann sollte ich das verwenden?", "intro": "Verwenden Sie dies, wenn die GPU bereits zugewiesen ist und anders genutzt werden soll:", "headerSituation": "Lage", "headerUse": "Nutzen Sie diese Seite?", "rows": [ { "situation": "GPU frei und noch nie zugewiesen: einer VM zuweisen.", "useRich": "Nein — GPU zu VM hinzufügen verwenden" }, { "situation": "GPU frei und noch nie zugewiesen: einem LXC zuweisen.", "useRich": "Nein — GPU zu LXC hinzufügen verwenden" }, { "situationRich": "Die GPU ist einer VM über vfio-pci zugewiesen; ich möchte sie stattdessen in einem LXC nutzen.", "useRich": "Ja — diese Seite." }, { "situation": "Die GPU wird mit einem LXC geteilt; ich möchte sie exklusiv einer VM zuweisen.", "useRich": "Ja — diese Seite." }, { "situation": "Ich möchte alle Gastzuweisungen dieser GPU entfernen.", "use": "Der LXC-Modus gibt die GPU an den Host-Treiber zurück; die VM-Konfliktrichtlinie kann hostpci-Einträge entfernen, LXC-Geräteeinträge müssen jedoch separat entfernt werden. Die GPU bleibt dabei an einen Treiber gebunden." } ] }, "prereqs": { "title": "Vorbereitung", "assigned": "Bereits zugewiesene GPU in einer VM über VFIO oder in einem LXC. Für die erste Zuweisung GPU zu VM / LXC hinzufügen verwenden.", "iommu": "IOMMU muss auf dem Host aktiv sein beim Wechsel in den VM-Modus. Firmware-Einstellungen und Kernel-Unterstützung sind beide entscheidend. Fehlt intel_iommu=on oder amd_iommu=on im laufenden Kernel, fügt das Skript es mit iommu=pt zu /etc/kernel/cmdline (ZFS-Root-Marker) oder /etc/default/grub hinzu und führt dann proxmox-boot-tool refresh oder update-grub aus. Prüfen Sie eventuelle Warnungen und starten Sie bei Aufforderung neu.", "iommuCheck": "dmesg | grep -i 'IOMMU enabled' | head -1", "reboot": "Neustart einplanen. Dauerhafte Treiber- und Bootänderungen können ein neues initramfs und einen Neustart erfordern. Das Skript fragt am Ende danach.", "knowList": "Betroffene VMs und LXC kennen. Das Skript erkennt Verweise und fragt nach dem Umgang mit jedem Gast; eine bekannte Liste erleichtert die Prüfung." }, "blocklist": { "title": "Nicht alle GPUs können sicher an einen VM übergeben werden", "body": "Das Skript sperrt den VM-Modus für die Geräte-IDs 8086:5a84 und 8086:5a85 gemäß seiner Kompatibilitätsrichtlinie. Passt eine gewählte GPU, bricht es den Wechsel in den VM-Modus ab und kehrt zur GPU-Auswahl zurück oder beendet sich, wenn es die einzige GPU ist. Diese Sperrliste verhindert nicht den Wechsel in den LXC-Modus; andere Prüfungen können weiterhin gelten." }, "running": { "heading": "Skript ausführen", "body": "Öffnen Sie Hardware: GPUs und Coral-TPU → GPU-Modus wechseln (VM ↔ LXC) in ProxMenux.", "imageAlt": "Menüpunkt GPU-Modus wechseln (VM ↔ LXC) im Hardware-Menü" }, "howRuns": { "heading": "Ablauf des Skripts", "body": "GPU-Auswahl und Richtung werden vor dem Hauptwechsel geprüft. Eine separate Bereinigung veralteter VFIO-Einträge kann schon vorher fragen; betroffene Gäste haben eigene Konfliktdialoge. Jede Bestätigung lesen: Nicht alle Änderungen sind durch eine einzige Abschlussbestätigung abgedeckt." }, "walkthrough": { "heading": "Schritt für Schritt", "detect": { "title": "GPUs und aktuellen Treiber erkennen", "body": "Erfasst VGA-, 3D- und Display-Controller des Hosts und prüft /sys/bus/pci/devices/*/driver. Zeigt Name, PCI-Adresse und aktuellen Treiber jeder GPU zur Erkennung des Modus.", "imageAlt": "GPU Checkliste mit jedem erkannten GPU mit seinem aktuellen Treiber (vfio-pci / nvidia / amdgpu / i915) und PCI-Slot" }, "pickGpu": { "title": "GPUs zum Umschalten auswählen", "body": "Eine GPU wird automatisch gewählt. Bei mehreren können Sie mehrere markieren, sofern alle im gleichen Modus sind. Bei gemischten Modi müssen Sie die Auswahl eingrenzen.", "tipTitle": "Mehrere GPUs gemeinsam umschalten", "tipBody": "Beispiel: drei NVIDIA-GPUs in den VM-Modus schalten, danach die iGPU in den LXC-Modus zurückgeben. Zwei Durchläufe mit jeweils gemeinsamem Ziel statt einzelner Aufrufe pro Karte." }, "direction": { "title": "Überprüfung der vorgeschlagenen Richtung", "intro": "Basierend auf dem aktuellen Modus schlägt das Skript das Gegenteil als Ziel vor:", "items": [ "VM → LXC: Entfernt die Bindung an vfio-pci, damit der native Treiber (nvidia, amdgpu, i915) die GPU nutzen kann. Bei NVIDIA werden die betreffenden BDF-Einträge aus /etc/udev/rules.d/10-proxmenux-vfio-bind.rules für den nächsten Start entfernt.", "LXC → VM: bereitet die Bindung an vfio-pci vor. AMD / Intel sperren den nativen Treiber und nutzen options vfio-pci ids=…. Bei NVIDIA wird nvidia nur dann global gesperrt, wenn jede NVIDIA-GPU des Hosts in VFIO ist; andernfalls setzen Regeln pro BDF driver_override=vfio-pci für die Geräte der betroffenen IOMMU-Gruppen, und NVIDIA-GPUs außerhalb dieser Gruppen behalten nvidia. Prüfen Sie vor dem Wechsel alle Gruppenmitglieder." ], "outro": "Bestätigen Sie die Richtung oder brechen Sie ab." }, "conflict": { "title": "Umgang mit betroffenen VMs und LXC", "body": "Prüft /etc/pve/lxc/*.conf auf Geräteverweise nach Treiberfamilie und /etc/pve/qemu-server/*.conf auf PCI-Zuweisungen. Die LXC-Erkennung ordnet nicht jede Karte exakt per BDF zu. Prüfen Sie die erkannten Gäste und wählen Sie den Umgang mit jedem:", "headerPolicy": "Richtlinie", "headerEffect": "Wirkung", "headerWhen": "Wann zu wählen", "keepPolicy": "Konfiguration behalten, Autostart deaktivieren", "keepEffect": "pct set CTID -onboot 0 oder qm set VMID -onboot 0. Die GPU-Einträge bleiben erhalten.", "keepWhen": "Wenn der Gast nach Rückkehr zum ursprünglichen GPU-Modus wieder genutzt werden soll. Konservative Standardwahl.", "removePolicy": "GPU aus config entfernen", "removeEffect": "Entfernt die erkannten hostpci- / dev-Einträge und unterstützte ältere Verweise.", "removeWhen": "Wenn der Gast ohne GPU arbeiten soll. Zuerst App-Einstellungen prüfen: CPU-Ersatzbetrieb hängt von der Anwendung ab; das Entfernen des Geräts konfiguriert sie nicht automatisch um.", "imageAlt": "Dialog zum Umgang mit betroffenen VMs oder LXC" }, "audio": { "title": "Zugehörige Audiozuweisungen beim Verlassen des VM-Modus entfernen", "body1": "Viele dedizierte NVIDIA-/AMD-GPUs bieten HDMI-Audio als Funktion .1 desselben Slots; weitere Audiogeräte können zugewiesen sein. Nach Entfernen der GPU können veraltete Audioeinträge vom Typ hostpci bleiben. Prüfen Sie, welche Zuweisungen erhalten bleiben sollen.", "body2": "Erkennt die Audio-BDF-Adressen und zeigt eine Auswahlliste zum Entfernen. Zugehörige Vendor:Device-IDs werden nur aus /etc/modprobe.d/vfio.conf entfernt, wenn keine andere VM sie nutzt." }, "apply": { "title": "Änderungen an Host und Gästen anwenden", "body": "Sobald Sie bestätigen, schreibt das Skript die hostseitigen Änderungen - vfio.conf, Blacklist, Module und (für NVIDIA) die Per-BDF-Udev-Regel bei /etc/udev/rules.d/10-proxmenux-vfio-bind.rules plus den BDF-Status bei /etc/proxmenux/vfio-bind.bdfs. Es wendet auch die gewählte Konfliktpolitik auf jeden betroffenen VM/LXC an. Wenn sich die Host-Konfiguration tatsächlich geändert hat, läuft update-initramfs -u -k all gefolgt von proxmox-boot-tool refresh; ansonsten werden beide übersprungen." }, "reboot": { "title": "Neustart", "body": "Starten Sie den Host neu, um die neue dauerhafte Bindung anzuwenden. Sie können dies verschieben, müssen aber vor dem Start des Zielgasts den aktiven Treiber prüfen: Bis zum Neustart kann noch der vorherige aktiv sein.", "imageAlt": "Zusammenfassungsdialog, der auflistet, was sich geändert hat, gefolgt von der Neustartaufforderung" } }, "manual": { "heading": "Manuelle Prüfung", "intro": "Prüfen Sie vor VM → LXC Treiber und BDF-Richtlinie. Das NVIDIA-Beispiel nutzt 10de:2204; passen Sie es an Ihre Karte an. Die Befehle lesen den Zustand; das Skript verwaltet außerdem Gäste und IOMMU-Gruppenmitglieder.", "lxcToVm": "Vor LXC → VM PCI-Adresse und IOMMU-Gruppe prüfen. Ersetzen Sie die Beispieladresse und prüfen Sie vor der Zuweisung alle Gruppenmitglieder.", "oneVmTitle": "Eine physische VFIO-GPU kann nur eine VM gleichzeitig nutzen", "oneVmBody": "Das Setzen mehrerer hostpci-Einträge mit demselben PCI-Slot in zwei VMs ist eine gültige Konfiguration, aber nur eine der VMs kann mit dem GPU beginnen - die zweite wird fehlschlagen. Beim ProxMenux-Konfliktpolitikschritt geht es genau darum, diese Falle zu vermeiden." }, "verification": { "heading": "Überprüfung nach dem Neustart" }, "troubleshoot": { "heading": "Fehlerbehebung", "stillVfioTitle": "GPU zeigt immer noch vfio-pci nach dem Umschalten auf LXC Modus", "stillVfioBody": "Ein geladenes VFIO-Modul zeigt nicht, welcher Treiber diese GPU besitzt. Kartenbindung sowie Abschluss von update-initramfs und Neustart prüfen. lsmod | grep vfio listet nur Module. Bei AMD / Intel vfio.conf prüfen; bei NVIDIA /etc/proxmenux/vfio-bind.bdfs und /etc/udev/rules.d/10-proxmenux-vfio-bind.rules. Alte Richtlinien vor update-initramfs -u -k all und Neustart korrigieren.", "vmFailTitle": "VM startet nach Wechsel der GPU in den LXC-Modus nicht", "vmFailBody": "Prüfen Sie verbliebene veraltete hostpci-Verweise. Die Richtlinie GPU aus Konfiguration entfernen kann sie beim geplanten Wechsel entfernen. Prüfen Sie vor erneutem Skriptaufruf die Richtung, um den Modus nicht versehentlich umzukehren. Alternativ die alte Zuweisung in Proxmox bei gestoppter VM entfernen.", "smiFailTitle": "nvidia-smi meldet „Driver/library version mismatch“ nach Rückkehr zu LXC", "smiFailBody": "Vergleichen Sie das geladene NVIDIA-Modul mit installierten Bibliotheken, auch in LXC. Versionen zuerst abgleichen: Ein Neustart lädt das installierte Modul, repariert aber keine unpassenden Pakete. Neuladen mit modprobe -r nvidia und modprobe nvidia erfordert gestoppte GPU-Clients und kann bei genutzten abhängigen Modulen scheitern.", "logTitle": "Ausführungsprotokoll", "logBody": "Jeder Aufruf schreibt in /tmp/proxmenux_gpu_switch_mode.log auf dem Host. Fügen Sie das Protokoll Ihrer GitHub-Hilfeanfrage bei." }, "related": { "heading": "Verwandte Themen", "items": [ { "label": "GPU zu VM hinzufügen (Passthrough)", "href": "/docs/hardware/gpu-vm-passthrough", "tail": " — erstmalige Einrichtung des VM-Modus." }, { "label": "GPU zu LXC hinzufügen", "href": "/docs/hardware/igpu-acceleration-lxc", "tail": " — erstmalige Einrichtung des LXC-Modus." }, { "label": "Installieren Sie NVIDIA Treiber (Host)", "href": "/docs/hardware/nvidia-host", "tail": "— erforderlich für den LXC-Modus auf NVIDIA-GPUs." }, { "label": "ProxMenux Monitor — Register Hardware", "href": "/docs/monitor/dashboard/hardware", "tail": " — Bereich Grafikkarten mit aktuellem Modus und Umschaltfunktion." }, { "label": "Befehle für GPU-Passthrough", "href": "/docs/help-info/gpu-commands", "tail": " — kurze Befehlsreferenz." } ] } }