Paano I-configure ang Proxmox VE 8 para sa PCI/PCIE at NVIDIA GPU Passthrough

Paano I Configure Ang Proxmox Ve 8 Para Sa Pci Pcie At Nvidia Gpu Passthrough



Ang Proxmox VE 8 ay isa sa pinakamahusay na open-source at libreng Type-I hypervisors out doon para sa pagpapatakbo ng mga QEMU/KVM virtual machine (VMs) at LXC container. Ito ay may magandang web management interface at maraming feature.

Ang isa sa mga pinakakahanga-hangang feature ng Proxmox VE ay na maaari itong dumaan sa mga PCI/PCIE device (ibig sabihin, isang NVIDIA GPU) mula sa iyong computer patungo sa Proxmox VE virtual machine (VMs). Ang PCI/PCIE passthrough ay nagiging mas mahusay at mas mahusay sa mas bagong Proxmox VE release. Sa oras ng pagsulat na ito, ang pinakabagong bersyon ng Proxmox VE ay Proxmox VE v8.1 at mayroon itong mahusay na suporta sa passthrough ng PCI/PCIE.







Sa artikulong ito, ipapakita ko sa iyo kung paano i-configure ang iyong Proxmox VE 8 host/server para sa PCI/PCIE passthrough at i-configure ang iyong NVIDIA GPU para sa PCIE passthrough sa Proxmox VE 8 virtual machine (VMs).





Talaan ng mga Nilalaman

  1. Paganahin ang Virtualization mula sa BIOS/UEFI Firmware ng Iyong Motherboard
  2. Pag-install ng Proxmox VE 8
  3. Paganahin ang Proxmox VE 8 Community Repositories
  4. Pag-install ng Mga Update sa Proxmox VE 8
  5. Paganahin ang IOMMU mula sa BIOS/UEFI Firmware ng Iyong Motherboard
  6. Paganahin ang IOMMU sa Proxmox VE 8
  7. Pagbe-verify kung Naka-enable ang IOMMU sa Proxmox VE 8
  8. Nilo-load ang VFIO Kernel Module sa Proxmox VE 8
  9. Paglilista ng IOMMU Groups sa Proxmox VE 8
  10. Sinusuri kung ang Iyong NVIDIA GPU ay Maaaring Maging Passthrough sa isang Proxmox VE 8 Virtual Machine (VM)
  11. Pagsuri para sa mga Kernel Module sa Blacklist para sa PCI/PCIE Passthrough sa Proxmox VE 8
  12. Blacklisting Mga Kinakailangang Kernel Module para sa PCI/PCIE Passthrough sa Proxmox VE 8
  13. Pag-configure ng Iyong NVIDIA GPU na Gamitin ang VFIO Kernel Module sa Proxmox VE 8
  14. Ipasa ang NVIDIA GPU sa isang Proxmox VE 8 Virtual Machine (VM)
  15. Nagkakaroon Pa rin ng mga Problema sa PCI/PCIE Passthrough sa Proxmox VE 8 Virtual Machines (VMs)?
  16. Konklusyon
  17. Mga sanggunian





Paganahin ang Virtualization mula sa BIOS/UEFI Firmware ng Iyong Motherboard

Bago mo mai-install ang Proxmox VE 8 sa iyong computer/server, dapat mong paganahin ang tampok na hardware virtualization ng iyong processor mula sa BIOS/UEFI firmware ng iyong motherboard. Iba ang proseso para sa iba't ibang motherboard. Kaya, kung kailangan mo ng anumang tulong sa pagpapagana ng virtualization ng hardware sa iyong motherboard, basahin ang artikulong ito .



Pag-install ng Proxmox VE 8

Ang Proxmox VE 8 ay libre upang i-download, i-install, at gamitin. Bago ka magsimula, tiyaking i-install ang Proxmox VE 8 sa iyong computer. Kung kailangan mo ng anumang tulong tungkol dito, basahin ang artikulong ito .

Paganahin ang Proxmox VE 8 Community Repositories

Kapag na-install mo na ang Proxmox VE 8 sa iyong computer/server, siguraduhing paganahin ang mga imbakan ng pakete ng komunidad ng Proxmox VE 8 .

Bilang default, ang Proxmox VE 8 enterprise package repository ay pinagana at hindi ka makakakuha/mag-install ng mga update at pag-aayos ng bug mula sa mga enterprise repository maliban kung bumili ka ng Proxmox VE 8 enterprise license. Kaya, kung gusto mong gamitin ang Proxmox VE 8 nang libre, siguraduhing paganahin ang mga imbakan ng pakete ng komunidad ng Proxmox VE 8 upang makuha ang pinakabagong mga update at pag-aayos ng bug mula sa Proxmox nang libre.

Pag-install ng Mga Update sa Proxmox VE 8

Kapag nagawa mo na pinagana ang mga repositoryo ng package ng komunidad ng Proxmox VE 8 , siguraduhin mong i-install ang lahat ng available na update sa iyong Proxmox VE 8 server .

Paganahin ang IOMMU mula sa BIOS/UEFI Firmware ng Iyong Motherboard

Ang pagsasaayos ng IOMMU ay matatagpuan sa iba't ibang lokasyon sa iba't ibang motherboard. Upang paganahin ang IOMMU sa iyong motherboard, basahin ang artikulong ito .

Paganahin ang IOMMU sa Proxmox VE 8

Sa sandaling pinagana ang IOMMU sa bahagi ng hardware, kailangan mo ring paganahin ang IOMMU mula sa bahagi ng software (mula sa Proxmox VE 8).

Upang paganahin ang IOMMU mula sa Proxmox VE 8, mayroon kang idagdag ang mga sumusunod na parameter ng kernel boot:

Vendor ng Processor Mga parameter ng kernel boot na idaragdag
Intel intel_iommu=on, iommu=pt
AMD iommu=pt

Upang baguhin ang mga parameter ng kernel boot ng Proxmox VE 8, buksan ang /etc/default/grub file gamit ang nano text editor tulad ng sumusunod:

$ nano /etc/default/grub

Sa dulo ng GRUB_CMDLINE_LINUX_DEFAULT , idagdag ang kinakailangang mga parameter ng kernel boot para sa pagpapagana ng IOMMU depende sa processor na iyong ginagamit.

Habang gumagamit ako ng AMD processor, ang kernel boot parameter lang ang naidagdag ko iommu=pt sa dulo ng GRUB_CMDLINE_LINUX_DEFAULT linya sa /etc/default/grub file.

Kapag tapos ka na, pindutin + X sinundan ng AT at upang i-save ang /etc/default/grub file.

Ngayon, i-update ang mga configuration ng GRUB boot gamit ang sumusunod na command:

$ update-grub2

Kapag na-update ang mga configuration ng boot ng GRUB, mag-click sa I-reboot upang i-restart ang iyong Proxmox VE 8 server para magkabisa ang mga pagbabago.

Pagbe-verify kung Naka-enable ang IOMMU sa Proxmox VE 8

Upang i-verify kung pinagana ang IOMMU sa Proxmox VE 8, patakbuhin ang sumusunod na command:

$ dmesg | grep -e DMAR -e IOMMU

Kung pinagana ang IOMMU, makikita mo ang ilang mga output na nagpapatunay na pinagana ang IOMMU.

Kung hindi pinagana ang IOMMU, maaaring wala kang makitang anumang mga output.

Kailangan mo ring magkaroon ng IOMMU Interrupt Remapping pinagana para gumana ang PCI/PCIE passthrough.

Upang suriin kung ang IOMMU Interrupt Remapping ay pinagana sa iyong Proxmox VE 8 server, patakbuhin ang sumusunod na command:

$ dmesg | grep 'remapping'

Gaya ng nakikita mo, ang IOMMU Interrupt Remapping ay pinagana sa aking Proxmox VE 8 server.

Karamihan sa mga modernong AMD at Intel processor ay magkakaroon ng IOMMU Interrupt Remapping na pinagana. Kung sa anumang kadahilanan, hindi mo pinagana ang IOMMU Interrupt Remapping, mayroong isang solusyon. Kailangan mong paganahin ang Mga Hindi Ligtas na Pagkagambala para sa VFIO. Basahin ang artikulong ito para sa higit pang impormasyon sa pagpapagana ng Mga Hindi Safe Interrupts sa iyong Proxmox VE 8 server.

Nilo-load ang VFIO Kernel Module sa Proxmox VE 8

Ang PCI/PCIE passthrough ay pangunahing ginagawa ng VFIO (Virtual Function I/O) kernel modules sa Proxmox VE 8. Ang VFIO kernel modules ay hindi nilo-load sa boot time bilang default sa Proxmox VE 8. Ngunit, madaling i-load ang VFIO kernel module sa oras ng boot sa Proxmox VE 8.

Una, buksan ang /etc/modules-load.d/vfio.conf file kasama ang nano text editor tulad ng sumusunod:

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

I-type ang mga sumusunod na linya sa /etc/modules-load.d/vfio.conf file.

vfio

vfio_iommu_type1

vfio_pci

Kapag tapos ka na, pindutin + X sinundan ng AT at upang i-save ang mga pagbabago.

Ngayon, i-update ang initramfs ng iyong Proxmox VE 8 na pag-install gamit ang sumusunod na command:

$ update-initramfs -u -k lahat

Kapag na-update ang initramfs, mag-click sa I-reboot upang i-restart ang iyong Proxmox VE 8 server para magkabisa ang mga pagbabago.

Kapag ang iyong Proxmox VE 8 server boots, dapat mong makita na ang lahat ng kinakailangang VFIO kernel modules ay na-load.

$ lsmod | hawakan vfio

Paglilista ng IOMMU Groups sa Proxmox VE 8

Upang makapasa sa mga PCI/PCIE na device sa Proxmox VE 8 virtual machine (VM), kakailanganin mong suriin nang madalas ang mga IOMMU group ng iyong PCI/PCIE device. Upang gawing mas madali ang pagsuri para sa mga grupo ng IOMMU, nagpasya akong magsulat ng script ng shell (nakuha ko ito mula sa GitHub, ngunit hindi ko matandaan ang pangalan ng orihinal na poster) sa landas /usr/local/bin/print-iommu-groups para tumakbo na lang ako print-iommu-groups command at ipi-print nito ang mga grupo ng IOMMU sa Proxmox VE 8 shell.

Una, lumikha ng isang bagong file print-iommu-groups sa landas /usr/local/bin at buksan ito gamit ang nano text editor tulad ng sumusunod:

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

I-type ang mga sumusunod na linya sa print-iommu-groups file:

#!/bin/bash

mga tindahan -s nullglob

para sa g sa ` hanapin / sys / kernel / iommu_groups /* -maxdepth 0 -uri d | uri -SA ` ; gawin

echo 'IOMMU Group ${g##*/} :'

para sa d sa $g / mga device /* ; gawin

echo -Ito ay ' \t $(lspci -nns ${d##*/}) '

tapos na ;

tapos na ;

Kapag tapos ka na, pindutin + X sinundan ng AT at upang i-save ang mga pagbabago sa print-iommu-groups file.

Gawin ang print-iommu-groups script file executable gamit ang sumusunod na command:

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

Ngayon, maaari mong patakbuhin ang print-iommu-groups command tulad ng sumusunod upang i-print ang mga IOMMU na grupo ng mga PCI/PCIE device na naka-install sa iyong Proxmox VE 8 server:

$ print-iommu-groups

Tulad ng nakikita mo, ang mga pangkat ng IOMMU ng mga PCI/PCIE na device na naka-install sa aking Proxmox VE 8 server ay naka-print.

Sinusuri kung ang Iyong NVIDIA GPU ay Maaaring Maging Passthrough sa isang Proxmox VE 8 Virtual Machine (VM)

Upang maipasa ang isang PCI/PCIE device sa isang Proxmox VE 8 virtual machine (VM), dapat ay nasa sarili nitong pangkat ng IOMMU. Kung 2 o higit pang mga PCI/PCIE device ang nagbabahagi ng isang IOMMU na pangkat, hindi mo madadaanan ang alinman sa mga PCI/PCIE device ng pangkat na iyon ng IOMMU sa anumang Proxmox VE 8 virtual machine (VM).

Kaya, kung ang iyong NVIDIA GPU at ang audio device nito ay nasa sarili nitong grupo ng IOMMU, maaari mong ipasa ang NVIDIA GPU sa anumang Proxmox VE 8 virtual machine (VMs).

Sa aking Proxmox VE 8 server, gumagamit ako ng MSI X570 ACE motherboard na ipinares sa isang Ryzen 3900X processor at Gigabyte RTX 4070 NVIDIA GPU. Ayon sa mga grupo ng IOMMU ng aking system, maaari akong dumaan sa NVIDIA RTX 4070 GPU (IOMMU Group 21), RTL8125 2.5Gbe Ethernet Controller (IOMMU Group 20), Intel I211 Gigabit Ethernet Controller (IOMMU Group 19), isang USB 3.0 controller ( IOMMU Group 24), at ang Onboard HD Audio Controller (IOMMU Group 25).

$ print-iommu-groups

Dahil ang pangunahing pokus ng artikulong ito ay ang pag-configure ng Proxmox VE 8 para sa pagdaan sa NVIDIA GPU hanggang sa Proxmox VE 8 virtual machine, ang NVIDIA GPU at ang Audio device nito ay dapat nasa sarili nitong pangkat ng IOMMU.

Pagsuri para sa mga Kernel Module sa Blacklist para sa PCI/PCIE Passthrough sa Proxmox VE 8

Upang makapasa sa isang PCI/PCIE device sa isang Proxmox VE 8 virtual machine (VM), dapat mong tiyakin na pinipilit ito ng Proxmox VE na gamitin ang VFIO kernel module sa halip na ang orihinal nitong kernel module.

Upang malaman ang kernel module na ginagamit ng iyong PCI/PCIE device, kakailanganin mong malaman ang vendor ID at device ID ng mga PCI/PCIE device na ito. Mahahanap mo ang vendor ID at device ID ng mga PCI/PCIE device gamit ang print-iommu-groups utos.

$ print-iommu-groups

Halimbawa, ang vendor ID at device ID ng aking NVIDIA RTX 4070 GPU ay 10de:2786 at ang audio device nito ay 10de:22bc .

Upang mahanap ang kernel module ng isang PCI/PCIE device 10de:2786 (ang aking NVIDIA RTX 4070 GPU) ay gumagamit, patakbuhin ang lspci utos tulad ng sumusunod:

$ lspci -v -d 10de:2786

Tulad ng nakikita mo, ang aking NVIDIA RTX 4070 GPU ay gumagamit ng nvidiafb at bago kernel modules bilang default. Kaya, hindi sila maipapasa sa isang Proxmox VE 8 virtual machine (VM) sa puntong ito.

Ang Audio device ng aking NVIDIA RTX 4070 GPU ay gumagamit ng snd_hda_intel kernel module. Kaya, hindi rin ito maipapasa sa isang Proxmox VE 8 virtual machine sa puntong ito.

$ lspci -v -d 10de:22bc

Kaya, para madaanan ang aking NVIDIA RTX 4070 GPU at ang audio device nito sa isang Proxmox VE 8 virtual machine (VM), dapat kong i-blacklist ang nvidiafb , bago , at snd_hda_intel kernel modules at i-configure ang aking NVIDIA RTX 4070 GPU at ang audio device nito upang gamitin ang vfio-pci kernel module.

Blacklisting Mga Kinakailangang Kernel Module para sa PCI/PCIE Passthrough sa Proxmox VE 8

Upang i-blacklist ang mga kernel module sa Proxmox VE 8, buksan ang /etc/modprobe.d/blacklist.conf file gamit ang nano text editor tulad ng sumusunod:

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

Upang i-blacklist ang mga kernel module bago , nvidiafb , at snd_hda_intel kernel modules (upang dumaan sa NVIDIA GPU), idagdag ang mga sumusunod na linya sa /etc/modprobe.d/blacklist.conf file:

blacklist nouveau

blacklist nvidiafb

blacklist snd_hda_intel

Kapag tapos ka na, pindutin + X sinundan ng AT at upang i-save ang /etc/modprobe.d/blacklist.conf file.

Pag-configure ng Iyong NVIDIA GPU na Gamitin ang VFIO Kernel Module sa Proxmox VE 8

Para i-configure ang PCI/PCIE device (i.e. iyong NVIDIA GPU) para gamitin ang VFIO kernel module, kailangan mong malaman ang kanilang vendor ID at device ID.

Sa kasong ito, ang vendor ID at device ID ng aking NVIDIA RTX 4070 GPU at ang audio device nito ay 10de:2786 at 10de:22bc .

Upang i-configure ang iyong NVIDIA GPU na gamitin ang VFIO kernel module, buksan ang /etc/modprobe.d/vfio.conf file gamit ang nano text editor tulad ng sumusunod:

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

Upang i-configure ang iyong NVIDIA GPU at ang audio device nito gamit ang : 10de:2786 at 10de:22bc (sabihin natin) ayon sa pagkakabanggit upang magamit ang VFIO kernel module, idagdag ang sumusunod na linya sa /etc/modprobe.d/vfio.conf file.

mga pagpipilian vfio-pci id=10de:2786,10de:22bc

Kapag tapos ka na, pindutin + X sinundan ng AT at upang i-save ang /etc/modprobe.d/vfio.conf file.

Ngayon, i-update ang initramfs ng Proxmove VE 8 gamit ang sumusunod na command:

$ update-initramfs -u -k lahat

Kapag na-update ang initramfs, mag-click sa I-reboot upang i-restart ang iyong Proxmox VE 8 server para magkabisa ang mga pagbabago.

Kapag nag-boot na ang iyong Proxmox VE 8 server, dapat mong makita na ang iyong NVIDIA GPU at ang audio device nito ( 10de:2786 at 10de:22bc sa aking kaso) ay gumagamit ng vfio-pci kernel module. Ngayon, handa nang maipasa ang iyong NVIDIA GPU sa isang Proxmox VE 8 virtual machine.

$ lspci -v -d 10de:2786

$ lspci -v -d 10de:22bc

Ipasa ang NVIDIA GPU sa isang Proxmox VE 8 Virtual Machine (VM)

Ngayong handa na ang iyong NVIDIA GPU para sa passthrough sa mga Proxmox VE 8 virtual machine (VM), maaari mong ipasa ang iyong NVIDIA GPU sa iyong gustong Proxmox VE 8 virtual machine at i-install ang mga driver ng NVIDIA GPU depende sa operating system na iyong ginagamit. na virtual machine gaya ng dati.

Para sa detalyadong impormasyon kung paano i-passthrough ang iyong NVIDIA GPU sa isang Proxmox VE 8 virtual machine (VM) na may iba't ibang operating system na naka-install, basahin ang isa sa mga sumusunod na artikulo:

  • Paano Ipasa ang isang NVIDIA GPU sa isang Windows 11 Proxmox VE 8 Virtual Machine (VM)
  • Paano Ipasa ang isang NVIDIA GPU sa isang Ubuntu 24.04 LTS Proxmox VE 8 Virtual Machine (VM)
  • Paano Ipasa ang isang NVIDIA GPU sa isang LinuxMint 21 Proxmox VE 8 Virtual Machine (VM)
  • Paano Ipasa ang isang NVIDIA GPU sa isang Debian 12 Proxmox VE 8 Virtual Machine (VM)
  • Paano Ipasa ang isang NVIDIA GPU sa isang Elementary OS 8 Proxmox VE 8 Virtual Machine (VM)
  • Paano Ipasa ang isang NVIDIA GPU sa isang Fedora 39+ Proxmox VE 8 Virtual Machine (VM)
  • Paano Ipasa ang isang NVIDIA GPU sa isang Arch Linux Proxmox VE 8 Virtual Machine (VM)
  • Paano Ipasa ang isang NVIDIA GPU sa isang Red Hat Enterprise Linux 9 (RHEL 9) Proxmox VE 8 Virtual Machine (VM)

Nagkakaroon Pa rin ng mga Problema sa PCI/PCIE Passthrough sa Proxmox VE 8 Virtual Machines (VMs)?

Kahit na matapos mong subukan ang lahat ng nakalista sa artikulong ito nang tama, kung hindi pa rin gumagana para sa iyo ang passthrough ng PCI/PCIE, siguraduhing subukan ang ilan sa Proxmox VE PCI/PCIE passthrough tricks at/o workarounds na magagamit mo para makakuha ng PCI/PCIE passthrough work sa iyong hardware.

Konklusyon

Sa artikulong ito, ipinakita ko sa iyo kung paano i-configure ang iyong Proxmox VE 8 server para sa PCI/PCIE passthrough para madaanan mo ang mga PCI/PCIE device (ibig sabihin, ang iyong NVIDIA GPU) sa iyong Proxmox VE 8 virtual machine (VMs). Ipinakita ko rin sa iyo kung paano malalaman ang mga kernel module na kailangan mong i-blacklist at kung paano i-blacklist ang mga ito para sa matagumpay na passthrough ng iyong mga gustong PCI/PCIE device (ibig sabihin, ang iyong NVIDIA GPU) sa isang Proxmox VE 8 virtual machine. Sa wakas, ipinakita ko sa iyo kung paano i-configure ang iyong mga gustong PCI/PCIE na device (i.e. iyong NVIDIA GPU) para gamitin ang VFIO kernel modules, na isa ring mahalagang hakbang para sa matagumpay na passthrough ng iyong mga gustong PCI/PCIE device (i.e. iyong NVIDIA GPU ) sa isang Proxmox VE 8 virtual machine (VM).

Mga sanggunian

  1. PCI(e) Passthrough – Proxmox VE
  2. PCI Passthrough – Proxmox VE
  3. Ang ultimate gaming virtual machine sa proxmox – YouTube