การจำลองเสมือนเป็นสิ่งที่ฉลาด คอมพิวเตอร์ในคอมพิวเตอร์ ถ้าคุณต้องการ ชุดของความเป็นไปได้และสถานการณ์ usecase ที่ไม่รู้จบ ยกเว้นข้อหนึ่ง การเล่นเกม ลองถามเนิร์ดที่ใช้เครื่องเสมือนไม่ว่าจะด้วยเหตุผลใดก็ตาม และพวกเขามักจะชี้ให้เห็นข้อบกพร่องใหญ่อย่างหนึ่งในซอฟต์แวร์เวอร์ชวลไลเซชันทั้งหมด นั่นคือ กองกราฟิกที่พัฒนาไม่เพียงพอหรือมีประสิทธิภาพเพียงพอ
อันที่จริง บ่อยครั้งเมื่อคุณเรียกใช้ระบบปฏิบัติการแขกภายในเครื่องเสมือน คุณมักจะถูกจำกัดด้วยการเร่งความเร็วกราฟิก - ฟังก์ชัน 2D และ 3D ที่อยู่เบื้องหลังความสามารถดั้งเดิมของโฮสต์ของคุณ ดังนั้น หากคุณคิดว่าการจำลองเสมือนสามารถแก้ปัญหาต่างๆ ของคุณได้ เกมไม่ใช่หนึ่งในนั้น Virgil 3d เป็นโครงการที่มีจุดมุ่งหมายเพื่อนำสิ่งมหัศจรรย์ 3 มิติมาสู่ซอฟต์แวร์เวอร์ช่วลไลเซชัน โดยมีเป้าหมายเพื่อมอบความเท่าเทียมกับประสิทธิภาพของโฮสต์ในสักวันหนึ่ง การใช้โซลูชันนี้คือ QEMU Virgil ซึ่งช่วยให้คุณเปิดใช้งาน SDL2 และ Virgil 3d ในเครื่องเสมือนที่ใช้ QEMU/KVM ฟังดูน่าสนใจ. มาดูกันดีกว่า
ตั้งค่า
ข้อเสียใหญ่ประการหนึ่งของความพยายามประเภทนี้คืออาจค่อนข้างซับซ้อนและต้องใช้เวลาในการกำหนดค่าและเรียกใช้ทุกอย่าง อย่างไรก็ตาม ด้วย Virgil 3d ถ้าคุณต้องการลองใช้แพ็คเกจ snap ที่มีอยู่ มันจะกำจัดการคอมไพล์ด้วยมือและอะไรก็ตาม คำแนะนำ:อย่างที่ใครๆ ก็ต้องแชร์กันเสมอ ฉันมีความร่วมมือกับความพยายามแบบ snap ดังนั้นถ้าคุณได้กลิ่นอคติ ให้หนีไปซะ!
sudo snap ติดตั้ง qemu-virgil
sudo snap เชื่อมต่อ qemu-virgil:kvm
เรียกใช้เครื่องเสมือน
มาดูคำสั่ง (ตัวอย่าง) สำหรับวิธีการเริ่มเครื่องเสมือนที่เร่งความเร็ว 3 มิติ หากคุณรู้สึกหนักใจเล็กน้อย ฉันขอแนะนำให้คุณดูคำแนะนำเบื้องต้นเกี่ยวกับ KVM ของฉันเมื่อไม่กี่ปีที่ผ่านมา รายละเอียดส่วนใหญ่ยังคงมีผลอยู่
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
เรามีอะไรบ้าง
มาดูตัวเลือกที่มีสีสันเหล่านี้กัน:
- -enable-kvm - เราใช้การสนับสนุนการจำลองเสมือนของ KVM เต็มรูปแบบ ฮาร์ดแวร์ของคุณควรมีส่วนขยายที่จำเป็น (มีอยู่ใน CPU และเปิดใช้งานใน BIOS)
- -m 4096 - หน่วยความจำ VM ถูกตั้งค่าเป็น 4GB
- -device ... - ตัวเลือกนี้จะเพิ่มไดรเวอร์อุปกรณ์ โดยเฉพาะอย่างยิ่ง เราใช้ virgl
- -display ... - ตัวเลือกนี้เปิดใช้งานการใช้การแสดงผล SDL และ OpenGL สำหรับการแสดงผลของเรา
- -netdev ... - ตัวเลือกนี้กำหนดค่าอินเทอร์เฟซเครือข่ายที่มีการส่งต่อพอร์ต TCP ดังนั้นคุณจึงสามารถ SSH ไปยังเครื่องเสมือนของคุณ (โดยใช้พอร์ตโฮสต์ 10022) อุปกรณ์เครือข่ายจะเป็นอะแดปเตอร์เสมือน RTL8139 ปัจจุบัน อแด็ปเตอร์นี้จำกัดไว้ที่ 100 Mbps แต่คุณสามารถใช้ e1000 ได้เช่นกัน หน้าเครือข่าย KVM อย่างเป็นทางการมีรายละเอียดเพิ่มเติมเกี่ยวกับหัวข้อนี้
- -soundhw - เรากำหนดค่าการ์ดเสียง
- kubuntu.img - นี่คือชื่อของฮาร์ดดิสก์เสมือน เรายังไม่ได้สร้าง - และคุณสามารถทำได้โดยสร้างภาพดิสก์ด้วย dd (ทั้งแบบสมบูรณ์และแบบกระจัดกระจาย) หรือคุณสามารถใช้คำสั่ง qemu-img ก็ได้
- -boot d - ตัวเลือกนี้ระบุลำดับการบูต d หมายถึงซีดีรอมก่อน
- -cdrom kubuntu.iso - ที่นี่ เรามี kubuntu.iso เป็นอิมเมจซีดีเสมือน เราจะบูตเข้าสู่เซสชันสดก่อน ติดตั้งระบบปฏิบัติการ จากนั้น ในการใช้งานครั้งต่อไป คุณสามารถลบตัวเลือกการบูตและ cdrom ออกจากคำสั่ง
มีตัวเลือกอื่น ๆ อีกมากมายที่คุณสามารถลองได้ เช่นเดียวกับจำนวนของ CPU เสมือน รุ่นของ CPU ที่แตกต่างกัน สแน็ปช็อต โหมดการแคชดิสก์ ฟังก์ชัน USB คุณลักษณะการจัดการหน่วยความจำต่างๆ และอื่นๆ แต่เราไม่ได้มาที่นี่เพื่อฝึกฝน KVM ให้เชี่ยวชาญ เรามาเพื่อสนุกกับ 3D
สร้างฮาร์ดดิสก์
ดังนั้น คุณสามารถทำสิ่งต่อไปนี้:
qemu-img สร้าง -f qcow2 kubuntu.img 20g
เริ่มเครื่องเสมือนและกราฟิก 3 มิติ
กดปุ่มตกลง. เวทมนตร์ตามมา เครื่องเสมือนจะบู๊ต และในไม่ช้าคุณจะเห็นเดสก์ท็อปของระบบปฏิบัติการแขกใดก็ตามที่คุณเลือก สำหรับการทดสอบของฉัน ฉันเลือก Kubuntu 20.04 ซึ่งทำงานบน Fedora 32 แต่คุณสามารถใช้อะไรก็ได้ที่คุณต้องการสำหรับแขกของคุณ รวมถึง Windows
คุณสามารถตรวจสอบการเปิดใช้งานการเร่งความเร็ว 3D ได้โดย:
glxinfo | grep "การเรนเดอร์โดยตรง"
ตอนนี้ ไม่ได้หมายความว่าทุกฟังก์ชันการเรนเดอร์ 3D ได้ถูกใช้งานแล้ว แต่แน่ใจว่าเป็นการเริ่มต้นที่ดี อันที่จริง Kubuntu VM ของฉันมีบิตและชิ้นส่วนที่ดีทั้งหมด และมันก็ค่อนข้างกระฉับกระเฉง รวมถึงประสิทธิภาพ 3D ที่มั่นคง ฉันยังรันการทดสอบ PassMarkburn-in เพื่อดูว่าให้อะไร คุชชั่น
บทสรุป
Virgil ดูเหมือนจะเป็นสิ่งที่ดีจริงๆ เนื่องจากเป็นวิธีแก้ปัญหาที่ค่อนข้างง่ายและราคาไม่แพง ตอนนี้ ฉันรู้จักผู้ที่มีคอมพิวเตอร์หลาย GPU และมีการกำหนดค่า VM ที่ชาญฉลาด ซึ่งการ์ด GPU ต่างๆ จะถูกใช้แยกกันโดยโฮสต์และเครื่องเสมือนแขก ใช้ตัวระบุบัส PCI และอะไรก็ตาม ให้ประสิทธิภาพที่ใกล้เคียงพื้นเมืองในแขกของพวกเขา ระบบ แต่นั่นมักจะเกินความสามารถและงบประมาณของเนิร์ดธรรมดา เพราะลองพูดตามความเป็นจริง คนธรรมดาจริงๆ จะไม่ใช้ Linux หรือ virtualization หรืออะไรทำนองนั้น
ระหว่างศูนย์กับ 3D ทุกอย่าง หากคุณต้องการกราฟิกแฟนซีในเครื่องเสมือนของคุณ บางที Virgil สามารถให้ฟังก์ชันการทำงานในระดับที่เหมาะสมแก่คุณได้ มันอาจจะเฉพาะกลุ่ม มันยังอยู่ระหว่างการพัฒนา แต่ก็ทำงานได้ดีพอสมควร และจากการทดสอบของฉัน ประสิทธิภาพก็เพียงพอแล้ว เรายังไม่ถึงขั้นตอนที่ระบบเสมือนจริงสามารถแทนที่ฮาร์ดแวร์ทางกายภาพได้อย่างสมบูรณ์และสมบูรณ์ (หากเคย) แต่ Virgil เป็นขั้นตอนที่ถูกต้องในทิศทางที่ถูกต้อง มีไป nerd ไป เสร็จแล้วค่ะ
ไชโย