{ "meta": { "title": "Pridanie GPU do VM | Dokumentácia ProxMenux", "description": "Priraďte fyzickú GPU virtuálnemu stroju Proxmox. ProxMenux overí IOMMU, nastaví VFIO a zariadenia VM a zistí konflikty s inými VM alebo LXC." }, "header": { "title": "Pridať GPU do VM (passthrough)", "description": "Zistí GPU Intel, AMD alebo NVIDIA pre priamy prístup z VM. Overí IOMMU a pridružené zariadenia, nastaví VFIO a VM a použije pravidlá kompatibility. Overte všetky dotknuté zariadenia.", "section": "Hardvér: grafické karty a Coral TPU" }, "intro": { "title": "Čo robí", "body": "Automatizuje nastavenie hostiteľa a hostpci z dokumentácie PCI passthrough Proxmox. Overí priradenia iným hosťom a ponúkne riešenie konfliktov. Nezaručuje podporu každej GPU, resetovania či hosťovského ovládača." }, "who": { "heading": "Pre koho je toto?", "body": "Pre priamy prístup virtuálneho stroja ku GPU cez VFIO. Kým je GPU priradená VFIO, ovládač hostiteľa ju nepoužije ani pri zastavenej VM. Na zdieľanie s LXC použite Pridať GPU do LXC." }, "prereqs": { "title": "Skôr ako začnete", "gpu": "Fyzicky nainštalovaná kompatibilná GPU. Skript zisťuje Intel, AMD a NVIDIA cez lspci.", "gpuCheck": "lspci | grep -iE 'VGA|3D|Display'", "iommu": "Podpora IOMMU v hardvéri a potrebné zapnutie vo firmvéri (Intel VT-d alebo AMD-Vi). Overí systém a môže nastaviť Linux; nemení BIOS/UEFI ani nedokazuje, že neaktívne IOMMU je vypnuté vo firmvéri.", "q35": "Sprievodca vyžaduje q35 a odmietne i440fx. Typ stroja je oddelený od firmvéru BIOS/UEFI. Zmena čipovej súpravy existujúcej VM vyžaduje plánovanie a nevykonáva sa automaticky.", "q35Check": "qm config VMID | grep machine", "moreGpus": "Pripravte ďalšiu GPU alebo náhradný prístup cez SSH, IPMI či sériovú konzolu. Rezervovanie hlavnej GPU môže vypnúť miestny obraz. Pri NVIDIA môže karta mimo dotknutej skupiny IOMMU zostať hostiteľovi.", "nvidiaInstalled": "Po inštalácii NVIDIA na hostiteľa sa vybrané funkcie rezervujú pre vfio-pci namiesto nvidia. Modul nvidia môže zostať pre ostatné karty mimo dotknutej skupiny IOMMU. Overte ich cez nvidia-smi." }, "pickOne": { "title": "Výhradné priradenie VM alebo zdieľanie LXC", "body": "Používateľ GPU viazaný na vfio-pci pre prechod VM nemôže súčasne používať hostiteľ ani LXC. Ak máte dva GPU, môžete vyhradiť jeden pre každú cestu. Ak máte iba jeden, vyberte:", "vmItem": "VM: priamy a výhradný prístup pre túto VM.", "lxcItem": "LXC (Pridať GPU do LXC): zdieľa zariadenie s hostiteľom a ďalšími kontajnermi cez natívny ovládač." }, "running": { "heading": "Spustenie inštalátora", "body": "Otvorte ProxMenux a vyberte Hardvér: GPU a Coral-TPU → Pridať GPU do VM.", "imageAlt": "Položka ponuky na pridanie GPU do VM" }, "howRuns": { "heading": "Ako skript funguje", "body": "Zistenie a výber predchádzajú hlavným zmenám potvrdeným súhrnom. Zapnutie IOMMU má skoršie samostatné potvrdenie a môže už zmeniť štart systému. Neskoršie čistenie zvuku môže tiež vyžadovať výber." }, "walkthrough": { "heading": "Postup krok za krokom", "detect": { "title": "Detekovať GPU a skontrolovať IOMMU", "body": "Považuje IOMMU za aktívne iba vtedy, keď bežiace jadro má intel_iommu=on alebo amd_iommu=on a existujú skupiny IOMMU. Ak je parameter už uložený pre ďalší štart, pokračuje v režime čakajúceho reštartu; inak ho samostatne potvrdený krok môže pridať s iommu=pt. Jeho heuristika zavádzacieho súboru použije /etc/kernel/cmdline, keď sa v ňom nachádza značka koreňa ZFS ako root=ZFS=; inak použije /etc/default/grub. Táto heuristika nedokazuje skutočne použitý zavádzač. Novo nakonfigurované IOMMU sa prejaví po reštarte; potom overte skutočné skupiny.", "tipTitle": "Už ste nastavili kroky po inštalácii?", "tipBody": "Ak je podpora VFIO IOMMU nastavená a aktívna v jadre, kontrola prejde. Nastavenie pre ďalší štart samo osebe nedokazuje aktuálne zapnutie.", "imageAlt": "Zoznam zistených GPU s predávajúcim a PCI adresa" }, "preflight": { "title": "Výber GPU a predbežné kontroly", "intro": "Akonáhle si vyberiete GPU, skript spustí sériu kontrol, ktoré môžu každý blok ďalší postup:", "items": [ "Ochrana SR-IOV. Odmietne VF a PF s aktívnymi VF, pretože nastavuje celé zariadenia, nie SR-IOV. SR-IOV nastavte samostatne na podporovanom hardvéri.", "Jediná GPU. Po rezervovaní pre VFIO môže miestna konzola stratiť obraz. Najprv overte SSH alebo webový prístup z iného počítača.", "Politika resetovania AMD. Číta /sys/bus/pci/devices/<pci>/reset_method. APU alebo samostatná karta bez FLR je blokovaná politikou sprievodcu; neznámy podtyp bez FLR vyžaduje potvrdenie. Nedokazuje to všeobecnú nemožnosť.", "Stav D3cold. Sprievodca blokuje AMD karty so stavom D3cold pre riziko zlyhania aktivácie. Overte napájanie a firmvér.", "Analýza skupiny IOMMU. Číta /sys/kernel/iommu_groups/ a do plánu VM zahrnie všetkých členov okrem mostov, prípadne aj sieťové či úložné radiče. Ak skupina obsahuje zariadenia z iného slotu, skript ich vypíše pred súhrnom; overte, že hostiteľ žiadne z nich nepotrebuje. Pri čakajúcom reštarte IOMMU nie sú skutočné skupiny dostupné a plán najprv obsahuje iba vybranú funkciu GPU; izoláciu overte po reštarte." ], "audioIntro": "Pridružený zvuk. Dva prípady podľa umiestnenia radiča:", "audioDgpu": "Samostatná GPU: zvuk HDMI býva vo funkcii .1 rovnakého PCI slotu a pri zistení sa zahrnie. Ak ho používal hostiteľ, rezervovaním pre VM stratí prístup.", "audioIgpu": "Bez zvukovej funkcie .1: zvuk môže byť na inom zariadení ako 00:1f.3. Vypíše radiče a ovládače, napríklad snd_hda_intel. Predvolene nie je vybraný žiadny; vyberte iba potrebné." }, "pickVm": { "title": "Vyberte cieľovú VM", "body": "Vyberte VM zo zoznamu. Vyžaduje q35 a podľa možnosti použije existujúce položky GPU. BIOS/UEFI je samostatné nastavenie, nie typ stroja. Čipovú súpravu ani režim štartu hosťa automaticky nemení.", "imageAlt": "Výber VM podľa názvu, ID a stavu" }, "switchMode": { "title": "Riešenie existujúcich priradení", "intro": "Skript prehľadá konfigurácie VM a LXC na hostiteľovi a zisťuje použitie vybranej GPU. Možné výsledky:", "items": [ "GPU je voľná. Pokračuje bez odstránenia priradení.", "Priradená inej VM. Najprv zastavte zdrojovú VM. Môžete ponechať položky a vypnúť automatický štart alebo odstrániť položky a ponechať automatický štart. Pri aktívnom vfio-pci bez potrebných zmien hostiteľa možno presun VM→VM vykonať bez jeho reštartu.", "GPU používaná LXC. Pri bežných kontajneroch zvoľte ponechať konfiguráciu GPU a vypnúť automatický štart alebo odstrániť konfiguráciu zariadenia GPU a automatický štart ponechať. Odstránenie vymaže položky devN a pri AMD/Intel aj staré pravidlá /dev/dri lxc.mount.entry a lxc.cgroup2.devices.allow. Kontajnery OCI si ponechajú konfiguráciu a zastavia sa s vypnutým automatickým štartom; ich GPU odstráňte cez OCI manager Apps. Detekcia konfliktov prebieha podľa rodiny zariadení GPU a môže zahrnúť ďalšie karty tejto rodiny." ], "imageAlt": "Dialóg ponúka odstrániť GPU z LXC pred pridelením do VM", "smartTitle": "Kontrola pridruženého zvuku pri odstránení GPU", "smartBody": "Potom môže ponúknuť zoznam potenciálne nepotrebných zvukových zariadení zdrojovej VM. Zrušte výber stále potrebných. Napríklad môže ponechať 02:00.1 a ponúknuť odstránenie 00:1f.3. O odstránení rozhoduje výber, nie zaručená univerzálna väzba zvuku a obrazu." }, "audioPick": { "title": "Bez zvukovej funkcie .1 vyberte potrebné radiče", "body": "Stáva sa to len pre Intel iGPU a podobné split-audio nastavenia. Kontrolný zoznam zobrazuje každý PCI audio ovládač na hostiteľovi (s výnimkou všetkých už v skupine IOMMU GPU), označený jeho súčasným vodičom. Vyberte tie, ktoré chcete, alebo žiadne, ak VM nepotrebuje audio z hostiteľa hardvéru.", "imageAlt": "Kontrolný dialóg s každým hostiteľom PCI audio ovládač (BDF + ovládač), keď GPU nemá .1 súrodenec", "warnTitle": "Nevyberajte zvuk potrebný hostiteľovi", "warnBody": "Priradenie zvuku môže odobrať prístup hostiteľovi; radič nemôže súčasne patriť inej spustenej VM. Nepotrebný zvuk nevyberajte a overte priradenia. Pípanie konzoly nemusí pochádzať z PCI zvuku." }, "summary": { "title": "Preskúmanie zhrnutia potvrdenia", "body": "Overte konečný plán hostiteľa a VM a pri chybe ho zrušte. Zobrazuje skupinu IOMMU a počet jej zariadení; členovia z iného slotu sú vypísaní v predchádzajúcom kroku. Zrušenie zastaví hlavné zmeny, nevráti však skoršiu samostatne potvrdenú zmenu nastavenia štartu pre IOMMU.", "imageAlt": "Súhrn plánovaných zmien hostiteľa a VM" }, "hostApply": { "title": "Uplatnia sa zmeny hostiteľa", "intro": "Fáza vykonania mení hostiteľa a VM. Čistenie zvuku môže ešte vyžadovať výber. Možné zmeny:", "items": [ "/etc/modules Dodáva: vfio, vfio_iommu_type1, vfio_pci (plus vfio_virqfd o jadrách < 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); skutočné priradenie je podľa BDF. AMD pridáva poradie načítania softdep: vfio-pci → radeon/amdgpu.", "Zapíše /etc/modprobe.d/iommu_unsafe_interrupts.conf a kvm.conf s allow_unsafe_interrupts=1 a ignore_msrs=1. Ide o nastavenia skriptu, nie všeobecné požiadavky Windows/macOS; nebezpečné prerušenia oslabujú ochranu premapovania.", "/etc/modprobe.d/blacklist.conf: NVIDIA — nouveau/lbm-nouveau; AMD — radeon + amdgpu; Intel — i915. Tieto pravidlá výrobcu môžu ovplyvniť ďalšie karty s rovnakým ovládačom. Modul nvidia sa blokuje iba cez /etc/modprobe.d/proxmenux-nvidia-vfio-blacklist.conf, keď sú všetky NVIDIA hostiteľa evidované pre VFIO.", "/etc/udev/rules.d/10-proxmenux-vfio-bind.rules + /etc/proxmenux/vfio-bind.bdfs — Iba NVIDIA. Nastaví ATTR'{'driver_override'}'=\"vfio-pci\" pri PCI ADD pre evidované BDF vrátane funkcií dotknutej skupiny IOMMU. Mimo skupín môže zostať nvidia. Politika BDF nerozdelí hardvérovú skupinu IOMMU.", "Iba AMD. Pokúsi sa o výpis ROM z /sys/bus/pci/.../rom alebo ACPI VFCT do /usr/share/kvm/vbios_<vendor>_<device>.bin. Pri úspechu VM použije romfile=. Platný výpis nezaručí úspešnú inicializáciu GPU.", "Iba NVIDIA. Zastaví a vypne nvidia-persistenced, nvidia-powerd, nvidia-fabricmanager iba ak sú všetky NVIDIA rezervované pre VFIO. Pri zmiešanom použití zachová služby a nvidia pre natívne karty.", "update-initramfs -u -k all — spustí sa iba pri zmene nastavenia hostiteľa." ] }, "vmApply": { "title": "Konfigurácia VM sa aplikuje pomocou qm set", "body": "VM konfig na /etc/pve/qemu-server/<vmid>.conf je aktualizovaný prostredníctvom qm set (nikdy priamo sed):", "after1": "Pridáva x-vga=1 pre AMD a NVIDIA, nie Intel. Ide o politiku skriptu, nie dôkaz, že všetkým Intel iGPU chýba firmvér alebo že príznak vždy spôsobuje zamrznutie.", "after2": "Dodatočné linky hostpciN sú pripojené, ak skupina IOMMU GPU obsahuje ďalšie zariadenia, ktoré potrebujete spoločne prechádzať." }, "reboot": { "title": "Reštart pri požadovanej zmene hostiteľa", "body": "Pri zmene štartu alebo ovládačov postupujte podľa výzvy na reštart a pred VM overte aktívne priradenie GPU. Uložené nastavenie nepotvrdzuje aktiváciu. Presun VM→VM so správnym VFIO nemusí vyžadovať reštart hostiteľa.", "imageAlt": "Súhrnná obrazovka znázorňujúca, čo bolo zmenené, nasledovaná reštartom" } }, "vendors": { "heading": "Poznámky podľa výrobcu", "nvidiaHeading": "NVIDIA", "nvidiaBody": "Zachováva staršie riešenie pre Code 43: hidden=1, ID NV43FIX v args a kvm=off. Nie je všeobecnou požiadavkou dnešných GeForce; NVIDIA povolila Windows passthrough od R465. Chyba môže mať iné príčiny; overte GPU a ovládač.", "nvidiaMultiHeading": "Podpora multi-GPU NVIDIA", "nvidiaMultiBody": "Zmiešané použitie NVIDIA podľa BDF. Funkcie vfio-pci eviduje podľa adresy, nielen ID vendor:device. Mimo dotknutých skupín môže ponechať nvidia; overte cez nvidia-smi. Dve karty v rovnakej skupine tým neizoluje.", "amdHeading": "AMD", "amdBody": "Niektoré AMD GPU sa po zastavení VM nedajú resetovať. Sprievodca overuje hlásené schopnosti, nie každý reálny cyklus. vendor-reset podporuje obmedzený zoznam, vyžaduje kompatibilné jadro a skoré načítanie; nenainštaluje sa. Aj RadeonResetBugFix pre Windows závisí od hardvéru, bez všeobecnej záruky.", "intelHeading": "Intel iGPU", "intelBody": "Úplné priradenie Intel iGPU a SR-IOV sú odlišné postupy. Sprievodca rezervuje celé zariadenie pre jednu VM bez x-vga=1. i915-sriov-dkms vyžaduje podporovaný hardvér a jadro; „UHD 630+“ nie je pravidlo kompatibility. Pripravte náhradný prístup k hostiteľovi." }, "verification": { "heading": "Overenie" }, "troubleshoot": { "heading": "Riešenie problémov", "code43Title": "Kód 43 vo Windows (NVIDIA)", "code43Body": "Code 43 nedokazuje chybu skrytia KVM. Overte qm config VMID | grep -E \"cpu|args\" so skutočným VMID, potom hidden=1 a hv_vendor_id=NV43FIX. Overte aj hosťovský ovládač, firmvér a priradenie. Opakovanie môže pri existujúcom priradení skončiť.", "amdResetTitle": "AMD GPU funguje raz, zlyháva na reštarte VM", "amdResetBody": "Zlyhanie resetovania je jednou z príčin. Reštart alebo úplné vypnutie môže dočasne pomôcť. Overte podporu a skoré načítanie vendor-reset; samotné softdep amdgpu pre: vendor-reset nezaručí načítanie pred VFIO. Aj RadeonResetBugFix potrebuje kompatibilnú GPU.", "stuckBootTitle": "VM prilepené booting / GPU nezistené", "stuckBootBody": "Overte skutočnú adresu cez lspci -nnk -s PCI_ADDRESS; očakáva sa Kernel driver in use: vfio-pci. Nahraďte PCI_ADDRESS. Pri natívnom ovládači overte politiku priradenia, nielen /etc/modprobe.d/blacklist.conf; NVIDIA používa stav BDF. Pozrite dmesg | grep vfio. Po oprave spustite update-initramfs -u -k all a plánovaný reštart.", "darkTitle": "Hostiteľská konzola ide tma po reštarte a nemôžem SSH v", "darkBody": "Čierna obrazovka nedokazuje výpadok hostiteľa. Ak nefunguje ani SSH, overte sieť a radiče zahrnuté v skupine IOMMU. Obnovte prístup cez IPMI, sériovú konzolu alebo záchranné prostredie; overte /etc/pve/qemu-server/<vmid>.conf a vráťte iba príslušné priradenia a pravidlá. Nemažte nesúvisiace nastavenia.", "logTitle": "Skontrolujte protokol inštalácie", "logBody": "Každé spustenie zapisuje /tmp/add_gpu_vm.log. Záznam priložte k žiadosti o pomoc." }, "revert": { "heading": "Ručné vrátenie zmien", "intro": "Zastavte VM a odstráňte iba príslušné PCI priradenia v Hardvéri alebo pomocou nižšie uvedeného indexu. GPU sa tým nevráti natívnemu ovládaču hostiteľa. Na to použite Zmeniť režim GPU a pred potvrdením overte dotknutých hostí." }, "related": { "heading": "Súvisiace", "items": [ { "label": "Nainštalovať ovládače NVIDIA (host)", "href": "/docs/hardware/nvidia-host", "tail": " — príprava ovládača pre natívne karty hostiteľa; GPU vo VFIO ho nemôže používať súčasne." }, { "label": "Pridať GPU do LXC", "href": "/docs/hardware/igpu-acceleration-lxc", "tail": " — alternatíva: zdieľať GPU s viacerými kontajnermi namiesto vyhradenia jednej VM." }, { "label": "Zmeniť režim GPU (VM ↔ LXC)", "href": "/docs/hardware/switch-gpu-mode", "tail": " — prepnutie tej istej GPU medzi zdieľaním a výhradným priradením." }, { "label": "GPU Prenosové príkazy", "href": "/docs/help-info/gpu-commands", "tail": " — lspci, overenie IOMMU a prehľad qm set hostpci." } ] } }