LaBlog

Proxmox GPU Passthrough Adım Adım Anlatımı

04.10.2024

Proxmox GPU Passthrough

Proxmox GPU Passthrough Adım Adım Anlatımı

1.PCI Cihazlarını Kontrol Edelim

Proxmox GPU Passthrough Adım Adım Anlatımı

Proxmox Web Console'dan ''SHELL'' veya bilgisayarımızdan terminal emülatörü yardımıyla SSH üzerinden giriş yapabiliriz. Daha sonra ; lspci -v komutunu yazıyoruz ve aşağıdaki göreceğiniz üzere NVIDIA ekran kartımızın bilgilerini görüntülüyoruz. # NOTE: Initially, it might not show the kernel driver vfio-pci, please check the kernel driver. 01:00.0 VGA compatible controller: NVIDIA Corporation TU116 [GeForce GTX 1650 SUPER] (rev a1) (prog-if 00 [VGA controller]) Subsystem: ZOTAC International (MCO) Ltd. TU116 [GeForce GTX 1650 SUPER] Flags: bus master, fast devsel, latency 0, IRQ 11, IOMMU group 1 Memory at de000000 (32-bit, non-prefetchable) [size=16M] Memory at c0000000 (64-bit, prefetchable) [size=256M] Memory at d0000000 (64-bit, prefetchable) [size=32M] I/O ports at e000 [size=128] Expansion ROM at 000c0000 [disabled] [size=128K] Capabilities: [60] Power Management version 3 Capabilities: [68] MSI: Enable- Count=1/1 Maskable- 64bit+ Capabilities: [78] Express Legacy Endpoint, MSI 00 Capabilities: [100] Virtual Channel Capabilities: [250] Latency Tolerance Reporting Capabilities: [258] L1 PM Substates Capabilities: [128] Power Budgeting Capabilities: [420] Advanced Error Reporting Capabilities: [600] Vendor Specific Information: ID=0001 Rev=1 Len=024 Capabilities: [900] Secondary PCI Express Capabilities: [bb0] Physical Resizable BAR Kernel driver in use: vfio-pci Kernel modules: nvidiafb, nouveau 01:00.1 Audio device: NVIDIA Corporation TU116 High Definition Audio Controller (rev a1) Subsystem: ZOTAC International (MCO) Ltd. TU116 High Definition Audio Controller Flags: bus master, fast devsel, latency 0, IRQ 10, IOMMU group 1 Memory at df080000 (32-bit, non-prefetchable) [size=16K] Capabilities: [60] Power Management version 3 Capabilities: [68] MSI: Enable- Count=1/1 Maskable- 64bit+ Capabilities: [78] Express Endpoint, MSI 00 Capabilities: [100] Advanced Error Reporting Kernel driver in use: vfio-pci Kernel modules: snd_hda_intel

2. Detaylı NVIDIA Cihaz Bilgilerini Kontrol Edelim

lspci | grep -i nvidia Yukarıdaki komutu kullanarak sadece NVIDIA ürünümüz hakkında ki bilgileri getirmesini istedik. 01:00.0 VGA compatible controller: NVIDIA Corporation TU116 [GeForce GTX 1650 SUPER] (rev a1) 01:00.1 Audio device: NVIDIA Corporation TU116 High Definition Audio Controller (rev a1) 01:00.2 USB controller: NVIDIA Corporation TU116 USB 3.1 Host Controller (rev a1) 01:00.3 Serial bus controller: NVIDIA Corporation TU116 USB Type-C UCSI Controller (rev a1) Daha sonra bu cihazların ID bilgilerini öğrenmek için ise; lspci -nn | grep -i nvidia 01:00.0 VGA compatible controller [0300]: NVIDIA Corporation TU116 [GeForce GTX 1650 SUPER] [10de:2187] (rev a1) 01:00.1 Audio device [0403]: NVIDIA Corporation TU116 High Definition Audio Controller [10de:1aeb] (rev a1) 01:00.2 USB controller [0c03]: NVIDIA Corporation TU116 USB 3.1 Host Controller [10de:1aec] (rev a1) 01:00.3 Serial bus controller [0c80]: NVIDIA Corporation TU116 USB Type-C UCSI Controller [10de:1aed] (rev a1)

3.GRUB Konfigürasyonu Güncelleme

Proxmox serverımızın GRUB konfigürasyonuna gerekli parametreleri eklememiz gerkeiyor bunun için ise; vim /etc/default/grub --> Grub dosyasını vi editörü ile açıyoruz burada ''vim'' editörü yerine ''nano'' editörünü de kullanabilirsiniz. ... GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt initcall_blacklist=sysfb_init" # Alternative configuration # GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on pcie_acs_override=downstream initcall_blacklist=sysfb_init nofb video=vesafb:off,simplefb:off,efifb:off rd.driver.blacklist=snd_hda_intel,nvidia,nvidiafb,nouveau module.blacklist=snd_hda_intel,nvidia,nvidiafb,nouveau vfio-pci.ids=10de:2187,10de:1aeb" ... Yukarıdaki güncellemelerini yaptıktan sonra kaydedip çıkıyoruz. Sonrasında ise; update-grub --> bu komut ile GRUB konfigürasyon dosyasında yapmış olduğumuz değişiklikleri sisteme bildirmiş oluyoruz.

4.VFIO Modüllerinin Yüklenmesi

Önyükleme sırasında yüklenecek vfio modüllerini ekleyiyoruz. vim /etc/modules --> burdaki konfigürasyon dosyasını editör ile açıyoruz. vfio vfio_iommu_type1 vfio_pci vfio_virqfd vfio_nvidia Yukarıdaki modül güncellemelerini yazıp kaydedip çıkıyoruz.

5.Blacklist Modülü Konfigürasyonu

Vfio-pci'nin kullanıldığından emin olmak için varsayılan NVIDIA sürücülerini kara listeye alıyoruz. vim /etc/modprobe.d/blacklist.conf --> burdaki konfigürasyon dosyasını editör ile açıyoruz. blacklist nouveau blacklist nvidia blacklist nvidiafb blacklist snd_hda_intel Yukarıdaki modül güncellemelerini yazıp kaydedip çıkıyoruz.

6. VFIO Konfigürasyonu

GPU ve ses cihazı kimliklerini vfio yapılandırmasına ekliyoruz. vim /etc/modprobe.d/vfio.conf --> burdaki konfigürasyon dosyasını editör ile açıyoruz. options vfio-pci ids=10de:2187,10de:1aeb disable_vga=1 disable_idle_d3=1 initcall_blacklist=sysfb_init Yukarıdaki modül güncellemelerini yazıp kaydedip çıkıyoruz.

7. Initramfs ve Reboot İşlemi

Değişiklikleri uygulamak için initramfs'ı güncelleyip, Proxmox sunucusunu yeniden başlatıyoruz. update-initramfs -u -k all reboot

8. VFIO Sürücüsünü Kontrol Ediyoruz

lsmod | grep vfio --> Komutunu kullanıyoruz. vfio_pci 16384 0 vfio_pci_core 86016 1 vfio_pci irqbypass 12288 2 vfio_pci_core,kvm vfio_iommu_type1 49152 0 vfio 69632 3 vfio_pci_core,vfio_iommu_type1,vfio_pci iommufd 98304 1 vfio # Run lspci -v again to confirm both video and audio components are bound to vfio-pci lspci -v

9. IOMMU Groups Kontrolü

IOMMU gruplarını doğrulamak için bir komut dosyası oluşturuyoruz. vim iommu_group.sh --> bu komut ile vim editörünü kullanarak bir dosya oluşturup, editörü açıyoruz Aşağıda ki kodları ekliyoruz. #!/bin/bash shopt -s nullglob for g in $(find /sys/kernel/iommu_groups/* -maxdepth 0 -type d | sort -V); do echo "IOMMU Group ${g##*/}:" for d in $g/devices/*; do echo -e "\t$(lspci -nns ${d##*/})" done; done; chmod +x iommu_group.sh ./iommu_group.sh ... 01:00.0 VGA compatible controller [0300]: NVIDIA Corporation TU116 [GeForce GTX 1650 SUPER] [10de:2187] (rev a1) 01:00.1 Audio device [0403]: NVIDIA Corporation TU116 High Definition Audio Controller [10de:1aeb] (rev a1) 01:00.2 USB controller [0c03]: NVIDIA Corporation TU116 USB 3.1 Host Controller [10de:1aec] (rev a1) 01:00.3 Serial bus controller [0c80]: NVIDIA Corporation TU116 USB Type-C UCSI Controller [10de:1aed] (rev a1) ...

10. Windows VM Oluşturma

Biz Windows 11 Pro kullanıyoruz. Eksik sürücüleri eklemek için VirtIO sürücüsünün ISO'sunu bağladığınızdan emin olun . Kurulum sırasında diğer her şey her zamanki gibi ilerleyecektir. GPU PASSTHROUGH eklemek için bir PCI cihazı ekleyin ve Tüm İşlevler, ROM-Bar ve PCI-Express seçenekleri işaretliyken GPU'nuzu seçin.

Proxmox GPU Passthrough Adım Adım Anlatımı
Proxmox GPU Passthrough Adım Adım Anlatımı
Proxmox GPU Passthrough Adım Adım Anlatımı

11. Final WINDOWS'u BAŞLATIYORUZ !

NVIDIA GeForce sürücülerini yüklüyoruz.

Proxmox GPU Passthrough Adım Adım Anlatımı
Proxmox GPU Passthrough Adım Adım Anlatımı