Proxmox VE 8 PCI/PCIE Passthrough ที่สำคัญ การปรับแต่ง การแก้ไข และวิธีแก้ปัญหา

Proxmox Ve 8 Pci Pcie Passthrough Thi Sakhay Kar Prab Taeng Kar Kaekhi Laea Withi Kae Payha



ในช่วงไม่กี่ปีที่ผ่านมา การรองรับ PCI/PCIE (เช่น GPU passthrough) ได้รับการปรับปรุงอย่างมากในฮาร์ดแวร์รุ่นใหม่ ดังนั้นขาประจำ คู่มือการส่งผ่าน Proxmox VE PCI/PCIE และ GPU ควรใช้งานได้กับฮาร์ดแวร์ใหม่ส่วนใหญ่ อย่างไรก็ตาม คุณอาจประสบปัญหามากมายในการส่งผ่าน GPU และอุปกรณ์ PCI/PCIE อื่นๆ บนเครื่องเสมือน Proxmox VE มีการปรับแต่ง/แก้ไข/วิธีแก้ปัญหามากมายสำหรับปัญหาการส่งผ่าน Proxmox VE GPU และ PCI/PCIE ทั่วไปบางส่วน

ในบทความนี้ ฉันจะพูดถึงปัญหาการส่งผ่าน Proxmox VE PCI/PCIE และการส่งผ่าน GPU ที่พบบ่อยที่สุด และขั้นตอนที่คุณสามารถทำได้เพื่อแก้ไขปัญหาเหล่านั้น









สารบัญ

  1. จะทำอย่างไรถ้า IOMMU Interrupt Remapping ไม่รองรับ?
  2. จะทำอย่างไรถ้า GPU ของฉัน (หรืออุปกรณ์ PCI/PCIE) ไม่อยู่ในกลุ่ม IOMMU ของตัวเอง?
  3. ฉันจะขึ้นบัญชีดำไดรเวอร์ GPU AMD บน Proxmox VE ได้อย่างไร
  4. ฉันจะขึ้นบัญชีดำไดรเวอร์ NVIDIA GPU บน Proxmox VE ได้อย่างไร
  5. ฉันจะขึ้นบัญชีดำไดรเวอร์ Intel GPU บน Proxmox VE ได้อย่างไร
  6. จะตรวจสอบว่า GPU ของฉัน (หรืออุปกรณ์ PCI/PCIE) ใช้ไดรเวอร์ VFIO บน Proxmox VE ได้อย่างไร
  7. ฉันขึ้นบัญชีดำไดรเวอร์ AMU GPU แล้ว แต่ GPU ไม่ได้ใช้ไดรเวอร์ VFIO จะต้องทำอย่างไร?
  8. ฉันขึ้นบัญชีดำไดรเวอร์ NVIDIA GPU แล้ว แต่ GPU ไม่ได้ใช้ไดรเวอร์ VFIO จะต้องทำอย่างไร?
  9. ฉันขึ้นบัญชีดำไดรเวอร์ Intel GPU แล้ว แต่ GPU ไม่ได้ใช้ไดรเวอร์ VFIO จะต้องทำอย่างไร?
  10. GPU ตัวเดียวใช้ไดรเวอร์ VFIO แต่เมื่อกำหนดค่า GPU ตัวที่สอง มันไม่ทำงาน เพราะเหตุใด
  11. เหตุใดจึงปิดใช้งานอนุญาโตตุลาการ VGA สำหรับ GPU และทำอย่างไร
  12. จะเกิดอะไรขึ้นหาก GPU ของฉันยังคงไม่ได้ใช้ไดรเวอร์ VFIO แม้ว่าจะกำหนดค่า VFIO แล้วก็ตาม
  13. GPU Passthrough ไม่พบข้อผิดพลาด แต่ฉันได้รับหน้าจอสีดำบนจอภาพที่เชื่อมต่อกับ GPU ที่ส่งผ่านไปยัง Proxmox VE VM เพราะเหตุใด
  14. Bug การรีเซ็ตผู้ขาย AMD คืออะไร และจะแก้ไขได้อย่างไร
  15. จะให้ vBIOS สำหรับ GPU ที่ผ่านบนเครื่องเสมือน Proxmox VE ได้อย่างไร
  16. จะทำอย่างไรถ้าบางแอพขัดข้องกับ Proxmox VE Windows Virtual Machine?
  17. วิธีแก้ปัญหาเสียงแคร็ก/ปัญหาเสียง HDMI บนเครื่องเสมือน Proxmox VE Linux
  18. จะอัพเดต Proxmox VE initramfs ได้อย่างไร
  19. จะอัพเดต Proxmox VE GRUB Bootloader ได้อย่างไร
  20. บทสรุป
  21. อ้างอิง



จะทำอย่างไรหากไม่รองรับ IOMMU Interrupt Remapping

สำหรับการส่งผ่าน PCI/PCIE การแมปขัดจังหวะ IOMMU ใหม่ถือเป็นสิ่งสำคัญ





หากต้องการตรวจสอบว่าโปรเซสเซอร์ของคุณรองรับการแมปขัดจังหวะ IOMMU หรือไม่ ให้รันคำสั่งด้านล่าง:

$ dmesg | grep -i รีแมป



หากโปรเซสเซอร์ของคุณรองรับการแมปขัดจังหวะ IOMMU คุณจะเห็นเอาต์พุตบางประเภทที่ยืนยันว่าเปิดใช้งานการแมปขัดจังหวะใหม่แล้ว มิฉะนั้น คุณจะไม่เห็นผลลัพธ์

หากโปรเซสเซอร์ของคุณไม่รองรับการแมปการขัดจังหวะ IOMMU คุณจะต้องกำหนดค่าการขัดจังหวะที่ไม่ปลอดภัยบนเซิร์ฟเวอร์ Proxmox VE ของคุณเพื่อส่งผ่านอุปกรณ์ PCI/PCIE บนเครื่องเสมือน Proxmox VE

หากต้องการกำหนดค่าการขัดจังหวะที่ไม่ปลอดภัยบน Proxmox VE ให้สร้างไฟล์ใหม่ iommu_unsafe_interrupts.conf ใน /etc/modprobe.d ไดเร็กทอรีและเปิดด้วยโปรแกรมแก้ไขข้อความนาโนดังนี้:

$ นาโน /etc/modprobe.d/iommu_unsafe_interrupts.conf

เพิ่มบรรทัดต่อไปนี้ใน iommu_unsafe_interrupts.conf ไฟล์แล้วกด - เอ็กซ์ ติดตามโดย และ และ <ป้อน> เพื่อบันทึกไฟล์

ตัวเลือก vfio_iommu_type1 Allow_unsafe_interrupts=1

เมื่อเสร็จแล้วคุณต้อง อัปเดต initramfs ของเซิร์ฟเวอร์ Proxmox VE ของคุณ -

จะทำอย่างไรถ้า GPU ของฉัน (หรืออุปกรณ์ PCI/PCIE) ไม่อยู่ในกลุ่ม IOMMU ของตัวเอง?

หากเซิร์ฟเวอร์ของคุณมีสล็อต PCI/PCIE หลายช่อง คุณสามารถย้าย GPU ไปยังสล็อต PCI/PCIE อื่นได้ และดูว่า GPU อยู่ในกลุ่ม IOMMU ของตัวเองหรือไม่

หากไม่ได้ผล คุณสามารถลองเปิดใช้งานแพทช์เคอร์เนลแทนที่ ACS บน Proxmox VE ได้

หากต้องการลองเปิดใช้งานแพตช์เคอร์เนลแทนที่ ACS บน Proxmox VE ให้เปิดไฟล์ /etc/default/grub ไฟล์ด้วยโปรแกรมแก้ไขข้อความนาโนดังต่อไปนี้:

$ นาโน /etc/default/grub

เพิ่มตัวเลือกการบูตเคอร์เนล pcie_acs_override=ดาวน์สตรีม ในตอนท้ายของ GRUB_CMDLINE_LINUX_DEFAULT -

เมื่อเสร็จแล้วให้กด - เอ็กซ์ ติดตามโดย และ และ <ป้อน> เพื่อบันทึกไฟล์และตรวจสอบให้แน่ใจ อัปเดต bootloader Proxmox VE GRUB เพื่อให้การเปลี่ยนแปลงมีผล

คุณควรมีการจัดกลุ่ม IOMMU ที่ดีขึ้นเมื่อเซิร์ฟเวอร์ Proxmox VE ของคุณบูท

หาก GPU ของคุณยังไม่มีกลุ่ม IOMMU ของตัวเอง คุณสามารถก้าวไปอีกขั้นหนึ่งได้โดยใช้ pcie_acs_override=ดาวน์สตรีม มัลติฟังก์ชั่น แทน. คุณควรมีการจัดกลุ่ม IOMMU ที่ดียิ่งขึ้น

ถ้า pcie_acs_override=ดาวน์สตรีม มัลติฟังก์ชั่น ส่งผลให้ IOMMU จัดกลุ่มได้ดีขึ้น pcie_acs_override=ดาวน์สตรีม แล้วทำไมถึงใช้ pcie_acs_override=ดาวน์สตรีม เลยเหรอ?

จุดประสงค์ของการแทนที่ PCIE ACS คือการหลอกเคอร์เนลให้คิดว่าอุปกรณ์ PCIE ถูกแยกออกจากกันเมื่อไม่ได้อยู่ในความเป็นจริง ดังนั้นการแทนที่ PCIE ACS จึงมาพร้อมกับปัญหาด้านความปลอดภัยและความเสถียร นั่นเป็นเหตุผลที่คุณควรลองใช้ตัวเลือกแทนที่ PCIE ACS ที่ก้าวร้าวน้อยกว่า pcie_acs_override=ดาวน์สตรีม ก่อนอื่นและดูว่าปัญหาของคุณได้รับการแก้ไขหรือไม่ ถ้า pcie_acs_override=ดาวน์สตรีม ใช้งานไม่ได้เพียงเท่านี้คุณควรใช้ตัวเลือกที่ก้าวร้าวกว่านี้ pcie_acs_override=ดาวน์สตรีม มัลติฟังก์ชั่น -

ฉันจะขึ้นบัญชีดำไดรเวอร์ GPU AMD บน Proxmox VE ได้อย่างไร

หากคุณต้องการส่งผ่าน AMD GPU บนเครื่องเสมือน Proxmox VE คุณต้องขึ้นบัญชีดำไดรเวอร์ AMD GPU และตรวจสอบให้แน่ใจว่าใช้ไดรเวอร์ VFIO แทน

ขั้นแรกให้เปิด /etc/modprobe.d/blacklist.conf ไฟล์ด้วยโปรแกรมแก้ไขข้อความนาโนดังต่อไปนี้:

$ นาโน /etc/modprobe.d/blacklist.conf

หากต้องการขึ้นบัญชีดำไดรเวอร์ AMD GPU ให้เพิ่มบรรทัดต่อไปนี้ใน /etc/modprobe.d/blacklist.conf ไฟล์แล้วกด - เอ็กซ์ ติดตามโดย และ และ <ป้อน> เพื่อบันทึกไฟล์

บัญชีดำ radeon

บัญชีดำ amdgpu

เมื่อเสร็จแล้วคุณต้อง อัปเดต initramfs ของเซิร์ฟเวอร์ Proxmox VE ของคุณ เพื่อให้การเปลี่ยนแปลงมีผล

ฉันจะขึ้นบัญชีดำไดรเวอร์ NVIDIA GPU บน Proxmox VE ได้อย่างไร

หากคุณต้องการส่งผ่าน NVIDIA GPU บนเครื่องเสมือน Proxmox VE คุณต้องขึ้นบัญชีดำไดรเวอร์ NVIDIA GPU และตรวจสอบให้แน่ใจว่าใช้ไดรเวอร์ VFIO แทน

ขั้นแรกให้เปิด /etc/modprobe.d/blacklist.conf ไฟล์ด้วยโปรแกรมแก้ไขข้อความนาโนดังต่อไปนี้:

$ นาโน /etc/modprobe.d/blacklist.conf

หากต้องการขึ้นบัญชีดำไดรเวอร์ NVIDIA GPU ให้เพิ่มบรรทัดต่อไปนี้ใน /etc/modprobe.d/blacklist.conf ไฟล์แล้วกด - เอ็กซ์ ติดตามโดย และ และ <ป้อน> เพื่อบันทึกไฟล์

บัญชีดำนูโว

บัญชีดำ NVIDIA

บัญชีดำ nvidiafb

บัญชีดำ nvidia_drm

เมื่อเสร็จแล้วคุณต้อง อัปเดต initramfs ของเซิร์ฟเวอร์ Proxmox VE ของคุณ เพื่อให้การเปลี่ยนแปลงมีผล

ฉันจะขึ้นบัญชีดำไดรเวอร์ Intel GPU บน Proxmox VE ได้อย่างไร

หากคุณต้องการส่งผ่าน Intel GPU บนเครื่องเสมือน Proxmox VE คุณต้องขึ้นบัญชีดำไดรเวอร์ Intel GPU และตรวจสอบให้แน่ใจว่าใช้ไดรเวอร์ VFIO แทน

ขั้นแรกให้เปิด /etc/modprobe.d/blacklist.conf ไฟล์ด้วยโปรแกรมแก้ไขข้อความนาโนดังต่อไปนี้:

$ นาโน /etc/modprobe.d/blacklist.conf

หากต้องการขึ้นบัญชีดำไดรเวอร์ Intel GPU ให้เพิ่มบรรทัดต่อไปนี้ใน /etc/modprobe.d/blacklist.conf ไฟล์แล้วกด - เอ็กซ์ ติดตามโดย และ และ <ป้อน> เพื่อบันทึกไฟล์

บัญชีดำ snd_hda_intel

บัญชีดำ snd_hda_codec_hdmi

บัญชีดำ i915

เมื่อเสร็จแล้วคุณต้อง อัปเดต initramfs ของเซิร์ฟเวอร์ Proxmox VE ของคุณ เพื่อให้การเปลี่ยนแปลงมีผล

จะตรวจสอบว่า GPU ของฉัน (หรืออุปกรณ์ PCI/PCIE) ใช้ไดรเวอร์ VFIO บน Proxmox VE ได้อย่างไร

หากต้องการตรวจสอบว่า GPU ของคุณหรืออุปกรณ์ PCI/PCIE ที่ต้องการใช้ไดรเวอร์ VFIO หรือไม่ ให้รันคำสั่งต่อไปนี้:

$ lspci -v

หาก GPU หรืออุปกรณ์ PCI/PCIE ของคุณใช้ไดรเวอร์ VFIO คุณจะเห็นเส้นดังกล่าว ไดรเวอร์เคอร์เนลที่ใช้งานอยู่: vfio-pci ตามที่ระบุไว้ในภาพหน้าจอด้านล่าง

ฉันขึ้นบัญชีดำไดรเวอร์ AMU GPU แล้ว แต่ GPU ไม่ได้ใช้ไดรเวอร์ VFIO จะต้องทำอย่างไร?

ในบางครั้ง การขึ้นบัญชีดำไดรเวอร์ AMD GPU นั้นไม่เพียงพอ คุณยังต้องกำหนดค่าไดรเวอร์ AMD GPU ให้โหลดหลังจากไดรเวอร์ VFIO

หากต้องการทำเช่นนั้น ให้เปิดไฟล์ /etc/modprobe.d/vfio.conf ไฟล์ด้วยโปรแกรมแก้ไขข้อความนาโนดังต่อไปนี้:

$ นาโน /etc/modprobe.d/vfio.conf

หากต้องการกำหนดค่าไดรเวอร์ AMD GPU ให้โหลดหลังจากไดรเวอร์ VFIO ให้เพิ่มบรรทัดต่อไปนี้ใน /etc/modprobe.d/vfio.conf ไฟล์แล้วกด - เอ็กซ์ ติดตามโดย และ และ <ป้อน> เพื่อบันทึกไฟล์

softdep radeon ก่อน: vfio-pci

softdep amdgpu ก่อน: vfio-pci

เมื่อเสร็จแล้วคุณต้อง อัปเดต initramfs ของเซิร์ฟเวอร์ Proxmox VE ของคุณ เพื่อให้การเปลี่ยนแปลงมีผล

ฉันขึ้นบัญชีดำไดรเวอร์ NVIDIA GPU แล้ว แต่ GPU ไม่ได้ใช้ไดรเวอร์ VFIO จะต้องทำอย่างไร?

ในบางครั้ง การขึ้นบัญชีดำไดรเวอร์ NVIDIA GPU ยังไม่เพียงพอ คุณยังต้องกำหนดค่าไดรเวอร์ NVIDIA GPU ให้โหลดหลังจากไดรเวอร์ VFIO

หากต้องการทำเช่นนั้น ให้เปิดไฟล์ /etc/modprobe.d/vfio.conf ไฟล์ด้วยโปรแกรมแก้ไขข้อความนาโนดังต่อไปนี้:

$ นาโน /etc/modprobe.d/vfio.conf

หากต้องการกำหนดค่าไดรเวอร์ NVIDIA GPU ให้โหลดหลังจากไดรเวอร์ VFIO ให้เพิ่มบรรทัดต่อไปนี้ใน /etc/modprobe.d/vfio.conf ไฟล์แล้วกด - เอ็กซ์ ติดตามโดย และ และ <ป้อน> เพื่อบันทึกไฟล์

softdep ใหม่ก่อน: vfio-pci

softdep nvidia สำหรับ: vfio-pci

softdep nvidiafb สำหรับ: vfio-pci

softdep nvidia_drm ก่อน: vfio-pci

softdep drm ก่อน: vfio-pci

เมื่อเสร็จแล้วคุณต้อง อัปเดต initramfs ของเซิร์ฟเวอร์ Proxmox VE ของคุณ เพื่อให้การเปลี่ยนแปลงมีผล

ฉันขึ้นบัญชีดำไดรเวอร์ Intel GPU แล้ว แต่ GPU ไม่ได้ใช้ไดรเวอร์ VFIO จะต้องทำอย่างไร?

ในบางครั้ง การขึ้นบัญชีดำไดรเวอร์ Intel GPU นั้นไม่เพียงพอ คุณยังต้องกำหนดค่าไดรเวอร์ Intel GPU ให้โหลดหลังจากไดรเวอร์ VFIO

หากต้องการทำเช่นนั้น ให้เปิดไฟล์ /etc/modprobe.d/vfio.conf ไฟล์ด้วยโปรแกรมแก้ไขข้อความนาโนดังต่อไปนี้:

$ นาโน /etc/modprobe.d/vfio.conf

หากต้องการกำหนดค่าไดรเวอร์ Intel GPU ให้โหลดหลังจากไดรเวอร์ VFIO ให้เพิ่มบรรทัดต่อไปนี้ใน /etc/modprobe.d/vfio.conf ไฟล์แล้วกด - เอ็กซ์ ติดตามโดย และ และ <ป้อน> เพื่อบันทึกไฟล์

softdep snd_hda_intel ก่อน: vfio-pci

softdep snd_hda_codec_hdmi ก่อน: vfio-pci

softdep i915 พื้นฐาน: vfio-pci

เมื่อเสร็จแล้วคุณต้อง อัปเดต initramfs ของเซิร์ฟเวอร์ Proxmox VE ของคุณ เพื่อให้การเปลี่ยนแปลงมีผล

GPU ตัวเดียวใช้ไดรเวอร์ VFIO แต่เมื่อกำหนดค่า GPU ตัวที่สอง มันไม่ทำงาน เพราะเหตุใด

ใน /etc/modprobe.d/vfio.conf คุณต้องเพิ่ม ID ของอุปกรณ์ PCI/PCIE ทั้งหมดที่คุณต้องการใช้ไดรเวอร์ VFIO ในบรรทัดเดียว อุปกรณ์หนึ่งเครื่องต่อบรรทัดจะไม่ทำงาน

ตัวอย่างเช่น หากคุณมี GPU 2 ตัวที่คุณต้องการกำหนดค่าให้ใช้ไดรเวอร์ VFIO คุณต้องเพิ่ม ID ของพวกเขาในบรรทัดเดียวใน /etc/modprobe.d/vfio.conf ไฟล์ดังต่อไปนี้:

ตัวเลือก vfio-pci ids=,,,

หากคุณต้องการเพิ่ม GPU อื่นลงในรายการ เพียงต่อท้าย GPU ที่มีอยู่ vfio-pci เข้าแถว /etc/modprobe.d/vfio.conf ไฟล์ดังต่อไปนี้:

ตัวเลือก vfio-pci ids=,,,,,

อย่าทำเช่นนี้ แม้ว่าจะดูสะอาดกว่ามาก แต่ก็ไม่ได้ผล ฉันหวังว่าเราจะสามารถระบุ PCI/PCIE ID ด้วยวิธีนี้ได้

ตัวเลือก vfio-pci ids=,

ตัวเลือก vfio-pci ids=,

ตัวเลือก vfio-pci ids=,

เหตุใดจึงปิดใช้งานอนุญาโตตุลาการ VGA สำหรับ GPU และทำอย่างไร

หากคุณใช้ UEFI/OVMF BIOS บนเครื่องเสมือน Proxmox VE ที่คุณต้องการส่งผ่าน GPU คุณสามารถปิดใช้งานอนุญาโตตุลาการ VGA ซึ่งจะลดรหัสเดิมที่ต้องใช้ในระหว่างการบูต

หากต้องการปิดใช้งานอนุญาโตตุลาการ VGA สำหรับ GPU ให้เพิ่ม ปิดการใช้งาน_vga=1 ในตอนท้ายของ ตัวเลือก vfio-pci ใน /etc/modprobe.d/vfio.conf ไฟล์ดังแสดงด้านล่าง:

ตัวเลือก vfio-pci ids=,,, Disable_vga=1

จะเกิดอะไรขึ้นหาก GPU ของฉันยังคงไม่ได้ใช้ไดรเวอร์ VFIO แม้ว่าจะกำหนดค่า VFIO แล้วก็ตาม

แม้จะทำทุกอย่างอย่างถูกต้องแล้ว หาก GPU ของคุณยังคงไม่ได้ใช้ไดรเวอร์ VFIO คุณจะต้องลองบูต Proxmox VE ด้วยตัวเลือกเคอร์เนลที่ปิดใช้งานบัฟเฟอร์เฟรมวิดีโอ

บน Proxmox VE 7.1 และเก่ากว่านั้น nofb nomodeset วิดีโอ=vesafb:ปิด วิดีโอ=efifb:ปิด วิดีโอ=simplefb:ปิด ตัวเลือกเคอร์เนลปิดการใช้งาน GPU framebuffer สำหรับเซิร์ฟเวอร์ Proxmox VE ของคุณ

บน Proxmox VE 7.2 และใหม่กว่านั้น initcall_blacklist=sysfb_init ตัวเลือกเคอร์เนลทำงานได้ดีกว่าในการปิดการใช้งาน GPU framebuffer สำหรับเซิร์ฟเวอร์ Proxmox VE ของคุณ

เปิดไฟล์คอนฟิกูเรชัน GRUB bootloader /etc/default/grub ไฟล์ด้วยโปรแกรมแก้ไขข้อความ nano ด้วยคำสั่งต่อไปนี้:

$ นาโน /etc/default/grub

เพิ่มตัวเลือกเคอร์เนล initcall_blacklist=sysfb_init ในตอนท้ายของ GRUB_CMDLINE_LINUX_DEFAULT -

เมื่อเสร็จแล้วให้กด - เอ็กซ์ ติดตามโดย และ และ <ป้อน> เพื่อบันทึกไฟล์และตรวจสอบให้แน่ใจ อัปเดต bootloader Proxmox VE GRUB เพื่อให้การเปลี่ยนแปลงมีผล

GPU Passthrough ไม่พบข้อผิดพลาด แต่ฉันได้รับหน้าจอสีดำบนจอภาพที่เชื่อมต่อกับ GPU ที่ส่งผ่านไปยัง Proxmox VE VM เพราะเหตุใด

เมื่อคุณส่ง GPU ไปยังเครื่องเสมือน Proxmox VE แล้ว อย่าลืมใช้ ค่าเริ่มต้น กราฟิกการ์ดก่อนที่คุณจะเริ่มเครื่องเสมือน ด้วยวิธีนี้ คุณจะสามารถเข้าถึงการแสดงผลของเครื่องเสมือนได้จาก UI การจัดการเว็บ Proxmox VE ดาวน์โหลดตัวติดตั้งไดรเวอร์ GPU บนเครื่องเสมือน และติดตั้งบนเครื่องเสมือน

เมื่อติดตั้งไดรเวอร์ GPU บนเครื่องเสมือนแล้ว หน้าจอของเครื่องเสมือนจะแสดงบนจอภาพที่เชื่อมต่อกับ GPU ที่คุณได้ส่งไปยังเครื่องเสมือนเช่นกัน

เมื่อติดตั้งไดรเวอร์ GPU บนเครื่องเสมือนแล้ว และหน้าจอของเครื่องเสมือนแสดงบนจอภาพที่เชื่อมต่อกับ GPU (ส่งผ่านไปยังเครื่องเสมือน) ให้ปิดเครื่องเสมือนและตั้งค่า จอแสดงผลกราฟิกการ์ด ของเครื่องเสมือนไปที่ ไม่มี -

เมื่อคุณตั้งค่าเรียบร้อยแล้ว ครั้งถัดไปที่คุณเปิดเครื่องเสมือน หน้าจอของเครื่องเสมือนจะแสดงบนจอภาพที่เชื่อมต่อกับ GPU (ส่งผ่านไปยังเครื่องเสมือน) เท่านั้น โดยจะไม่มีการแสดงบนเว็บ Proxmox VE UI การจัดการ ด้วยวิธีนี้ คุณจะได้รับประสบการณ์เหมือนกับการใช้คอมพิวเตอร์จริง ๆ แม้ว่าคุณจะใช้เครื่องเสมือนก็ตาม

จำไว้ว่าอย่าใช้ SPICE, VirtIO GPU และการ์ดแสดงผล VirGL GPU บนเครื่องเสมือน Proxmox VE ที่คุณกำลังกำหนดค่าสำหรับการส่งผ่าน GPU เนื่องจากมีโอกาสเกิดข้อผิดพลาดสูง

Bug การรีเซ็ตผู้ขาย AMD คืออะไร และจะแก้ไขได้อย่างไร

AMD GPU มีข้อบกพร่องที่รู้จักกันดีเรียกว่า “ข้อผิดพลาดการรีเซ็ตผู้ขาย” เมื่อ AMD GPU ถูกส่งไปยังเครื่องเสมือน Proxmox VE และคุณปิดเครื่องเสมือนนี้ คุณจะไม่สามารถใช้ AMD GPU ในเครื่องเสมือน Proxmox VE อื่นได้ ในบางครั้ง เซิร์ฟเวอร์ Proxmox VE ของคุณจะไม่ตอบสนอง สิ่งนี้เรียกว่า “ข้อผิดพลาดการรีเซ็ตผู้ขาย” ของ AMD GPU

สาเหตุนี้เกิดขึ้นก็คือ AMD GPU ไม่สามารถรีเซ็ตตัวเองได้อย่างถูกต้องหลังจากถูกส่งไปยังเครื่องเสมือน เพื่อแก้ไขปัญหานี้ คุณจะต้องรีเซ็ต GPU AMD ของคุณอย่างถูกต้อง สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการติดตั้งการรีเซ็ตผู้จำหน่าย AMD บน Proxmox VE อ่านบทความนี้ และ อ่านกระทู้นี้ในฟอรั่ม Proxmox VE - อีกด้วย, ตรวจสอบหน้าผู้ขายรีเซ็ต GitHub -

จะให้ vBIOS สำหรับ GPU ที่ผ่านบนเครื่องเสมือน Proxmox VE ได้อย่างไร

หากคุณได้ติดตั้ง GPU ไว้ที่ช่องแรกของเมนบอร์ด คุณอาจไม่สามารถส่งผ่าน GPU ในเครื่องเสมือน Proxmox VE ตามค่าเริ่มต้นได้ เมนบอร์ดบางรุ่นใช้ vBIOS ของ GPU ที่ติดตั้งในช่องแรกเป็นค่าเริ่มต้น ซึ่งเป็นสาเหตุที่ทำให้ GPU ที่ติดตั้งในช่องแรกของเมนบอร์ดไม่สามารถส่งผ่านไปยังเครื่องเสมือนได้

วิธีแก้ไขปัญหานี้คือการติดตั้ง GPU บนสล็อตที่สองของเมนบอร์ด แยก vBIOS ของ GPU ติดตั้ง GPU บนสล็อตแรกของเมนบอร์ด และส่งผ่าน GPU ไปยังเครื่องเสมือน Proxmox VE พร้อมกับที่แตกออกมา vBIOS ของ GPU

หากต้องการเรียนรู้วิธีแยก vBIOS ของ GPU ของคุณ อ่านบทความนี้ -

เมื่อคุณได้รับ vBIOS สำหรับ GPU ของคุณแล้ว คุณต้องจัดเก็บไฟล์ vBIOS ไว้ในไฟล์ /usr/share/kvm/ ไดเรกทอรีของเซิร์ฟเวอร์ Proxmox VE ของคุณเพื่อเข้าถึง

เมื่อไฟล์ vBIOS สำหรับ GPU ของคุณถูกเก็บไว้ในไฟล์ /usr/share/kvm/ คุณต้องกำหนดค่าเครื่องเสมือนของคุณจึงจะใช้งานได้ ในปัจจุบัน ยังไม่มีวิธีระบุไฟล์ vBIOS สำหรับอุปกรณ์ PCI/PCIE ของเครื่องเสมือน Proxmox VE จาก UI การจัดการเว็บ Proxmox VE ดังนั้น คุณจะต้องทำทุกอย่างจากเชลล์/บรรทัดคำสั่ง Proxmox VE

คุณสามารถค้นหาไฟล์การกำหนดค่าเครื่องเสมือน Proxmox VE ได้ในไฟล์ /etc/pve/qemu-เซิร์ฟเวอร์/ ไดเร็กทอรีของเซิร์ฟเวอร์ Proxmox VE ของคุณ เครื่องเสมือน Proxmox VE แต่ละเครื่องมีไฟล์การกำหนดค่าหนึ่งไฟล์ในไดเร็กทอรีนี้ในรูปแบบ .conf -

ตัวอย่างเช่น หากต้องการเปิดไฟล์การกำหนดค่าเครื่องเสมือน Proxmox VE (สำหรับการแก้ไข) สำหรับเครื่องเสมือน ID 100 คุณจะต้องเรียกใช้คำสั่งต่อไปนี้:

$ นาโน /etc/pve/qemu-server/100.conf

ในไฟล์การกำหนดค่าเครื่องเสมือน คุณจะต้องต่อท้าย romfile=<ชื่อไฟล์ vBIOS> ใน โฮสต์ pciX บรรทัดที่รับผิดชอบในการส่ง GPU บนเครื่องเสมือน

ตัวอย่างเช่น หากชื่อไฟล์ vBIOS สำหรับ GPU ของฉันคือ กิกะไบต์-nvidia-1050ti.bin และฉันได้ส่ง GPU ไปที่ช่องแรก (ช่อง 0) ของเครื่องเสมือน ( โฮสต์ pci0 ) จากนั้นใน 100.การประชุม ไฟล์บรรทัดควรเป็นดังนี้:

hostpci0: ,x-vga=on,romfile=gigabyte-nvidia-1050ti.bin

เมื่อเสร็จแล้ว ให้บันทึกไฟล์การกำหนดค่าเครื่องเสมือนโดยกด - เอ็กซ์ ติดตามโดย และ และ <ป้อน> ให้เริ่มเครื่องเสมือนและตรวจสอบว่า GPU passthrough ทำงานหรือไม่

จะทำอย่างไรถ้าบางแอพขัดข้องกับ Proxmox VE Windows Virtual Machine?

แอพบางตัวเช่น GeForce Experience, Passmark ฯลฯ อาจทำให้เครื่องเสมือน Proxmox VE Windows หยุดทำงาน คุณอาจพบกับหน้าจอสีน้ำเงินแห่งความตาย (BSOD) อย่างกะทันหันบนเครื่องเสมือน Proxmox VE Windows ของคุณ สาเหตุที่เกิดขึ้นคือเครื่องเสมือน Windows อาจพยายามเข้าถึงการลงทะเบียนเฉพาะรุ่น (MSR) ที่ไม่มีให้บริการจริง และขึ้นอยู่กับวิธีที่ฮาร์ดแวร์ของคุณจัดการกับคำขอ MSR ระบบของคุณอาจเสียหาย

วิธีแก้ไขปัญหานี้คือการละเว้นข้อความ MSR บนเซิร์ฟเวอร์ Proxmox VE ของคุณ

หากต้องการกำหนดค่า MSR บนเซิร์ฟเวอร์ Proxmox VE ของคุณ ให้เปิดไฟล์ /etc/modprobe.d/kvm.conf ไฟล์ด้วยโปรแกรมแก้ไขข้อความนาโนดังต่อไปนี้:

$ นาโน /etc/modprobe.d/kvm.conf

หากต้องการละเว้น MSR บนเซิร์ฟเวอร์ Proxmox VE ของคุณ ให้เพิ่มบรรทัดต่อไปนี้ใน /etc/modprobe.d/kvm.conf ไฟล์.

ตัวเลือก kvm ละเว้น_msrs=1

เมื่อ MSR ถูกละเว้น คุณอาจเห็นข้อความเตือน MSR จำนวนมากในบันทึกระบบ dmesg ของคุณ เพื่อหลีกเลี่ยงสิ่งนั้น คุณสามารถละเว้น MSR และปิดใช้งานการบันทึกข้อความเตือน MSR โดยเพิ่มบรรทัดต่อไปนี้แทน:

ตัวเลือก kvm ละเว้น_msrs=1 report_ignored_msrs=0

เมื่อเสร็จแล้วให้กด - เอ็กซ์ ติดตามโดย และ และ <ป้อน> เพื่อบันทึก /etc/modprobe.d/kvm.conf ไฟล์และ อัปเดต initramfs ของเซิร์ฟเวอร์ Proxmox VE ของคุณ เพื่อให้การเปลี่ยนแปลงมีผล

วิธีแก้ปัญหาเสียงแตก/เสียหายของเสียง HDMI บนเครื่องเสมือน Proxmox VE Linux

หากคุณส่ง GPU ไปยังเครื่องเสมือน Linux Proxmox VE และคุณได้รับคุณภาพเสียงที่ไม่ดีบนเครื่องเสมือน คุณจะต้องเปิดใช้งาน MSI (การขัดจังหวะสัญญาณข้อความ) สำหรับอุปกรณ์เสียงบนเครื่องเสมือน Proxmox VE

หากต้องการเปิดใช้งาน MSI บนเครื่องเสมือน Linux Proxmox VE ให้เปิดไฟล์ /etc/modprobe.d/snd-hda-intel.conf ไฟล์ด้วยโปรแกรมแก้ไขข้อความ nano บนเครื่องเสมือนด้วยคำสั่งต่อไปนี้:

$ sudo นาโน /etc/modprobe.d/snd-had-intel.conf

เพิ่มบรรทัดต่อไปนี้และบันทึกไฟล์โดยกด - เอ็กซ์ ติดตามโดย และ และ <ป้อน> -

ตัวเลือก snd-hda-intel Enable_msi=1

เพื่อให้การเปลี่ยนแปลงมีผล ให้รีบูตเครื่องเสมือน Linux ด้วยคำสั่งต่อไปนี้:

$ sudo รีบูต

เมื่อเครื่องเสมือนบูทแล้ว ให้ตรวจสอบว่า MSI เปิดใช้งานสำหรับอุปกรณ์เสียงด้วยคำสั่งต่อไปนี้หรือไม่:

$ sudo lspci -vv

หากเปิดใช้งาน MSI สำหรับอุปกรณ์เสียงบนเครื่องเสมือน คุณจะเห็นเส้นที่ทำเครื่องหมายไว้ในข้อมูลอุปกรณ์เสียง

จะอัพเดต Proxmox VE initramfs ได้อย่างไร

ทุกครั้งที่คุณทำการเปลี่ยนแปลงไฟล์ใน /etc/modules-load.d/ และ /etc/modprobe.d/ คุณต้องอัพเดต initramfs ของการติดตั้ง Proxmox VE 8 ด้วยคำสั่งต่อไปนี้:

$ อัพเดต-initramfs -u -k ทั้งหมด

เมื่ออัปเดต initramfs Proxmox VE แล้ว ให้รีบูตเซิร์ฟเวอร์ Proxmox VE เพื่อให้การเปลี่ยนแปลงมีผล

$ รีบูต

จะอัพเดต Proxmox VE GRUB Bootloader ได้อย่างไร

ทุกครั้งที่คุณอัปเดตไฟล์การกำหนดค่าการบูต Proxmox VE GRUB /etc/default/grub คุณต้องอัปเดต GRUB bootloader เพื่อให้การเปลี่ยนแปลงมีผล

หากต้องการอัพเดต Proxmox VE GRUB bootloader ด้วยการกำหนดค่าใหม่ ให้รันคำสั่งต่อไปนี้:

$ อัพเดต-grub2

เมื่อ GRUB bootloader ได้รับการอัปเดตด้วยการกำหนดค่าใหม่ ให้รีบูตเซิร์ฟเวอร์ Proxmox VE ของคุณเพื่อให้การเปลี่ยนแปลงมีผล

$ รีบูต

บทสรุป

ในบทความนี้ เราได้กล่าวถึงปัญหาการส่งผ่าน Proxmox VE PCI/PCIE และการส่งผ่าน GPU ที่พบบ่อยที่สุด และขั้นตอนที่คุณสามารถทำได้เพื่อแก้ไขปัญหาเหล่านั้น

อ้างอิง

  1. [บทช่วยสอน] – PCI/GPU Passthrough บน Proxmox VE 8 : การติดตั้งและการกำหนดค่า | ฟอรัมสนับสนุน Proxmox
  2. คู่มือสำหรับผู้เริ่มต้นใช้งาน Proxmox GPU Passthrough
  3. การอ่านและการเขียนการลงทะเบียนเฉพาะโมเดลใน Linux
  4. คู่มือไดร์เวอร์ MSI HOWTO — เอกสารประกอบเคอร์เนล Linux