{ "meta": { "title": "NVIDIA-drivrutiner på Proxmox VE 9 — manuell installation | ProxMenux-guider", "description": "Installera och konfigurera NVIDIA-drivrutiner manuellt på ett Proxmox VE 9-värdsystem och ge en eller flera LXC-containrar tillgång till GPU:n. Guiden täcker drivrutiner, persistens­tjänsten, en valfri NVENC-patch och inställningar för varje container.", "ogTitle": "Installera NVIDIA-drivrutiner på Proxmox VE 9 manuellt", "ogDescription": "Manuell NVIDIA-installation på PVE 9: värdsystemets drivrutin, persistens­tjänst, valfri NVENC-patch och GPU-åtkomst i varje LXC-container." }, "header": { "title": "Installera NVIDIA-grafikdrivrutiner på Proxmox VE 9 manuellt", "description": "Installera och konfigurera NVIDIA-drivrutiner manuellt på ett Proxmox VE 9-värdsystem och ge en eller flera LXC-containrar tillgång till GPU:n. Guiden täcker drivrutiner, persistens­tjänsten, en valfri NVENC-patch och inställningar för varje container.", "section": "Guider" }, "intro": { "calloutTitle": "Notera", "calloutBody": "Den här manuella proceduren finns som referens. För de flesta användare rekommenderas ProxMenux-guiden: Installera NVIDIA-drivrutiner på värdsystemet under GPU:er och Coral-TPU och sedan Lägg till GPU i LXC eller Lägg till GPU i VM för gästens inställningar. Guiden utför samma steg med extra kontroller av kärnheaders, IOMMU och VFIO-konflikter. Den här sidan hjälper dig att förstå kommandona eller anpassa konfigurationen.", "targetNote": "Riktad på Proxmox VE 9 (Debian Trixie). PVE 7 (Bullseye) och PVE 8 (Bookworm) täcks inte längre.", "stepsTitle": "Vad du ska göra", "steps": [ "Förbered Proxmox VE 9-värdsystemet: blockera nouveau och kontrollera paketförråd och förutsättningar.", "Installera NVIDIA-drivrutinen på värdsystemet.", "Installera NVIDIAs persistens­tjänst.", "Valfritt: använd keylase-patchen för att ta bort gränsen för samtidiga NVENC-sessioner på konsument-GPU:er.", "Ge en eller flera LXC-containrar tillgång till GPU:n och installera rätt drivrutinsversion i varje container." ] }, "prepareHost": { "heading": "1. Förbered värden (PVE 9)", "blacklistHeading": "1.1 Blockera nouveau", "blacklistBody": "Kontrollera om drivrutinen med öppen källkod nouveau redan är blockerad:", "blacklistCheckCode": "cat /etc/modprobe.d/blacklist.conf", "blacklistAdd": "Om blacklist nouveau inte visas, lägg till den och starta om:", "blacklistAddCode": "echo \"blacklist nouveau\" >> /etc/modprobe.d/blacklist.conf\nupdate-initramfs -u -k all\nreboot", "blacklistImageAlt": "Kontroll av blockeringslista", "reposHeading": "1.2 Verifiera repositorier (PVE 9 / Trixie)", "reposBody": "Verktyg för efterinstallation kan redan ha konfigurerat paketförråden. Granska befintliga källor först och hoppa över ändringar som redan är gjorda. Skapa inte dubbla poster.", "reposOtherwise": "Annars, på en ursprunglig PVE 9-installation utan Enterprise-prenumeration:", "reposEditCode": "nano /etc/apt/sources.list.d/proxmox.sources", "reposPveBody": "Se till att den innehåller no-subscription-källan för Trixie:", "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": "Och Debian källor på /etc/apt/sources.list.d/debian.sources:", "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 Uppdatera systemet och installera förutsättningar", "updateCode": "apt update && apt dist-upgrade -y", "buildToolsBody": "Installera byggverktygen och de kärnheaders som behövs för att kompilera NVIDIAs kärnmodul:", "buildToolsCode": "apt-get install -y git\napt-get install -qqy pve-headers-$(uname -r) gcc make" }, "installDriver": { "heading": "2. Installera NVIDIA-drivrutinen på värdsystemet", "pickHeading": "2.1 Välj drivrutinsversion", "pickBody": "Välj en drivrutinsgren som stöder GPU:n och den körande kärnan. Den senaste grenen kanske inte stöder äldre GPU-modeller; kontrollera NVIDIAs produktlista för den valda versionen:", "pickUrlCode": "https://download.nvidia.com/XFree86/Linux-x86_64/latest.txt", "nvencCallout": "Om du planerar att tillämpa NVENC-patchen (steg 4), verifiera patchen stöder din valda förarversion först: github.com/keylase/nvidia-patch", "nvencCalloutTitle": "Observera", "pickReplace": "Ersätt latest.txt i URL:en med versionsnumret för att hitta installationsfilen som slutar med .run. Fullständig drivrutinslista:", "pickListCode": "https://download.nvidia.com/XFree86/Linux-x86_64/", "pickImageAlt": "Hämta NVIDIA-drivrutin", "pickVersionNote": "Under resten av denna guide, ersätt '<'VERSION'>' med den faktiska versionen (till exempel 580.95.05).", "downloadHeading": "2.2 Ladda ner och kör installationsprogrammet", "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": "Kör installationsprogrammet. Alternativet nedan kan inaktivera nouveau vid behov; en omstart kan krävas innan installationen kan slutföras:", "firstPassCode": "./NVIDIA-Linux-x86_64-VERSION.run --no-questions --ui=none --disable-nouveau\nreboot", "secondPassBody": "När värden kommer tillbaka, kör installationsprogrammet igen för att sammanställa och installera kärnmodulen:", "secondPassCode": "/opt/nvidia/NVIDIA-Linux-x86_64-VERSION.run --no-questions --ui=none", "modulesHeading": "2.3 Läs in NVIDIA-moduler vid start", "modulesBody": "Redigera konfigurationen för modulinläsning:", "modulesEditCode": "nano /etc/modules-load.d/modules.conf", "modulesAddBody": "Lägg till NVIDIA-modulerna för värdsystemet och LXC. VFIO-moduler används för VM-genomkoppling och behövs inte i den här LXC-konfigurationen:", "modulesAddCode": "nvidia\nnvidia_uvm", "modulesSaveBody": "Spara (Ctrl+X) och bygg om initramfs:", "modulesSaveCode": "update-initramfs -u -k all", "udevHeading": "2.4 Skapa udevregler", "udevBody": "Så att enhetsnoderna /dev/nvidia* skapas när modulerna läses in:", "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": "Spara (Ctrl+X)." }, "persistence": { "heading": "3. NVIDIAs persistens­tjänst", "body": "Persistens­tjänsten håller GPU:n initialiserad när ingen annan applikation använder den. Det minskar upprepad initieringsfördröjning och bevarar initieringstillståndet mellan klienter:", "installCode": "cd /opt/nvidia\ngit clone https://github.com/NVIDIA/nvidia-persistenced.git\ncd nvidia-persistenced/init\n./install.sh\nreboot", "verifyBody": "Kontrollera efter omstart att drivrutinen är inläst och tjänsten körs:", "verifySmiCode": "nvidia-smi", "smiImageAlt": "Utdata från NVIDIA SMI", "verifyServiceCode": "systemctl status nvidia-persistenced", "serviceImageAlt": "Status för NVIDIAs persistens­tjänst" }, "nvenc": { "heading": "4. Valfritt: ta bort gränsen för samtidiga NVENC-sessioner", "body": "Gränsen för NVENC-sessioner beror på GPU-modell och drivrutinsversion. Kontrollera NVIDIAs matris i stället för att anta ett antal per generation. keylase-patchen tar bort mjukvarugränsen i versioner som stöds och kan hjälpa vid Plex- eller Jellyfin-omkodning.", "code": "cd /opt/nvidia\ngit clone https://github.com/keylase/nvidia-patch.git\ncd nvidia-patch\n./patch.sh", "imageAlt": "Tillämpning av NVIDIA-patch", "after": "Tillämpa patchen igen efter varje drivrutinsuppdatering. keylase-repositoriet innehåller också patch-fbc.sh för FBC, fångst av bildbufferten." }, "lxcSetup": { "heading": "5. Konfigurera GPU-åtkomst i en LXC-container", "identifyHeading": "5.1 Identifiera enhetsnummer", "identifyBody": "På värden:", "identifyCode": "ls -l /dev/nv*", "identifyImageAlt": "NVIDIA enhetslista", "identifyNote": "Notera enheternas major-nummer; de kan variera mellan system. Vanliga värden:", "tableHeaders": { "device": "Enhet", "major": "Vanligt major-nummer" }, "tableRows": [ { "device": "/dev/nvidia0, /dev/nvidiactl", "major": "195" }, { "device": "/dev/nvidia-uvm, /dev/nvidia-uvm-tools", "major": "509 (varierar)" }, { "device": "/dev/dri/*", "major": "226" }, { "device": "/dev/nvidia-modeset", "major": "195 (delas med nvidia)" } ], "editHeading": "5.2 Redigera LXC konfig", "editBody": "Stoppa containern om den körs. Öppna konfigurationen och ersätt '<'CTID'>' med containerns ID:", "editCode": "nano /etc/pve/lxc/CTID.conf", "editConfigBody": "Kommentera bara bort rader för lxc.cgroup2.devices.allow eller /dev/dri som faktiskt står i konflikt. Lägg till NVIDIA-konfigurationen och anpassa major-numren efter NVIDIA-enheterna som ls -l /dev/nv* visar på ditt värdsystem:", "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": "Spara (Ctrl+X) och starta containern.", "installCtHeading": "5.3 Installera drivrutinen i containern", "installCtCalloutTitle": "Viktigt", "installCtCalloutBody": "Den här delen körs inne i containern, inte på värdsystemet.", "installCtBody": "Kärnmodulen är redan inläst på värdsystemet. Containern behöver bara biblioteken i användarutrymmet med samma drivrutinsversion:", "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": "Granska frågorna och begränsa installationen till bibliotek i användarutrymmet. Bygg eller installera inte en kärnmodul inne i LXC.", "installCtImageAlt": "Installation av NVIDIA-drivrutin", "verifyCtHeading": "5.4 Verifiera inuti containern", "verifyCtSmiCode": "nvidia-smi", "verifyCtSmiImageAlt": "NVIDIA SMI i LXC", "verifyCtLsCode": "ls -l /dev/nv*", "verifyCtLsImageAlt": "NVIDIA enheter i LXC", "verifyCtAfter": "GPU:n bör visas i listan och dess enhetsnoder finnas i containerns filsystem.", "workloadHeading": "5.5 Kontrollera GPU-användningen med en verklig arbetslast", "workloadBody": "Aktivera NVIDIA-maskinvaruacceleration i Plex eller Jellyfin, starta en omkodning och kontrollera faktisk GPU-användning i panelen eller loggarna. Att installera drivrutinen aktiverar inte automatiskt acceleration i applikationen.", "workloadImage1Alt": "Plex med NVIDIA GPU", "workloadImage2Alt": "Plex med NVIDIA GPU - aktiv session", "repeatNote": "Upprepa avsnitt 5 för varje ytterligare container som behöver GPU-åtkomst. Håll användarutrymmets drivrutinsbibliotek i alla containrar i samma version när värdsystemets drivrutin uppdateras." }, "docker": { "heading": "6. (Optional) NVIDIA Docker inuti en LXC", "body": "Om Docker redan körs inne i LXC installerar du nvidia-container-toolkit där för att ge Docker-containrarna tillgång till GPU:n. GPU-åtkomst från LXC måste fungera först. Följande kommandon gäller Docker som körs som root:", "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": "Kommandona konfigurerar NVIDIAs paketförråd, installerar toolkit, konfigurerar Docker-körmiljön och startar om Docker. LXCs enhetsbehörigheter och cgroup-begränsningar gäller fortfarande; verifiera GPU:n med en testlast." }, "troubleshoot": { "heading": "Felsökning", "items": [ "nvidia-smi fungerar på värdsystemet men ger ”No devices found” i containern: kontrollera enhetsmonteringar, behörigheter och drivrutinsbibliotek. Om versionerna skiljer sig installerar du värdsystemets '<'VERSION'>' i containern med --no-kernel-module.", "Drivrutinen kan inte kompileras: granska byggloggen. ”No precompiled kernel interface was found” kan bara betyda att lokal kompilering behövs. Installera headers som matchar uname -r med apt-get install pve-headers-$(uname -r) eller motsvarande proxmox-headers-paket.", "NVENC-sessionerna är fortfarande begränsade: kontrollera att patchen stöder den aktiva drivrutinen. En uppdatering kan skriva över den. För en version som stöds kör du ./patch.sh från /opt/nvidia/nvidia-patch igen och granskar resultatet.", "GPU:n slutar svara efter inaktivitet: kontrollera systemctl status nvidia-persistenced och aktivera tjänsten om det är avsikten. Granska även kärn- och drivrutinsloggar; en stoppad persistens­tjänst är inte den enda möjliga orsaken.", "Containern startar men ls /dev/nv* visar inga NVIDIA-enheter: kontrollera bind-monteringar och enhetssökvägar på värdsystemet. Använd ls -l /dev/nv* för att verifiera NVIDIAs major-nummer och granska reglerna för lxc.cgroup2.devices.allow samt behörigheterna." ] } }