Kako konfigurirati Proxmox VE 8 za PCI/PCIE in NVIDIA GPU Passthrough

Kako Konfigurirati Proxmox Ve 8 Za Pci Pcie In Nvidia Gpu Passthrough



Proxmox VE 8 je eden najboljših odprtokodnih in brezplačnih hipervizorjev tipa I za poganjanje virtualnih strojev (VM) QEMU/KVM in vsebnikov LXC. Ima lep vmesnik za spletno upravljanje in veliko funkcij.

Ena najbolj osupljivih lastnosti Proxmox VE je, da lahko prek naprav PCI/PCIE (tj. NVIDIA GPU) preide iz vašega računalnika v virtualne stroje (VM) Proxmox VE. Prehod PCI/PCIE postaja boljši in boljši z novejšimi izdajami Proxmox VE. V času tega pisanja je najnovejša različica Proxmox VE Proxmox VE v8.1 in ima odlično podporo za prehod PCI/PCIE.







V tem članku vam bom pokazal, kako konfigurirati vaš gostitelj/strežnik Proxmox VE 8 za prehod PCI/PCIE in konfigurirati vaš NVIDIA GPU za prehod PCIE na virtualnih strojih (VM) Proxmox VE 8.





Kazalo

  1. Omogočanje virtualizacije iz vdelane programske opreme BIOS/UEFI vaše matične plošče
  2. Namestitev Proxmox VE 8
  3. Omogočanje repozitorijev skupnosti Proxmox VE 8
  4. Namestitev posodobitev na Proxmox VE 8
  5. Omogočanje IOMMU iz vdelane programske opreme BIOS/UEFI vaše matične plošče
  6. Omogočanje IOMMU na Proxmox VE 8
  7. Preverjanje, ali je IOMMU omogočen na Proxmox VE 8
  8. Nalaganje modulov jedra VFIO na Proxmox VE 8
  9. Prikaz skupin IOMMU na Proxmox VE 8
  10. Preverjanje, ali je vaš NVIDIA GPU mogoče prenesti na virtualni stroj (VM) Proxmox VE 8
  11. Preverjanje modulov jedra na črni seznam za PCI/PCIE Passthrough na Proxmox VE 8
  12. Črni seznam zahtevanih modulov jedra za PCI/PCIE Passthrough na Proxmox VE 8
  13. Konfiguriranje vašega NVIDIA GPE za uporabo jedrnega modula VFIO na Proxmox VE 8
  14. Prehod skozi NVIDIA GPE do Proxmox VE 8 Virtual Machine (VM)
  15. Imate še vedno težave s prehodom PCI/PCIE na virtualnih strojih (VM) Proxmox VE 8?
  16. Zaključek
  17. Reference





Omogočanje virtualizacije iz vdelane programske opreme BIOS/UEFI vaše matične plošče

Preden lahko namestite Proxmox VE 8 na svoj računalnik/strežnik, morate omogočiti funkcijo virtualizacije strojne opreme vašega procesorja iz vdelane programske opreme BIOS/UEFI vaše matične plošče. Postopek je drugačen za različne matične plošče. Torej, če potrebujete pomoč pri omogočanju virtualizacije strojne opreme na matični plošči, preberi ta članek .



Namestitev Proxmox VE 8

Proxmox VE 8 je brezplačen za prenos, namestitev in uporabo. Preden začnete, se prepričajte, da namestite Proxmox VE 8 na svoj računalnik. Če potrebujete pomoč pri tem, preberi ta članek .

Omogočanje repozitorijev skupnosti Proxmox VE 8

Ko imate Proxmox VE 8 nameščen na vašem računalniku/strežniku, poskrbite, da omogočite repozitorije paketov skupnosti Proxmox VE 8 .

Repozitoriji paketov za podjetja Proxmox VE 8 so privzeto omogočeni in ne boste mogli dobiti/namestiti posodobitev in popravkov napak iz repozitorijev za podjetja, razen če ste kupili licence za podjetja Proxmox VE 8. Torej, če želite uporabljati Proxmox VE 8 brezplačno, se prepričajte omogočite repozitorije paketov skupnosti Proxmox VE 8 da brezplačno dobite najnovejše posodobitve in popravke napak od Proxmoxa.

Namestitev posodobitev na Proxmox VE 8

Ko ste enkrat omogočili repozitorije paketov skupnosti Proxmox VE 8 , poskrbite za namestite vse razpoložljive posodobitve na vaš strežnik Proxmox VE 8 .

Omogočanje IOMMU iz vdelane programske opreme BIOS/UEFI vaše matične plošče

Konfiguracija IOMMU se nahaja na različnih lokacijah v različnih matičnih ploščah. Če želite omogočiti IOMMU na vaši matični plošči, preberi ta članek .

Omogočanje IOMMU na Proxmox VE 8

Ko je IOMMU omogočen na strani strojne opreme, morate IOMMU omogočiti tudi na strani programske opreme (od Proxmox VE 8).

Če želite omogočiti IOMMU iz Proxmox VE 8, morate dodati naslednje zagonske parametre jedra:

Prodajalec procesorja Zagonski parametri jedra, ki jih je treba dodati
Intel intel_iommu=on, iommu=pt
AMD iommu=pt

Če želite spremeniti zagonske parametre jedra za Proxmox VE 8, odprite /etc/default/grub datoteko z nano urejevalnikom besedila, kot sledi:

$ nano /etc/default/grub

Na koncu GRUB_CMDLINE_LINUX_DEFAULT , dodajte zahtevane zagonske parametre jedra za omogočanje IOMMU glede na procesor, ki ga uporabljate.

Ker uporabljam procesor AMD, sem dodal samo parameter za zagon jedra iommu=pt na koncu GRUB_CMDLINE_LINUX_DEFAULT vrstica v /etc/default/grub mapa.

Ko končate, pritisnite + X sledi IN in rešiti /etc/default/grub mapa.

Zdaj posodobite zagonske konfiguracije GRUB z naslednjim ukazom:

$ posodobitev-grub2

Ko so zagonske konfiguracije GRUB posodobljene, kliknite Znova zaženite da znova zaženete strežnik Proxmox VE 8, da bodo spremembe začele veljati.

Preverjanje, ali je IOMMU omogočen na Proxmox VE 8

Če želite preveriti, ali je IOMMU omogočen na Proxmox VE 8, zaženite naslednji ukaz:

$ dmesg | grep -e DMAR -e IOMMU

Če je IOMMU omogočen, boste videli nekaj izhodov, ki potrjujejo, da je IOMMU omogočen.

Če IOMMU ni omogočen, morda ne boste videli nobenih rezultatov.

Prav tako morate imeti Preslikava prekinitve IOMMU omogočeno za delovanje prehoda PCI/PCIE.

Če želite preveriti, ali je preslikava prekinitev IOMMU omogočena na vašem strežniku Proxmox VE 8, zaženite naslednji ukaz:

$ dmesg | grep 'preslikava'

Kot lahko vidite, je preslikava prekinitev IOMMU omogočena na mojem strežniku Proxmox VE 8.

Večina sodobnih procesorjev AMD in Intel bo imela omogočeno preslikavo prekinitev IOMMU. Če iz kakršnega koli razloga nimate omogočene preslikave prekinitev IOMMU, obstaja rešitev. Za VFIO morate omogočiti nevarne prekinitve. Preberi ta članek za več informacij o omogočanju nevarnih prekinitev na vašem strežniku Proxmox VE 8.

Nalaganje modulov jedra VFIO na Proxmox VE 8

Prehod PCI/PCIE v glavnem izvajajo moduli jedra VFIO (Virtual Function I/O) na Proxmox VE 8. Moduli jedra VFIO niso privzeto naloženi ob zagonu na Proxmox VE 8. Toda naložiti VFIO je enostavno. moduli jedra ob zagonu na Proxmox VE 8.

Najprej odprite /etc/modules-load.d/vfio.conf datoteko z nano urejevalnik besedil, kot sledi:

$ nano /etc/modules-load.d/vfio.conf

Vnesite naslednje vrstice v /etc/modules-load.d/vfio.conf mapa.

vfio

vfio_iommu_type1

vfio_pci

Ko končate, pritisnite + X sledi IN in da shranite spremembe.

Zdaj posodobite initramfs vaše namestitve Proxmox VE 8 z naslednjim ukazom:

$ posodobitev-initramfs -u -k vse

Ko je initramfs posodobljen, kliknite na Znova zaženite da znova zaženete strežnik Proxmox VE 8, da bodo spremembe začele veljati.

Ko se vaš strežnik Proxmox VE 8 zažene, bi morali videti, da so naloženi vsi zahtevani moduli jedra VFIO.

$ lsmod | prijem vfio

Prikaz skupin IOMMU na Proxmox VE 8

Za prenos naprav PCI/PCIE na virtualnih strojih (VM) Proxmox VE 8 boste morali precej pogosto preverjati skupine IOMMU vaših naprav PCI/PCIE. Za lažje preverjanje skupin IOMMU sem se odločil napisati lupinski skript (dobil sem ga iz GitHuba, vendar se ne morem spomniti imena prvotnega plakata) na poti /usr/local/bin/print-iommu-groups tako da lahko samo tečem print-iommu-groups in bo natisnil skupine IOMMU na lupino Proxmox VE 8.

Najprej ustvarite novo datoteko print-iommu-groups na poti /usr/local/bin in ga odprite z nano urejevalnikom besedila, kot sledi:

$ nano /usr/local/bin/print-iommu-groups

Vnesite naslednje vrstice v print-iommu-groups mapa:

#!/bin/bash

trgovine -s nullglob

za g v ` najti / sys / jedro / iommu_groups /* -maxdepth 0 - vrsta d | vrsta -IN ` ; narediti

odmev 'Skupina IOMMU ${g##*/} :'

za d v $g / naprave /* ; narediti

odmev -Je ' \t $(lspci -nns ${d##*/}) '

Končano ;

Končano ;

Ko končate, pritisnite + X sledi IN in da shranite spremembe v print-iommu-groups mapa.

Naredite print-iommu-groups skriptno datoteko, ki je izvedljiva z naslednjim ukazom:

$ chmod +x /usr/local/bin/print-iommu-groups

Zdaj lahko zaženete print-iommu-groups naslednji ukaz za tiskanje skupin IOMMU naprav PCI/PCIE, nameščenih na vašem strežniku Proxmox VE 8:

$ print-iommu-groups

Kot lahko vidite, so skupine IOMMU naprav PCI/PCIE, nameščenih na mojem strežniku Proxmox VE 8, natisnjene.

Preverjanje, ali je vaš NVIDIA GPU mogoče prenesti na virtualni stroj (VM) Proxmox VE 8

Za prenos naprave PCI/PCIE v virtualni stroj (VM) Proxmox VE 8 mora biti v lastni skupini IOMMU. Če si 2 ali več naprav PCI/PCIE deli skupino IOMMU, ne morete prenesti nobene od naprav PCI/PCIE te skupine IOMMU na noben virtualni stroj (VM) Proxmox VE 8.

Torej, če sta vaša grafična enota NVIDIA in njena zvočna naprava v lastni skupini IOMMU, lahko prek grafične kartice NVIDIA preidete na kateri koli virtualni stroj (VM) Proxmox VE 8.

Na svojem strežniku Proxmox VE 8 uporabljam matično ploščo MSI X570 ACE v kombinaciji s procesorjem Ryzen 3900X in grafično kartico Gigabyte RTX 4070 NVIDIA. Glede na skupine IOMMU mojega sistema lahko prehajam skozi NVIDIA RTX 4070 GPE (IOMMU skupina 21), RTL8125 2.5Gbe Ethernet krmilnik (IOMMU skupina 20), Intel I211 Gigabit Ethernet krmilnik (IOMMU skupina 19), krmilnik USB 3.0 ( IOMMU Group 24) in vgrajen HD Audio Controller (IOMMU Group 25).

$ print-iommu-groups

Ker je glavni poudarek tega članka konfiguriranje Proxmox VE 8 za prehod skozi NVIDIA GPE do virtualnih strojev Proxmox VE 8, morata biti NVIDIA GPE in njegova zvočna naprava v lastni skupini IOMMU.

Preverjanje modulov jedra na črni seznam za PCI/PCIE Passthrough na Proxmox VE 8

Za prehod naprave PCI/PCIE na virtualnem stroju (VM) Proxmox VE 8 se morate prepričati, da ga Proxmox VE prisili k uporabi modula jedra VFIO namesto izvirnega modula jedra.

Če želite izvedeti, kateri modul jedra uporabljajo vaše naprave PCI/PCIE, boste morali poznati ID prodajalca in ID naprave teh naprav PCI/PCIE. ID prodajalca in ID naprave naprav PCI/PCIE najdete z uporabo print-iommu-groups ukaz.

$ print-iommu-groups

Na primer, ID prodajalca in ID naprave moje GPU NVIDIA RTX 4070 je 10. december: 2786 in to je zvočna naprava 10de:22 pr.n.št .

Če želite poiskati modul jedra, uporabite napravo PCI/PCIE 10. december: 2786 (moj NVIDIA RTX 4070 GPE) uporablja, zaženite lspci ukaz kot sledi:

$ lspci -v -d 10de:2786

Kot lahko vidite, moj GPE NVIDIA RTX 4070 uporablja nvidiafb in novo moduli jedra privzeto. Torej jih na tej točki ni mogoče posredovati virtualnemu stroju (VM) Proxmox VE 8.

Zvočna naprava mojega grafičnega procesorja NVIDIA RTX 4070 uporablja snd_hda_intel modul jedra. Torej ga tudi na tej točki ni mogoče posredovati na virtualnem stroju Proxmox VE 8.

$ lspci -v -d 10de:22bc

Torej, za prenos mojega GPE-ja NVIDIA RTX 4070 in njegove zvočne naprave na virtualnem stroju (VM) Proxmox VE 8, moram črno uvrstiti nvidiafb , novo , in snd_hda_intel module jedra in konfiguriram svoj grafični procesor NVIDIA RTX 4070 in njegovo zvočno napravo za uporabo vfio-pci modul jedra.

Črni seznam zahtevanih modulov jedra za PCI/PCIE Passthrough na Proxmox VE 8

Za črni seznam modulov jedra v Proxmox VE 8 odprite /etc/modprobe.d/blacklist.conf datoteko z nano urejevalnikom besedila, kot sledi:

$ nano /etc/modprobe.d/blacklist.conf

Za črni seznam modulov jedra novo , nvidiafb , in snd_hda_intel modulov jedra (za prehod skozi NVIDIA GPE), dodajte naslednje vrstice v /etc/modprobe.d/blacklist.conf mapa:

črni seznam nouveau

črni seznam nvidiafb

črni seznam snd_hda_intel

Ko končate, pritisnite + X sledi IN in rešiti /etc/modprobe.d/blacklist.conf mapa.

Konfiguriranje vašega NVIDIA GPE za uporabo jedrnega modula VFIO na Proxmox VE 8

Če želite konfigurirati napravo PCI/PCIE (tj. vaš NVIDIA GPE) za uporabo modula jedra VFIO, morate poznati njihov ID prodajalca in ID naprave.

V tem primeru sta ID prodajalca in ID naprave mojega grafičnega procesorja NVIDIA RTX 4070 in njegove zvočne naprave 10. december: 2786 in 10de:22 pr.n.št .

Če želite konfigurirati vaš NVIDIA GPE za uporabo modula jedra VFIO, odprite /etc/modprobe.d/vfio.conf datoteko z nano urejevalnikom besedila, kot sledi:

$ nano /etc/modprobe.d/vfio.conf

Če želite konfigurirati vaš NVIDIA GPE in njegovo zvočno napravo z : 10. december: 2786 in 10de:22 pr.n.št (recimo) za uporabo modula jedra VFIO dodajte naslednjo vrstico v /etc/modprobe.d/vfio.conf mapa.

možnosti vfio-pci ids=10de:2786,10de:22bc

Ko končate, pritisnite + X sledi IN in rešiti /etc/modprobe.d/vfio.conf mapa.

Zdaj posodobite initramfs za Proxmove VE 8 z naslednjim ukazom:

$ posodobitev-initramfs -u -k vse

Ko je initramfs posodobljen, kliknite Znova zaženite da znova zaženete strežnik Proxmox VE 8, da bodo spremembe začele veljati.

Ko se vaš strežnik Proxmox VE 8 zažene, bi morali videti, da sta vaš NVIDIA GPE in njegova zvočna naprava ( 10. december: 2786 in 10de:22 pr.n.št v mojem primeru) uporabljajo vfio-pci modul jedra. Zdaj je vaš NVIDIA GPE pripravljen za prenos v virtualni stroj Proxmox VE 8.

$ lspci -v -d 10de:2786

$ lspci -v -d 10de:22bc

Prehod skozi NVIDIA GPE do Proxmox VE 8 Virtual Machine (VM)

Zdaj, ko je vaš NVIDIA GPE pripravljen za prehod na virtualne stroje (VM) Proxmox VE 8, lahko prenesete vaš NVIDIA GPE na želeni virtualni stroj Proxmox VE 8 in namestite gonilnike NVIDIA GPU, odvisno od operacijskega sistema, ki ga uporabljate na ta virtualni stroj kot običajno.

Za podrobne informacije o tem, kako prenesti vaš NVIDIA GPE na virtualni stroj (VM) Proxmox VE 8 z nameščenimi različnimi operacijskimi sistemi, preberite enega od naslednjih člankov:

  • Kako prenesti grafični procesor NVIDIA v virtualni stroj (VM) Windows 11 Proxmox VE 8
  • Kako prenesti grafični procesor NVIDIA v virtualni stroj (VM) Ubuntu 24.04 LTS Proxmox VE 8
  • Kako prenesti grafični procesor NVIDIA v virtualni stroj (VM) LinuxMint 21 Proxmox VE 8
  • Kako prenesti grafični procesor NVIDIA na virtualni stroj (VM) Debian 12 Proxmox VE 8
  • Kako prenesti grafični procesor NVIDIA na virtualni stroj (VM) Elementary OS 8 Proxmox VE 8
  • Kako prenesti grafični procesor NVIDIA v virtualni stroj (VM) Fedora 39+ Proxmox VE 8
  • Kako prenesti grafični procesor NVIDIA na virtualni stroj (VM) Arch Linux Proxmox VE 8
  • Kako prenesti grafični procesor NVIDIA na virtualnem stroju (VM) Red Hat Enterprise Linux 9 (RHEL 9) Proxmox VE 8

Imate še vedno težave s prehodom PCI/PCIE na virtualnih strojih (VM) Proxmox VE 8?

Če prehod PCI/PCIE še vedno ne deluje, se prepričajte, da tudi potem, ko ste pravilno preizkusili vse, kar je našteto v tem članku, preizkusite nekaj trikov in/ali rešitev za prehod Proxmox VE PCI/PCIE ki jih lahko uporabite za prepustnost PCI/PCIE na vaši strojni opremi.

Zaključek

V tem članku sem vam pokazal, kako konfigurirati vaš strežnik Proxmox VE 8 za prehod PCI/PCIE, tako da lahko prehajate naprave PCI/PCIE (tj. vaš NVIDIA GPU) na vaše virtualne stroje (VM) Proxmox VE 8. Pokazal sem vam tudi, kako najti module jedra, ki jih morate dodati na črni seznam, in kako jih postaviti na črni seznam za uspešen prehod vaših želenih naprav PCI/PCIE (tj. vašega NVIDIA GPE) do virtualnega stroja Proxmox VE 8. Končno sem vam pokazal, kako konfigurirati vaše želene naprave PCI/PCIE (tj. vaš NVIDIA GPE) za uporabo modulov jedra VFIO, kar je tudi bistven korak za uspešen prehod vaših želenih naprav PCI/PCIE (tj. vašega NVIDIA GPE). ) v virtualni stroj (VM) Proxmox VE 8.

Reference

  1. PCI(e) prehod – Proxmox VE
  2. PCI prehod – Proxmox VE
  3. Najboljši virtualni stroj za igre na proxmoxu – YouTube