Computer >> Hướng Dẫn Máy Tính >  >> Phần Mềm >> Máy Ảo

QEMU Virgil: Mở khóa Virtualization Nâng cao và Tăng tốc Đồ họa

Virtualization là một chuyện khéo léo. Một máy tính trong máy tính, nếu bạn muốn, một chuỗi vô tận các khả năng và use case. Trừ một. Gaming. Hỏi bất kỳ nerd nào chạy VM, vì bất kỳ lý do gì, và họ sẽ most likely chỉ ra một thiếu hụt lớn trong tất cả mọi phần mềm ảo hóa - graphics stack chưa đủ phát triển hoặc đủ mạnh.

Thực tế, thường khi bạn chạy guest OS bên trong VM, bạn thường bị giới hạn bởi tăng tốc đồ họa - chức năng 2D và 3D phía sau native capabilities của host. Vì vậy, nếu bạn nghĩ virtualization có thể giải quyết nhiều vấn đề của bạn - gaming không phải là một trong số đó. Virgil 3d là một project nhằm mang lại 3D wonder cho phần mềm ảo hóa, với mục tiêu một ngày nào đó cung cấp parity với hiệu suất host. Một implementation của giải pháp này là QEMU Virgil, cho phép bạn có SDL2 và Virgil 3d enabled trong VM dựa trên QEMU/KVM. Nghe thú vị. Hãy xem xem.

Thiết lập

Nhược điểm lớn nhất với loại nỗ lực này là có thể khá phức tạp, và mất thời gian để cấu hình và chạy mọi thứ. Tuy nhiên, với Virgil 3d, nếu bạn muốn thử snap package hiện có, nó bỏ qua tất cả các gory bits của manual compilation và những gì. Hint: Vì phải luôn chia sẻ, tôi affiliated với nỗ lực snap, nên nếu bạn ngửi thấy bias, hãy chạy trốn!

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

Chạy Virtual Machine

Hãy xem một lệnh (sample) để start VM 3D-accelerated. Nếu bạn hơi overwhelmed, tôi suggest bạn xem hướng dẫn Introduction to KVM của tôi vài năm trước. Hầu hết stuff đó vẫn áp dụng.

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

Chúng ta có gì ở đây?

Hãy nhìn vào tất cả các option đầy màu sắc này:

  • -enable-kvm - Chúng ta dùng full KVM virtualization support. Cần nói, hardware của bạn nên có extension cần thiết (có trong CPU và enabled trong BIOS).
  • -m 4096 - VM memory set thành 4GB.
  • -device ... - Option này add device driver. Cụ thể, chúng ta dùng virgl.
  • -display ... - Option này enable sử dụng SDL và OpenGL rendering cho display của chúng ta.
  • -netdev ... - Option này cấu hình network interface có TCP port forwarding, để bạn có thể SSH vào VM (dùng host port 10022). Network device sẽ là virtual adapter RTL8139. Adapter này giới hạn 100 Mbps, nhưng bạn cũng có thể dùng e1000. Trang KVM networking chính thức có thêm chi tiết.
  • -soundhw - Cấu hình sound card.
  • kubuntu.img - Tên ổ cứng ảo. Chúng ta chưa tạo - bạn có thể làm bằng cách tạo disk image với dd (full hoặc sparse), hoặc dùng lệnh qemu-img.
  • -boot d - Option chỉ định boot order; d nghĩa là CD-ROM trước.
  • -cdrom kubuntu.iso - Đây là kubuntu.iso làm virtual CD image. Chúng ta sẽ boot vào live session trước, cài OS, và sau đó, các lần dùng sau, bạn có thể bỏ option boot và cdrom khỏi lệnh.

Có nhiều option khác bạn có thể thử. Như số virtual CPU, model CPU khác nhau, snapshot, disk caching mode, USB functionality, các feature quản lý memory, và hơn thế nữa. Nhưng chúng ta không ở đây để master KVM, chúng ta ở đây để vui 3D.

Tạo hard disk

Vì vậy, bạn có thể làm như:

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

Khởi động VM & Đồ họa 3D

Nhấn Enter. Phép màu xảy ra. VM sẽ boot, và bạn sớm sẽ thấy desktop của bất kỳ guest OS nào bạn chọn. Cho test của tôi, tôi chọn Kubuntu 20.04, chạy trên Fedora 32. Nhưng bạn có thể dùng bất cứ thứ gì bạn thích cho guest, bao gồm Windows.

Bạn có thể check 3D acceleration enablement với:

glxinfo | grep "direct rendering"

Điều này không có nghĩa là mọi hàm 3D rendering đã được implement, nhưng nó chắc chắn là khởi đầu tốt. Thực tế, VM Kubuntu của tôi có tất cả những bit mảnh đẹp đẽ, và nó khá sprightly, bao gồm hiệu suất 3D solid. Tôi thậm chí chạy PassMark burn-in test để xem sao. Cushty.

Kết luận

Virgil trông như một thứ thực sự nice. Vì nó là giải pháp tương đối đơn giản và inexpensive. Bây giờ, tôi biết những người có máy multi-GPU, và họ có cấu hình VM khéo léo, nơi các card GPU khác nhau được dùng riêng bởi host và guest VM, dùng PCI bus identifier và những gì, cung cấp near-native performance trong guest system của họ. Nhưng đó thường vượt quá skill và ngân sách của một nerd bình thường. Vì hãy thực tế, người thực sự bình thường sẽ không dùng Linux, hoặc virtualization, hoặc bất cứ thứ gì như vậy.

Giữa zero và everything 3D, nếu bạn có nhu cầu về một chút fancy graphics trong VM của bạn, thì có lẽ Virgil có thể cung cấp cho bạn mức độ chức năng phù hợp. Nó có thể niche, vẫn đang phát triển, nhưng hoạt động khá tốt, và từ test của tôi, performance adequate. Chúng ta vẫn chưa ở giai đoạn virtualization có thể fully và completely thay thế hardware vật lý (nếu bao giờ), nhưng Virgil là bước đúng hướng. Have a go, nerd away. Xong ở đây.

Chúc vui.