Score:2

จะใช้การเร่งความเร็ว OpenGL / 3D ใน virt-manager กับ Ubuntu ได้อย่างไร

ธง us

ปัจจุบันใช้ Ubuntu 20.04 ทั้งในฐานะโฮสต์และแขก ฉันติดตาม http://ryan.himmelwright.net/post/virtio-3d-vms/ และเปิดใช้งานการเร่งความเร็ว 3 มิติบนวิดีโอ และ OpenGL บน dsplay แต่ฉันได้รับเมื่อเปิดใช้ VM

การสนับสนุน SPICE GL เป็นแบบโลคัลเท่านั้นในขณะนี้และไม่สามารถใช้ร่วมกับ -spice port/tls-port

ฉันจะทำให้มันทำงานได้อย่างไร

อัปเดต:

ฉันปิดการใช้งานประเภทการฟังเป็นไม่มี

แบบนี้ป้อนคำอธิบายรูปภาพที่นี่

แต่ฉันได้ภาพที่ผิดพลาดมาก:

ป้อนคำอธิบายรูปภาพที่นี่

Score:1
ธง us

ฉันยังประสบปัญหาเดียวกันในขณะที่ทำงานกับการเร่งด้วยฮาร์ดแวร์ที่ใช้ซอฟต์แวร์ตามที่ระบุโดย: http://ryan.himmelwright.net/post/virtio-3d-vms/ . ฉันแก้ไขเล็กน้อยและพบวิธีแก้ปัญหาง่ายๆ ที่เหมาะกับฉัน แต่ฉันไม่สามารถรับประกันได้ว่าจะได้ผลสำหรับคุณเช่นกัน:

ฉันถือว่าคุณได้เปลี่ยน 'Model' จาก 'QXL' เป็น 'Virtio' และเปิดใช้งาน '3D Acceleration' ในส่วน 'Video Device' พร้อมกับการตั้งค่าที่คุณระบุไว้ข้างต้น ฉันยังถือว่าตัวเรนเดอร์ที่คุณเลือกในดร็อปดาวน์ 'OpenGL' คือ GPU เฉพาะของคุณ

ตอนนี้ เพียงปิดอินสแตนซ์ virt-manager ของคุณและรีสตาร์ทจากเทอร์มินัลโดยต่อท้าย DRI_PRIME=1 ก่อนที่มันจะวิ่ง DRI_PRIME=1 ผู้จัดการอัจฉริยะ ในสถานี ตอนนี้เริ่ม VM ของคุณ ในตอนแรกฉันเห็นข้อผิดพลาดของหน้าจอ แต่หลังจากเปิดหน้าจอเข้าสู่ระบบแล้ว สิ่งต่างๆ ก็ดำเนินไปอย่างราบรื่น ฉันตรวจสอบการใช้งาน AMD DGPU ของฉันผ่าน ราออนท็อป และมันก็ทำงานได้ดี

บันทึก:

  1. โซลูชันเดียวกันนี้ใช้ได้กับ VirtualBox เมื่อไม่ได้ใช้ DGPU ของฉันแม้ว่าจะเปิดใช้งาน 3D Acceleration ก็ตาม ฉันยังสังเกตเห็นว่าการเร่งความเร็ว 3D นั้นเสถียรกว่าใน VirtualBox เมื่อเทียบกับ Virt-manager

  2. แม้จะเปิดใช้งานการเร่งความเร็ว 3D สำเร็จ คุณจะไม่ได้รับประสิทธิภาพของ GPU เต็มที่ และอาจพบปัญหาเกี่ยวกับไดรเวอร์ในที่ต่างๆ คุณอาจต้องการใช้ GPU ของคุณโดยตรงใน VM ผ่าน GPU pass-through เพื่อแก้ไขปัญหาเหล่านี้

แก้ไข 1:

หลังจากเล่นซอเพิ่มเติมกับการเร่งฮาร์ดแวร์ VM ฉันพบว่ามีอีกหนึ่งขั้นตอนที่ต้องทำเพื่อเรียกใช้ VM ด้วย DGPU ก่อนอื่นเราต้องเพิ่ม VRAM เป็นอย่างน้อย 512MB ใน 'QXL Model' ของส่วน 'Video Device' คลิก 'Apply' เปลี่ยน 'Model' จาก 'QXL' เป็น 'Virtio' โดยเปิดใช้งาน '3D Acceleration' และ จากนั้นเรียกใช้ virt-manager ด้วย DRI_PRIME=1.

เมื่อฉันลองสิ่งนี้ Manjaro ทำงานได้ดี แต่ประสิทธิภาพของ Windows 10 VM นั้นขาด ๆ หาย ๆ

us flag
ฉันไม่มีข้อบกพร่อง แต่ฉันยังคงได้รับวิดีโอเพียง 1/4 ของหน้าจอ
Score:0
ธง de

OpenGL + 3D Rendering ทำงานได้ดีกับ iommu หากคุณรองรับ VT-D บนเมนบอร์ด + โปรเซสเซอร์ของคุณ

เพิ่ม intel_iommu=บน iommu=pt ถึง /etc/default/grub/อัปเดตด้วงและรีบูต (เอเอ็มดีคือ amd_iommu=เปิด)

เช่น.:

$ grep CMDLINE_LINUX_DEFAULT /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="intel_iommu=on iommu=pt"

การเพิ่มแฟล็กการบูต iommu ไปยังไฟล์ /etc/default/grub

เพื่อความสมบูรณ์ควรกล่าวถึง /etc/default/grub/ จำเป็นต้องแก้ไขในฐานะรูท (ใช้ ซูโด หรือ สุ).

คำสั่งอัพเดตคือ:

ปรับปรุงด้วง

สำหรับ Debian/Ubuntu/อนุพันธ์ และ:

grub2-mkconfig -o /boot/grub/grub.cfg

สำหรับ distros อื่น ๆ ส่วนใหญ่ (ในบาง distros grub2-mkconfig ชื่อคำสั่ง ด้วง mkconfig).

  1. ควรสังเกตว่านี่เป็นโหมดพาสทรู (แชร์) ที่ "อ่อนแอ" ซึ่งไม่เข้าครอบงำอุปกรณ์ทั้งหมดการส่งผ่าน "จริง" จะลบอุปกรณ์ออกจากการควบคุมของโฮสต์อย่างสมบูรณ์ ที่ต้องใช้ก vfio-pci=vendId:devId ต้นขั้วทั้งในด้วงหรือ /etc/modprobe.d (และสร้าง initramfs ใหม่) สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการส่งผ่าน นี่เป็นจุดเริ่มต้นที่ดี: https://wiki.archlinux.org/title/PCI_passthrough_via_OVMF
  2. มีวิธีที่ซับซ้อนยิ่งขึ้นในการแบ่งปันกราฟิกของคุณ ผู้ให้บริการแต่ละรายมีเวอร์ชันของตัวเอง ตัวอย่างเช่น Intel-GVT-g สำหรับ Intel iGD: https://wiki.archlinux.org/title/Intel_GVT-g

นี่ของฉัน xml สำหรับอุปกรณ์ที่เป็นปัญหา:

Display Spice - หมายเหตุ: ด้วย passthrough คุณไม่สามารถเปิดใช้งานเซิร์ฟเวอร์ระยะไกลได้:

<graphics type="spice">
  <listen type="none"/>
  <image compression="off"/>
  <gl enable="yes"/>
</graphics>

แสดง Spice Server PCI passthrough พร้อมการกำหนดค่า openGL

Video Virtio (เปลี่ยนจาก QXL):

<video>
  <model type="virtio" heads="1" primary="yes">
    <acceleration accel3d="yes"/>
  </model>
  <address type="pci" domain="0x0000" bus="0x00" slot="0x01" function="0x0"/>
</video>

เปลี่ยนจาก QXL เป็น virtio สำหรับการเร่งความเร็ว 3 มิติ

ไม่เกี่ยวข้อง ฉันใช้อุปกรณ์บล็อก zvol ในการกำหนดค่าตัวติดตั้ง ZFS ของ Ubuntu เป็นตัวเลือกที่มีในเวอร์ชันเดสก์ท็อปของ Ubuntu เท่านั้น:

ZFS zvol สำหรับอุปกรณ์บล็อก NTFS

zvols นั้นยอดเยี่ยมมากเพราะคุณสามารถสลับไปมาระหว่างการใช้งานได้ kvm-qemu และ [systemd-คอนเทนเนอร์][5] (เฉพาะลินุกซ์เท่านั้น) - รวมสแนปชอตและส่ง / รับ

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

เมื่อคุณสร้าง zvol ให้สร้างโครงสร้างพาร์ติชัน gpt โดยใช้ fdisk/sgdisk/{g}แยกส่วน ฯลฯ เช่นเดียวกับที่คุณทำกับดิสก์อื่น ๆ เมื่อฉันสร้างพาร์ติชัน gpt ฉันใช้ Windows ISO เพื่อทำการแบ่งพาร์ติชันจริง

btrfs มีบางอย่างที่คล้ายกันซึ่งควรได้รับการสนับสนุนที่ดีกว่า systemd-nspawnแต่ฉันไม่แน่ใจว่าคุณสามารถใช้งานมันเหมือนอุปกรณ์บล็อกได้หรือไม่ คิวมู.

เคล็ดลับสุดท้าย: ฉันต้องการคัดลอกไฟล์บางไฟล์จากโฮสต์ไปยัง VM คุณไม่สามารถเมานต์โฟลเดอร์จาก Linux --> Windows ได้ แต่ฉันสามารถเมานต์พาร์ติชัน (#3) Windows ที่สร้างบน zvol ในโฮสต์เป็นพาร์ติชัน NTFS ปกติได้

ดังนั้นในขณะที่ปิด VM ฉันติดตั้งพาร์ติชัน 3 บน /mtคัดลอกโฟลเดอร์ที่ฉันต้องการ จำนวน / ลบ พาร์ติชันและเริ่มการสำรองข้อมูล VM

บางครั้งมันก็ยุ่งยากเล็กน้อยที่จะคิดออกว่าจะทำอย่างไรในสถานการณ์นั้น ฉันเลยคิดว่าฉันจะยอมทำอย่างนั้น ผู้คนในคู่มือที่ฉันได้อ่านได้แนะนำให้ตั้งค่าการแชร์ Samba หากคุณต้องการบางสิ่งที่บ่อยกว่านี้ หรือฉันยังรีโมตไปยัง Windows VM โดยใช้ OpenSSH-Server และ PSRemoting อีกด้วย ดังนั้นจึงมีตัวเลือกมากมาย (Windows มี SSHFS ในตอนนี้ด้วย ถ้าคุณเช็คเอาท์ ชอคโกแลต).

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา