Files
ProxMenux/web/messages/de/guides/nvidia-manual.json
T

166 lines
16 KiB
JSON

{
"meta": {
"title": "NVIDIA Treiber auf Proxmox VE 9 installieren (manuelles Verfahren) | ProxMenux Guides",
"description": "NVIDIA-Treiber auf einem Proxmox-VE-9-Host manuell installieren und konfigurieren sowie die GPU einem oder mehreren LXC-Containern zugänglich machen. Behandelt Treiberinstallation, Persistenzdienst, optionalen NVENC-Patch und die Konfiguration je Container.",
"ogTitle": "NVIDIA-Treiber auf Proxmox VE 9 installieren (manuelles Verfahren)",
"ogDescription": "NVIDIA-Treiber auf PVE 9 manuell einrichten: Hosttreiber, Persistenzdienst, optionaler NVENC-Patch und GPU-Zugriff für einzelne LXC-Container."
},
"header": {
"title": "NVIDIA Grafikkartentreiber auf Proxmox VE 9 installieren (manuelles Verfahren)",
"description": "NVIDIA-Treiber auf einem Proxmox-VE-9-Host manuell installieren und konfigurieren sowie die GPU einem oder mehreren LXC-Containern zugänglich machen. Behandelt Treiberinstallation, Persistenzdienst, optionalen NVENC-Patch und die Konfiguration je Container.",
"section": "Leitfäden"
},
"intro": {
"calloutTitle": "Notiz",
"calloutBody": "Diese Anleitung beschreibt die manuellen Schritte als Referenz. Für die meisten Nutzer empfiehlt sich der ProxMenux-Assistent: <strong>NVIDIA-Treiber installieren (Host)</strong> unter <em>GPUs und Coral-TPU</em> sowie <strong>GPU zu LXC hinzufügen</strong> oder <strong>GPU zu VM hinzufügen</strong> für die jeweilige Gastkonfiguration. Der Assistent erledigt diese Schritte mit zusätzlichen Prüfungen für Kernel-Header, IOMMU und VFIO-Konflikte. Die manuelle Anleitung hilft, einzelne Befehle zu verstehen oder abweichende Konfigurationen einzurichten.",
"targetNote": "Gezielt auf <strong>Proxmox VE 9</strong> (Debian Trixie). PVE 7 (Bullseye) und PVE 8 (Bookworm) sind nicht mehr abgedeckt.",
"stepsTitle": "Was Sie einrichten",
"steps": [
"Proxmox-VE-9-Host vorbereiten: nouveau sperren, Paketquellen und Voraussetzungen prüfen.",
"Installieren Sie den NVIDIA Treiber auf dem Host.",
"Installieren Sie den NVIDIA Persistenzdienst.",
"Optional: Mit dem keylase-Patch das Limit gleichzeitiger NVENC-Sitzungen bei Consumer-GPUs aufheben.",
"Die GPU einem oder mehreren LXC-Containern zugänglich machen und jeweils die passende Treiberversion installieren."
]
},
"prepareHost": {
"heading": "1. Bereiten Sie den Host vor (PVE 9)",
"blacklistHeading": "1.1 nouveau sperren",
"blacklistBody": "Überprüfen Sie, ob der Open-Source-<code>nouveau</code>-Treiber bereits auf der schwarzen Liste steht:",
"blacklistCheckCode": "cat /etc/modprobe.d/blacklist.conf",
"blacklistAdd": "Wenn <code>blacklist nouveau</code> nicht angezeigt wird, fügen Sie es hinzu und starten Sie neu:",
"blacklistAddCode": "echo \"blacklist nouveau\" >> /etc/modprobe.d/blacklist.conf\nupdate-initramfs -u -k all\nreboot",
"blacklistImageAlt": "Blacklist-Prüfung",
"reposHeading": "1.2 Paketquellen prüfen (PVE 9 / Trixie)",
"reposBody": "Post-Install-Werkzeuge haben die Paketquellen möglicherweise schon eingerichtet. Prüfen Sie zuerst die vorhandenen Quellen und überspringen Sie bereits erledigte Änderungen. Vermeiden Sie doppelte Einträge.",
"reposOtherwise": "Andernfalls für eine unveränderte PVE-9-Installation ohne Enterprise-Abonnement:",
"reposEditCode": "nano /etc/apt/sources.list.d/proxmox.sources",
"reposPveBody": "Stellen Sie sicher, dass es die No-Abonnement-Quelle für Trixie enthält:",
"reposPveCode": "Types: deb\nURIs: http://download.proxmox.com/debian/pve\nSuites: trixie\nComponents: pve-no-subscription\nSigned-By: /usr/share/keyrings/proxmox-archive-keyring.gpg",
"reposDebianBody": "Und die Debian-Quellen bei <code>/etc/apt/sources.list.d/debian.sources</code>:",
"reposDebianCode": "Types: deb\nURIs: http://deb.debian.org/debian/\nSuites: trixie trixie-updates\nComponents: main contrib non-free non-free-firmware\nSigned-By: /usr/share/keyrings/debian-archive-keyring.gpg\n\nTypes: deb\nURIs: http://security.debian.org/debian-security/\nSuites: trixie-security\nComponents: main contrib non-free non-free-firmware\nSigned-By: /usr/share/keyrings/debian-archive-keyring.gpg",
"updateHeading": "1.3 Aktualisieren Sie das System und installieren Sie die Voraussetzungen",
"updateCode": "apt update && apt dist-upgrade -y",
"buildToolsBody": "Installieren Sie die Build-Tools und Kernel-Header, die zum Kompilieren des Kernel-Moduls NVIDIA erforderlich sind:",
"buildToolsCode": "apt-get install -y git\napt-get install -qqy pve-headers-$(uname -r) gcc make"
},
"installDriver": {
"heading": "2. Installieren Sie den NVIDIA-Treiber auf dem Host",
"pickHeading": "2.1 Wählen Sie eine Treiberversion",
"pickBody": "Wählen Sie einen Treiberzweig, der GPU und laufenden Kernel unterstützt. Der neueste Zweig unterstützt ältere GPUs möglicherweise nicht. Prüfen Sie die Produktliste der gewählten NVIDIA-Version:",
"pickUrlCode": "https://download.nvidia.com/XFree86/Linux-x86_64/latest.txt",
"nvencCallout": "Wenn Sie den NVENC-Patch anwenden möchten (Schritt 4), überprüfen Sie zuerst, ob der Patch die von Ihnen gewählte Treiberversion unterstützt: <patchLink>github.com/keylase/nvidia-patch</patchLink>",
"nvencCalloutTitle": "Hinweis",
"pickReplace": "Ersetzen Sie <code>latest.txt</code> in der URL durch die Versionsnummer, um den Installer mit der Endung <code>.run</code> zu finden. Die vollständige Treiberliste steht unter:",
"pickListCode": "https://download.nvidia.com/XFree86/Linux-x86_64/",
"pickImageAlt": "NVIDIA Treiber herunterladen",
"pickVersionNote": "Ersetzen Sie <code>'<'VERSION'>'</code> durch die aktuelle Version (z. B. <code>580.95.05</code>).",
"downloadHeading": "2.2 Download und Ausführen des Installationsprogramms",
"downloadCode": "mkdir -p /opt/nvidia\ncd /opt/nvidia\nwget https://download.nvidia.com/XFree86/Linux-x86_64/VERSION/NVIDIA-Linux-x86_64-VERSION.run\nchmod +x NVIDIA-Linux-x86_64-VERSION.run",
"firstPassBody": "Starten Sie den Installer. Die folgende Option kann <code>nouveau</code> bei Bedarf deaktivieren; vor Abschluss kann ein Neustart nötig sein:",
"firstPassCode": "./NVIDIA-Linux-x86_64-VERSION.run --no-questions --ui=none --disable-nouveau\nreboot",
"secondPassBody": "Nachdem der Host zurückgekommen ist, führen Sie das Installationsprogramm erneut aus, um das Kernelmodul zu kompilieren und zu installieren:",
"secondPassCode": "/opt/nvidia/NVIDIA-Linux-x86_64-VERSION.run --no-questions --ui=none",
"modulesHeading": "2.3 NVIDIA-Module beim Booten laden",
"modulesBody": "Bearbeiten Sie die Konfiguration zum Laden der Module:",
"modulesEditCode": "nano /etc/modules-load.d/modules.conf",
"modulesAddBody": "Fügen Sie die NVIDIA-Module für Host und LXC hinzu. VFIO-Module sind für VM-Durchreichung vorgesehen und werden hier nicht benötigt:",
"modulesAddCode": "nvidia\nnvidia_uvm",
"modulesSaveBody": "Speichern Sie die Datei, beenden Sie den Editor mit <code>Ctrl+X</code> und erstellen Sie initramfs neu:",
"modulesSaveCode": "update-initramfs -u -k all",
"udevHeading": "2.4 Udev-Regeln erstellen",
"udevBody": "Damit beim Laden der Module die Geräteknoten <code>/dev/nvidia*</code> erstellt werden:",
"udevEditCode": "nano /etc/udev/rules.d/70-nvidia.rules",
"udevRulesCode": "# /etc/udev/rules.d/70-nvidia.rules\nKERNEL==\"nvidia\", RUN+=\"/bin/bash -c '/usr/bin/nvidia-smi -L'\"\nKERNEL==\"nvidia_uvm\", RUN+=\"/bin/bash -c '/usr/bin/nvidia-modprobe -c0 -u'\"",
"udevSaveBody": "Speichern (<code>Ctrl+X</code>)."
},
"persistence": {
"heading": "3. NVIDIA-Persistenzdienst",
"body": "Der Persistenzdienst hält die GPU initialisiert, wenn keine andere Anwendung sie nutzt. Das reduziert wiederholte Initialisierungslatenz und erhält den Initialisierungszustand zwischen Clients:",
"installCode": "cd /opt/nvidia\ngit clone https://github.com/NVIDIA/nvidia-persistenced.git\ncd nvidia-persistenced/init\n./install.sh\nreboot",
"verifyBody": "Prüfen Sie nach dem Neustart, ob der Treiber geladen ist und der Dienst läuft:",
"verifySmiCode": "nvidia-smi",
"smiImageAlt": "Ausgabe von NVIDIA SMI",
"verifyServiceCode": "systemctl status nvidia-persistenced",
"serviceImageAlt": "Status des NVIDIA-Persistenzdienstes"
},
"nvenc": {
"heading": "4. Optional: Limit gleichzeitiger NVENC-Sitzungen aufheben",
"body": "NVENC-Sitzungslimits hängen von GPU-Modell und Treiberversion ab. Prüfen Sie die NVIDIA-Matrix statt eines pauschalen Limits je Generation. Der keylase-Patch entfernt das Softwarelimit bei unterstützten Treiberversionen und kann Kodierungsaufgaben wie Plex- oder Jellyfin-Transkodierung helfen.",
"code": "cd /opt/nvidia\ngit clone https://github.com/keylase/nvidia-patch.git\ncd nvidia-patch\n./patch.sh",
"imageAlt": "NVIDIA Patch-Anwendung",
"after": "Wenden Sie den Patch nach jedem Treiberupdate erneut an. Das keylase-Repository enthält bei Bedarf auch <code>patch-fbc.sh</code> für FBC, die Erfassung des Bildpuffers."
},
"lxcSetup": {
"heading": "5. GPU-Zugriff für einen LXC-Container einrichten",
"identifyHeading": "5.1 Gerätenummern angeben",
"identifyBody": "Auf dem Host:",
"identifyCode": "ls -l /dev/nv*",
"identifyImageAlt": "NVIDIA Geräteliste",
"identifyNote": "Notieren Sie die Major-Gerätenummern. Sie können sich je nach System unterscheiden. Typische Werte:",
"tableHeaders": {
"device": "Gerät",
"major": "Typische Major-Nummer"
},
"tableRows": [
{
"device": "<code>/dev/nvidia0</code>, <code>/dev/nvidiactl</code>",
"major": "195"
},
{
"device": "<code>/dev/nvidia-uvm</code>, <code>/dev/nvidia-uvm-tools</code>",
"major": "509 (variiert)"
},
{
"device": "<code>/dev/dri/*</code>",
"major": "226"
},
{
"device": "<code>/dev/nvidia-modeset</code>",
"major": "195 (mit nvidia geteilt)"
}
],
"editHeading": "5.2 Bearbeiten der LXC-Konfiguration",
"editBody": "Stoppen Sie den Container, falls er läuft. Öffnen Sie seine Konfiguration und ersetzen Sie <code>'<'CTID'>'</code> durch die Container-ID:",
"editCode": "nano /etc/pve/lxc/CTID.conf",
"editConfigBody": "Kommentieren Sie nur tatsächlich widersprüchliche Zeilen zu <code>lxc.cgroup2.devices.allow</code> oder <code>/dev/dri</code> aus. Ergänzen Sie die NVIDIA-Gerätekonfiguration und passen Sie die Major-Nummern an die NVIDIA-Geräte an, die <code>ls -l /dev/nv*</code> auf <strong>Ihrem</strong> Host zeigt:",
"editConfigCode": "lxc.cgroup2.devices.allow: c 195:* rwm\nlxc.cgroup2.devices.allow: c 509:* rwm\nlxc.mount.entry: /dev/nvidia0 dev/nvidia0 none bind,optional,create=file\nlxc.mount.entry: /dev/nvidiactl dev/nvidiactl none bind,optional,create=file\nlxc.mount.entry: /dev/nvidia-uvm dev/nvidia-uvm none bind,optional,create=file\nlxc.mount.entry: /dev/nvidia-modeset dev/nvidia-modeset none bind,optional,create=file\nlxc.mount.entry: /dev/nvidia-uvm-tools dev/nvidia-uvm-tools none bind,optional,create=file",
"editConfigImageAlt": "LXC Konfiguration",
"editSave": "Speichern (<code>Ctrl+X</code>) und starten Sie den Container.",
"installCtHeading": "5.3 Installieren Sie den Treiber im Container",
"installCtCalloutTitle": "Wichtig",
"installCtCalloutBody": "Dieser Teil wird <strong>im Container</strong> ausgeführt, nicht auf dem Host.",
"installCtBody": "Das Kernelmodul ist bereits auf dem Host geladen. Der Container benötigt nur die Bibliotheken im Benutzerbereich mit derselben Treiberversion:",
"installCtCode": "mkdir -p /opt/nvidia\ncd /opt/nvidia\nwget https://download.nvidia.com/XFree86/Linux-x86_64/VERSION/NVIDIA-Linux-x86_64-VERSION.run\nchmod +x NVIDIA-Linux-x86_64-VERSION.run\n./NVIDIA-Linux-x86_64-VERSION.run --no-kernel-module",
"installCtAfter": "Prüfen Sie die Abfragen und installieren Sie hier nur Bibliotheken im Benutzerbereich. Kompilieren oder installieren Sie kein Kernelmodul im LXC-Container.",
"installCtImageAlt": "NVIDIA Treiberinstallation",
"verifyCtHeading": "5.4 Verifizieren im Container",
"verifyCtSmiCode": "nvidia-smi",
"verifyCtSmiImageAlt": "NVIDIA SMI in LXC",
"verifyCtLsCode": "ls -l /dev/nv*",
"verifyCtLsImageAlt": "NVIDIA Geräte in LXC",
"verifyCtAfter": "Die GPU sollte aufgelistet sein und ihre Geräteknoten sollten im Containerdateisystem erscheinen.",
"workloadHeading": "5.5 GPU-Nutzung mit einer echten Arbeitslast prüfen",
"workloadBody": "Aktivieren Sie NVIDIA-Hardwarebeschleunigung in Plex oder Jellyfin, starten Sie eine Videotranskodierung und prüfen Sie im Dashboard oder Protokoll die tatsächliche GPU-Nutzung. Die Treiberinstallation allein aktiviert sie nicht in der Anwendung.",
"workloadImage1Alt": "Plex mit NVIDIA GPU",
"workloadImage2Alt": "Plex mit NVIDIA GPU - aktive Sitzung",
"repeatNote": "Wiederholen Sie <strong>Abschnitt 5</strong> für jeden weiteren Container mit GPU-Zugriff. Aktualisieren Sie bei Hosttreiber-Updates auch die Bibliotheken im Benutzerbereich aller Container auf die passende Version."
},
"docker": {
"heading": "6. (Optional) NVIDIA Docker in einem LXC",
"body": "Wenn Docker bereits im LXC-Container läuft, installieren Sie dort <code>nvidia-container-toolkit</code> für den GPU-Zugriff seiner Docker-Container. Zuerst muss die GPU im LXC funktionieren. Die folgenden Befehle gelten für Docker als Root-Dienst:",
"code": "apt-get update\napt-get install -y ca-certificates curl gnupg\ncurl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | gpg --dearmor --yes -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg\ncurl -fsSL https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' > /etc/apt/sources.list.d/nvidia-container-toolkit.list\napt-get update\napt-get install -y nvidia-container-toolkit\nnvidia-ctk runtime configure --runtime=docker\nsystemctl restart docker",
"after": "Die Befehle richten das NVIDIA-Repository ein, installieren das Toolkit, konfigurieren die Docker-Laufzeit und starten Docker neu. Geräteberechtigungen und cgroup-Beschränkungen des LXC gelten weiterhin. Prüfen Sie die GPU mit einer Testlast."
},
"troubleshoot": {
"heading": "Fehlerbehebung",
"items": [
"<strong><code>nvidia-smi</code> funktioniert auf dem Host, meldet im Container aber „No devices found“:</strong> Prüfen Sie Gerätemounts, Berechtigungen und passende Treiberbibliotheken. Bei abweichenden Versionen installieren Sie die Hostversion <code>'<'VERSION'>'</code> im Container mit <code>--no-kernel-module</code>.",
"<strong>Die Treiberkompilierung schlägt fehl:</strong> Prüfen Sie das Bauprotokoll. „No precompiled kernel interface was found“ kann nur bedeuten, dass lokal kompiliert werden muss. Installieren Sie zu <code>uname -r</code> passende Header mit <code>apt-get install pve-headers-$(uname -r)</code> oder dem entsprechenden proxmox-headers-Paket.",
"<strong>NVENC-Sitzungen bleiben begrenzt:</strong> Prüfen Sie die Unterstützung des aktiven Treibers durch den Patch. Ein Treiberupdate kann ihn überschreiben. Wenden Sie bei unterstützter Version <code>./patch.sh</code> aus <code>/opt/nvidia/nvidia-patch</code> erneut an und prüfen Sie die Ausgabe.",
"<strong>Die GPU reagiert nach Leerlauf nicht mehr:</strong> Prüfen Sie <code>systemctl status nvidia-persistenced</code> und aktivieren Sie den Dienst bei Bedarf. Prüfen Sie auch Kernel- und Treiberprotokolle; ein gestoppter Persistenzdienst ist nicht die einzig mögliche Ursache.",
"<strong>Der Container startet, aber <code>ls /dev/nv*</code> zeigt keine NVIDIA-Geräte:</strong> Prüfen Sie Bind-Mounts und Gerätepfade auf dem Host. Ermitteln Sie mit <code>ls -l /dev/nv*</code> die NVIDIA-Major-Nummern und prüfen Sie Regeln für <code>lxc.cgroup2.devices.allow</code> sowie Dateirechte."
]
}
}