Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ซอฟต์แวร์ >> เครื่องเสมือน

QEMU Virgil: ปลดล็อก Virtualization ขั้นสูงและเร่งกราฟิก 3D

Virtualization คือสิ่งฉลาด คอมพิวเตอร์ในคอมพิวเตอร์ ความเป็นไปได้และ use cases ไม่มีที่สิ้นสุด ยกเว้นหนึ่งอย่าง: Gaming ถาม nerd ใดๆ ที่รัน VMs พวกเขาจะชี้ข้อบกพร่องใหญ่ของ virtualization software ทุกตัว - graphics stack ไม่พัฒนา/ทรงพลังพอ

เมื่อรัน guest OS ใน VMs มักถูกจำกัดโดย graphics acceleration - 2D และ 3D functionality หลัง native capabilities ของ host ถ้าคิดว่า virtualization แก้ปัญหาหลายอย่าง - gaming ไม่ใช่หนึ่งในนั้น Virgil 3d เป็น project ที่มุ่งนำ 3D wonders ไปสู่ virtualization software เป้าหมาย: วันหนึ่งเสนอ parity กับ host performance Implementation หนึ่งคือ QEMU Virgil ให้ SDL2 และ Virgil 3d enabled ใน QEMU/KVM-based VMs น่าสนใจ ลองดู

(ภาพประกอบ)

การตั้งค่า (Setup)

Downside ใหญ่: ค่อนข้างซับซ้อน ใช้เวลา config และรัน แต่กับ Virgil 3d หากลอง snap package จะขจัด manual compilation hint: ผม affiliated กับ snap effort ถ้ากลิ่น bias หนีไป!

sudo snap install qemu-virgil
sudo snap connect qemu-virgil:kvm

รัน Virtual Machine (Running a virtual machine)

ดูคำสั่งตัวอย่าง start 3D-accelerated VM หาก overwhelmed แนะนำอ่าน Introduction to KVM guide ผมเมื่อไม่กี่ปีก่อน ส่วนใหญ่ยังใช้ได้

qemu-virgil -enable-kvm -m 4096 -device virtio-vga,virgl=on -display sdl,gl=on -netdev user,id=ethernet.0,hostfwd=tcp::10022-:22 -device rtl8139,netdev=ethernet.0 -soundhw ac97 kubuntu.img -boot d -cdrom kubuntu.iso

คำสั่งแต่ละตัวทำอะไร? (What do we have here?)

  • -enable-kvm - ใช้ KVM virtualization support เต็มรูปแบบ Hardware ต้องมี extensions (CPU และ enabled ใน BIOS)
  • -m 4096 - VM memory 4GB
  • -device ... - เพิ่ม device drivers ใช้ virgl
  • -display ... - ใช้ SDL และ OpenGL rendering สำหรับ display
  • -netdev ... - config network interface มี TCP port forwarding SSH เข้า VM (host port 10022) network device = RTL8139 virtual adapter (limited 100 Mbps ใช้ e1000 ได้) รายละเอียดเพิ่มที่ official KVM networking page
  • -soundhw - config sound card
  • kubuntu.img - virtual hard disk name ยังไม่สร้าง - สร้างด้วย dd (full/sparse) หรือ qemu-img
  • -boot d - boot order d = CD-ROM first
  • -cdrom kubuntu.iso - virtual CD image boot live session install OS แล้วครั้งต่อไป remove boot และ cdrom options

มี options อื่นๆ มาก: vCPUs, CPU models, snapshots, disk caching, USB, memory management แต่ไม่ได้มา master KVM มาเพื่อ 3D fun

สร้างฮาร์ดดิสก์ (Create hard disk)

qemu-img create -f qcow2 kubuntu.img 20g

เริ่ม VM และ 3D Graphics (Start virtual machine & 3D graphics)

กด Enter Magic ensues VM boot เร็วๆ นี้เห็น desktop guest OS ที่เลือก ผมทดสอบ Kubuntu 20.04 บน Fedora 32 ใช้ guest อะไรก็ได้ รวม Windows

(ภาพประกอบ VM desktop)

ตรวจสอบ 3D acceleration enablement:

glxinfo | grep "direct rendering"

(ภาพประกอบ output)

ไม่ได้หมายความว่า every 3D rendering function implemented แต่มัน good start Kubuntu VM มี nice bits sprightly รวม solid 3D performance รัน PassMark burn-in test ดู Cushty

(ภาพประกอบ benchmark)

สรุป (Conclusion)

Virgil ดูเป็นสิ่งดี เพราะ relatively simple และ inexpensive รู้จักคนที่มี multi-GPU computers clever VM configs ใช้ GPU cards แยก host/guest ด้วย PCI bus identifiers ให้ near-native performance แต่เกิน skill และ budget ของ ordinary nerd เพราะ realistic คนธรรมดาไม่ใช้ Linux หรือ virtualization

ระหว่างศูนย์และ everything 3D หากต้องการ fancy graphics ใน VMs Virgil อาจให้ functionality ระดับที่ถูกต้อง อาจ niche ยัง developing แต่ทำงานได้ดี performance adequate ยังไม่ถึง stage virtualization replace physical hardware fully (ถ้าจะมี) แต่ Virgil เป็น right step in the right direction ลองเล่น nerd away จบแล้ว

Cheers.