{
"meta": {
"title": "Lägg till GPU i VM | ProxMenux-dokumentation",
"description": "Tilldela en fysisk GPU till en Proxmox-VM. ProxMenux kontrollerar IOMMU, konfigurerar VFIO och VM-enheter samt upptäcker konflikter med andra VM:er eller LXC."
},
"header": {
"title": "Lägg till GPU till VM (Passthrough)",
"description": "Identifierar Intel-, AMD- eller NVIDIA-GPU:er för direkt åtkomst från en VM. Kontrollerar IOMMU och tillhörande enheter, konfigurerar VFIO och VM samt tillämpar kompatibilitetsregler. Kontrollera alla berörda enheter.",
"section": "Hårdvara: GPU:er och Coral-TPU"
},
"intro": {
"title": "Vad det gör",
"body": "Automatiserar värd- och hostpci-stegen i Proxmox-dokumentationen för PCI-passthrough. Kontrollerar tilldelningar i andra gäster och erbjuder konflikthantering. Garanterar inte stöd för varje GPU, återställningsmetod eller gästdrivrutin."
},
"who": {
"heading": "Vem är detta för?",
"body": "För direkt GPU-åtkomst från en virtuell maskin via VFIO. Så länge GPU:n är bunden till VFIO kan värdens drivrutin inte använda den, även med stoppad VM. För delning med LXC, använd Lägg till GPU i LXC."
},
"prereqs": {
"title": "Innan du börjar",
"gpu": "Fysiskt installerad kompatibel GPU. Skriptet hittar Intel, AMD och NVIDIA med lspci.",
"gpuCheck": "lspci | grep -iE 'VGA|3D|Display'",
"iommu": "IOMMU-stöd krävs i hårdvara och vid behov firmware (Intel VT-d eller AMD-Vi). Kontrollerar systemet och kan konfigurera Linux; ändrar inte BIOS/UEFI och bevisar inte att inaktiv IOMMU är avstängd där.",
"q35": "Guiden kräver q35 och avvisar i440fx. Maskintyp och BIOS/UEFI är separata inställningar. Byte av chipset på en befintlig VM kräver planering och sker inte automatiskt.",
"q35Check": "qm config VMID | grep machine",
"moreGpus": "Förbered en annan GPU eller alternativ åtkomst via SSH, IPMI eller seriellt. Reserverad primär GPU kan släcka lokal bild. För NVIDIA kan ett kort utanför berörd IOMMU-grupp stanna på värden.",
"nvidiaInstalled": "Efter NVIDIA-installation på värden reserveras valda funktioner för vfio-pci i stället för nvidia. Modulen nvidia kan finnas kvar för andra kort utanför berörd IOMMU-grupp. Kontrollera med nvidia-smi."
},
"pickOne": {
"title": "Exklusiv VM-tilldelning eller LXC-delning",
"body": "En GPU bunden till vfio-pci för VM genomgång kan inte samtidigt användas av värden eller en LXC. Om du har två GPU kan du ägna en till varje väg. Om du bara har en, välj:",
"vmItem": "VM: direkt och exklusiv åtkomst för den VM:n.",
"lxcItem": "LXC (Lägg till GPU i LXC): delar enheten med värden och andra containrar via den vanliga drivrutinen."
},
"running": {
"heading": "Kör installationen",
"body": "Öppna ProxMenux och välj Hårdvara: GPU:er och Coral-TPU → Lägg till GPU i VM.",
"imageAlt": "Menyval för att lägga till GPU i VM"
},
"howRuns": {
"heading": "Så fungerar skriptet",
"body": "Identifiering och val föregår huvudändringarna, som bekräftas i en sammanfattning. Aktivering av IOMMU har en tidigare egen bekräftelse och kan redan ändra startkonfigurationen. Senare ljudrensning kan också kräva ett val."
},
"walkthrough": {
"heading": "Steg för steg",
"detect": {
"title": "Upptäck GPU och kontrollera IOMMU",
"body": "Betraktar IOMMU som aktivt endast när den körande kärnan har intel_iommu=on eller amd_iommu=on och IOMMU-grupper finns. Om parametern redan är sparad för nästa start fortsätter den i läget väntande omstart; annars kan ett separat bekräftat steg lägga till den med iommu=pt. Dess heuristik för startfilen använder /etc/kernel/cmdline när en ZFS-rotmarkör som root=ZFS= finns där; annars används /etc/default/grub. Heuristiken bevisar inte vilken starthanterare som faktiskt används. Nykonfigurerad IOMMU börjar gälla efter omstart; kontrollera de faktiska grupperna efteråt.",
"tipTitle": "Har du redan gjort efterinstallationen?",
"tipBody": "Om VFIO IOMMU-stöd redan är inställt och aktivt i kerneln godkänns kontrollen. En inställning för nästa start bevisar inte att det är aktivt nu.",
"imageAlt": "Lista över upptäckta GPU med leverantör och PCI-adress"
},
"preflight": {
"title": "Välj GPU och kör förkontroller",
"intro": "När du väljer GPU kör manuset en serie kontroller som kan varje blockera ytterligare framsteg:",
"items": [
"SR-IOV-kontroll. Avvisar VF:er och PF:er med aktiva VF:er eftersom flödet tilldelar hela enheter, inte konfigurerar SR-IOV. Ställ in SR-IOV separat på kompatibel hårdvara.",
"En enda GPU. Den lokala konsolen kan förlora bildutmatningen när VFIO reserverar GPU:n. Kontrollera först SSH- eller webbåtkomst från en annan dator.",
"AMD-policy för återställning. Läser /sys/bus/pci/devices/<pci>/reset_method. APU eller separat kort utan FLR blockeras av guidens policy; okänd undertyp utan FLR kräver bekräftelse. Det bevisar inte att funktionen är omöjlig i alla miljöer.",
"D3cold-läge. Guiden blockerar AMD-kort som rapporterar D3cold på grund av risk för aktiveringsfel. Kontrollera strömhantering och firmware.",
"Analys av IOMMU-grupp. Läser /sys/kernel/iommu_groups/ och tar med alla medlemmar utom bryggor i VM-planen, möjligen nätverks- eller lagringskontroller. Om gruppen innehåller enheter från en annan PCI-plats listar skriptet dem före sammanfattningen; kontrollera att värden inte behöver någon av dem. Om IOMMU väntar på omstart är de faktiska grupperna inte tillgängliga och planen innehåller först bara den valda GPU-funktionen; kontrollera isoleringen efter omstarten."
],
"audioIntro": "Tillhörande ljud. Två fall beroende på var kontrollern finns:",
"audioDgpu": "Separat GPU: HDMI-ljud finns ofta på funktion .1 i samma PCI-plats och tas med om det hittas. Om värden använde ljudet förlorar den åtkomsten när det reserveras för VM:n.",
"audioIgpu": "Utan ljudfunktion .1: kan ljudet finnas på en annan enhet som 00:1f.3. Listar kontroller och drivrutiner, exempelvis snd_hda_intel. Som standard väljs ingen; välj bara de som behövs."
},
"pickVm": {
"title": "Välj mål-VM",
"body": "Välj VM i listan. Kräver q35 och återanvänder befintliga GPU-poster där det går. BIOS/UEFI är en separat inställning, inte en maskintyp. Chipset och gästsystemets startläge ändras inte automatiskt.",
"imageAlt": "Val av VM efter namn, ID och status"
},
"switchMode": {
"title": "Hantera befintliga tilldelningar",
"intro": "Manuset skannar varje VM-konfig och varje LXC-konfig på värden som letar efter GPU du valde. Tre möjliga resultat:",
"items": [
"GPU tillgänglig. Fortsätter utan att ta bort tilldelningar.",
"Tilldelad till en annan VM. Stoppa först källan. Välj behåll poster och inaktivera automatisk start eller ta bort poster och behåll automatisk start. Med aktiv vfio-pci utan nödvändiga värdändringar kan VM→VM ske utan omstart av värden.",
"GPU som används av LXC. För vanliga containrar, välj behåll GPU-konfigurationen och inaktivera automatisk start eller ta bort GPU-enhetskonfigurationen och behåll automatisk start. Borttagningen raderar devN-posterna och, för AMD/Intel, även äldre /dev/dri-regler för lxc.mount.entry och lxc.cgroup2.devices.allow. OCI-containrar behåller sin konfiguration och stoppas med automatisk start inaktiverad; ta bort deras GPU via OCI manager Apps. Konfliktidentifieringen sker per GPU-enhetsfamilj och kan omfatta andra kort i samma familj."
],
"imageAlt": "Dialog erbjudande att ta bort GPU från en LXC innan tilldela den till VM",
"smartTitle": "Granska tillhörande ljud när GPU:n tas bort",
"smartBody": "Därefter kan en lista med möjligen oanvända ljudenheter i käll-VM:n visas. Avmarkera sådant som fortfarande behövs. Exempelvis kan 02:00.1 behållas medan 00:1f.3 föreslås tas bort. Valet styr borttagningen; alla ljud-/bildkopplingar är inte garanterade."
},
"audioPick": {
"title": "Välj nödvändiga kontroller om .1-ljud saknas",
"body": "Det händer bara för Intel iGPU och liknande uppsättningar av split-audio. En checklista visar varje PCI ljudkontroll på värden (exklusive någon redan i GPU IOMMU grupp), märkt med sin nuvarande drivrutin. Välj de du vill - eller ingen, om VM inte behöver ljud från värd hårdvaran.",
"imageAlt": "Checklista dialog med varje värd PCI ljudkontroller (BDF + förare) när GPU har ingen .1 syskon ljud",
"warnTitle": "Välj inte ljud som värden behöver",
"warnBody": "Ljudtilldelning kan ta bort värdens åtkomst; kontrollern kan inte samtidigt tillhöra en annan aktiv VM. Lämna onödigt ljud omarkerat och kontrollera tilldelningarna. Konsolens pip kommer inte nödvändigtvis från PCI-ljud."
},
"summary": {
"title": "Granska bekräftelse sammanfattning",
"body": "Granska den slutliga planen för värd och VM och avbryt om den är fel. Den visar IOMMU-gruppen och antalet enheter i den; medlemmar från en annan PCI-plats listas i föregående steg. Att avbryta stoppar huvudändringarna men återställer inte en tidigare separat bekräftad ändring av IOMMU-startkonfigurationen.",
"imageAlt": "Översikt över planerade ändringar på värd och VM"
},
"hostApply": {
"title": "Värdförändringar tillämpas",
"intro": "Tillämpningsfasen ändrar värd och VM. Tillhörande ljudrensning kan fortfarande kräva ett val. Möjliga ändringar:",
"items": [
"/etc/modules - tillägg vfio, vfio_iommu_type1, vfio_pci (plus) vfio_virqfd på Kernels < 6.2).",
"/etc/modprobe.d/vfio.conf — AMD/Intel: options vfio-pci ids=<vendor:device,...> disable_vga=1. NVIDIA: softdep nvidia pre: vfio-pci (_drm/_modeset/_uvm); den faktiska bindningen sker per BDF. AMD lägger till inläsningsordningen softdep: vfio-pci → radeon/amdgpu.",
"Skriver /etc/modprobe.d/iommu_unsafe_interrupts.conf och kvm.conf med allow_unsafe_interrupts=1 och ignore_msrs=1. Detta är skriptets kompatibilitetsval, inga universella Windows/macOS-krav; osäkra avbrott försvagar avbrottsomappningens skydd.",
"/etc/modprobe.d/blacklist.conf: NVIDIA — nouveau/lbm-nouveau; AMD — radeon + amdgpu; Intel — i915. Dessa regler per tillverkare kan påverka andra kort med samma drivrutin. Modulen nvidia blockeras bara via /etc/modprobe.d/proxmenux-nvidia-vfio-blacklist.conf när alla värdens NVIDIA-kort är registrerade för VFIO.",
"/etc/udev/rules.d/10-proxmenux-vfio-bind.rules + /etc/proxmenux/vfio-bind.bdfs — Endast NVIDIA. Sätter ATTR'{'driver_override'}'=\"vfio-pci\" vid PCI ADD för registrerade BDF:er, inklusive berörda IOMMU-gruppfunktioner. Utanför grupperna kan nvidia behållas. BDF-policy delar inte upp hårdvarans IOMMU-grupp.",
"Endast AMD. Försöker dumpa ROM från /sys/bus/pci/.../rom eller ACPI VFCT till /usr/share/kvm/vbios_<vendor>_<device>.bin. Vid framgång använder VM:en romfile=. En giltig dump garanterar inte att GPU-initialiseringen lyckas.",
"Endast NVIDIA. Stoppar och inaktiverar nvidia-persistenced, nvidia-powerd, nvidia-fabricmanager bara när alla NVIDIA-kort reserverats för VFIO. Vid blandad användning behålls tjänsterna och nvidia för vanliga värdkort.",
"update-initramfs -u -k all - körs endast om något av ovanstående faktiskt ändrats."
]
},
"vmApply": {
"title": "VM konfig appliceras via qm set",
"body": "VM-konfig på /etc/pve/qemu-server/<vmid>.conf uppdateras via qm set (aldrig via direkt sed):",
"after1": "Lägger till x-vga=1 för AMD och NVIDIA, inte Intel. Det är skriptets policy, inget bevis för att alla Intel-iGPU:er saknar firmware eller att flaggan alltid orsakar låsningar.",
"after2": "Ytterligare hostpciN-linjer läggs till om GPUs IOMMU-grupp innehåller andra enheter du behöver för att passera tillsammans."
},
"reboot": {
"title": "Starta om när värdändringen kräver det",
"body": "Följ omstartsanvisningen vid ändringar av start eller drivrutiner och kontrollera aktiv GPU-bindning före VM-start. Sparad konfiguration bevisar inte att den är aktiv. VM→VM med rätt VFIO-läge kan slippa värdomstart.",
"imageAlt": "Sammanfattning skärmen visar vad som ändrades, följt av en omstart prompt"
}
},
"vendors": {
"heading": "Anmärkningar per tillverkare",
"nvidiaHeading": "NVIDIA",
"nvidiaBody": "Behåller en äldre lösning för Code 43: hidden=1, ID NV43FIX i args och kvm=off. Inget universellt krav för moderna GeForce-drivrutiner: NVIDIA aktiverade Windows-VM-passthrough i R465. Felet kan ha andra orsaker; kontrollera GPU och drivrutin.",
"nvidiaMultiHeading": "Multi-GPU NVIDIA stöd",
"nvidiaMultiBody": "Blandad NVIDIA-användning per BDF. Registrerar vfio-pci-funktioner efter adress, inte bara ID vendor:device. Utanför berörda grupper kan nvidia behållas; kontrollera med nvidia-smi. Isolerar inte två kort i samma grupp.",
"amdHeading": "AMD",
"amdBody": "Vissa AMD-GPU:er misslyckas med återställning efter VM-stopp. Guiden kontrollerar rapporterade egenskaper, inte alla verkliga cykler. vendor-reset stöder en begränsad lista och kräver kompatibel kernel samt tidig inläsning; installeras inte automatiskt. Även RadeonResetBugFix för Windows är hårdvaruberoende, utan allmän garanti.",
"intelHeading": "Intel iGPU",
"intelBody": "Full Intel-iGPU-passthrough och SR-IOV är skilda flöden. Guiden reserverar hela enheten för en VM utan x-vga=1. i915-sriov-dkms kräver kompatibel hårdvara och kernel; ”UHD 630+” är ingen kompatibilitetsregel. Planera alternativ värdåtkomst."
},
"verification": {
"heading": "Verifiering"
},
"troubleshoot": {
"heading": "Felsökning",
"code43Title": "Kod 43 i Windows (NVIDIA)",
"code43Body": "Code 43 bevisar inte att KVM-döljning misslyckats. Granska qm config VMID | grep -E \"cpu|args\" med rätt VMID samt hidden=1 och hv_vendor_id=NV43FIX. Kontrollera även gästdrivrutin, firmware och tilldelning. En ny körning kan avslutas direkt vid befintlig tilldelning.",
"amdResetTitle": "AMD GPU fungerar en gång, misslyckas på VM omstart",
"amdResetBody": "Ett återställningsfel är en möjlig orsak. Omstart eller av-/påslagning kan hjälpa tillfälligt. Kontrollera stöd och tidig inläsning av vendor-reset; enbart softdep amdgpu pre: vendor-reset garanterar inte inläsning före VFIO. Även RadeonResetBugFix kräver kompatibel GPU.",
"stuckBootTitle": "VM fastnade start / GPU inte upptäckt",
"stuckBootBody": "Kontrollera den verkliga adressen med lspci -nnk -s PCI_ADDRESS; förvänta Kernel driver in use: vfio-pci. Ersätt PCI_ADDRESS. Om vanlig drivrutin är aktiv, granska bindningspolicyn, inte bara /etc/modprobe.d/blacklist.conf; NVIDIA använder BDF-status. Läs dmesg | grep vfio. Efter rättning, kör update-initramfs -u -k all och följ omstartsplanen.",
"darkTitle": "Värd konsol går mörkt efter omstart och jag kan inte SSH",
"darkBody": "Svart bild bevisar inte att värden är avstängd. Om även SSH misslyckas, kontrollera nätverk och kontroller i IOMMU-gruppen. Återfå åtkomst via IPMI, seriell konsol eller räddningsmiljö; granska /etc/pve/qemu-server/<vmid>.conf och återställ bara berörda tilldelningar och regler. Radera inte annan konfiguration.",
"logTitle": "Kolla installationsloggen",
"logBody": "Varje körning skriver /tmp/add_gpu_vm.log. Bifoga loggen när du söker hjälp."
},
"revert": {
"heading": "Återställ ändringar manuellt",
"intro": "Stoppa VM:n och ta bara bort berörda PCI-tilldelningar under Hårdvara eller med det uttryckliga indexet nedan. Det lämnar inte tillbaka GPU:n till värdens drivrutin. Använd Byt GPU-läge för det steget och kontrollera berörda gäster före bekräftelse."
},
"related": {
"heading": "Relaterat",
"items": [
{
"label": "Installera NVIDIA Drivers (Host)",
"href": "/docs/hardware/nvidia-host",
"tail": " — förbered drivrutinen för kort som stannar på värden; en VFIO-bunden GPU kan inte använda den samtidigt."
},
{
"label": "Lägg till GPU i LXC",
"href": "/docs/hardware/igpu-acceleration-lxc",
"tail": " - alternativ modell: dela GPU med flera containrar istället för att dedikera den till en VM."
},
{
"label": "Byt GPU-läge (VM ↔ LXC)",
"href": "/docs/hardware/switch-gpu-mode",
"tail": " — växla samma GPU mellan delning och exklusiv tilldelning."
},
{
"label": "GPU Passthrough kommandon",
"href": "/docs/help-info/gpu-commands",
"tail": " - lspci, IOMMU-verifiering, qm set hostpci referens."
}
]
}
}