นี่เป็นความพยายามครั้งแรกของฉันที่จะให้จอภาพหลายจอทำงานกับ vm ยังไม่ประสบความสำเร็จในตอนนี้
ฉันกำลังทำงานกับเครื่องโฮสต์ Linux Mint 20.2 ซึ่งมี Ubuntu 20.04 เป็นฐาน เคอร์เนล 5.4.0-100-ทั่วไป
ฉันใช้ virt-manager (2.2.1) และสามารถสร้างและรันเครื่องแขก PopOS, Mint (20.3) และ Arch Linux (2022.02.01) ได้สำเร็จ ฉันไม่สามารถให้พวกเขาแสดงจอภาพหลายจอได้
ประเด็นสำคัญเกี่ยวกับเรื่องนี้จบลงด้วยการชี้ให้ฉันเห็นสิ่งนี้ การสาธิตยูทูบ. วิธีการพื้นฐานที่อธิบายไว้ที่นี่ไม่ได้ผลสำหรับฉัน
XML ของส่วน Display Spice ของฉันอ่านว่า:
<graphics type="spice" autoport="yes">
<listen type="address"/>
<image compression="off"/>
</graphics>
ฉันได้ตั้งค่าจำนวนหัวในส่วน Video QXL เป็น 2, 3 หรือ 4
<video>
<model type="qxl" ram="65536" vram="65536" vgamem="16384" heads="2" primary="yes"/>
<address type="pci" domain="0x0000" bus="0x00" slot="0x01" function="0x0"/>
</video>
การเข้าถึงเครื่องที่กำลังรันโดยใช้ virt-viewer หรือ remote-viewer นั้นสำเร็จ แต่มีเพียงจอแสดงผลเดียวเท่านั้น สำหรับค่าของ heads >=2 รายการที่แสดงที่เกี่ยวข้องในเมนูจะมีอยู่ แต่มีความละโมบและไม่สามารถเข้าถึงได้ ภายในเครื่องเสมือน (รสชาติใดก็ได้) xrandr ให้ฉัน:
Screen0: ขั้นต่ำ 320x200 ปัจจุบัน 1024x768 สูงสุด 8192x8192
Virtual-1 เชื่อมต่อหลัก 1024x768+0+0 0mm x 0mm
1024x768 60.00*+
{...หลายบรรทัด}
Virtual-2 ถูกตัดการเชื่อมต่อ
Virtual-3 ถูกตัดการเชื่อมต่อ
เนื่องจาก ดีที่สุดที่ฉันสามารถบอกได้นี่เป็นวิธีที่แนะนำสำหรับแขกที่ใช้ linux ซึ่งในทางทฤษฎีรองรับได้ถึง 4 หน้าจอ เพื่อความบันเทิง ฉันลองเพิ่มอุปกรณ์ qxl พิเศษตามคำแนะนำสำหรับผู้เยี่ยมชมที่ใช้ Windows ซึ่งเปิดหน้าจอพิเศษขึ้นมาจริง ๆ ซึ่งไม่มีอุปกรณ์ใดรับสัญญาณจากผู้เยี่ยมชม ("กำลังรอการแสดงผล 2" ตลอดเวลา)
ฉันได้เพิ่มข้อกำหนดของหน่วยความจำตามที่อธิบายไว้ใน พื้นที่เครื่องเทศ เพื่อให้สามารถรับมือกับสี่จอภาพโดยไม่มีการเปลี่ยนแปลงของผลลัพธ์
<video>
<model type='qxl' ram='65536' vram='65536' vgamem='16384' heads='2' primary='yes'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
</video>
จำไม่ได้ว่าฉันไปที่นั่นได้อย่างไร แต่ หน้านี้ กล่าวถึงมอนิเตอร์การแมปในไฟล์คอนฟิก virt-viewer ฉันสามารถแมปมอนิเตอร์:
[a2459703-ffc5-45a1-849e-b21c67186aa6]
การตรวจสอบแผนที่=1:2;2:3
จากนั้นใช้
virt-viewer --vm1 แบบเต็มหน้าจอ
มันเปิดหน้าต่างเดียวบนจอภาพที่สองและสามของฉันอย่างน่าประหลาด แทนที่จะเปิดหน้าต่างแสดงผลสำหรับแต่ละจอภาพ ซึ่งเป็นสิ่งที่ฉันคาดไว้ ฉันอาจพลาดบางสิ่งไปหรือเข้าใจผิดไปโดยสิ้นเชิงว่าสิ่งนี้มีไว้เพื่อการทำงานอย่างไร
ฉันคิดว่าอาจเป็นเพราะ virt-manager/virt-viewer เวอร์ชันเก่าฉันประสบความสำเร็จในการทำให้ virt-manager 3.2.0 ทำงานหลังจากดาวน์โหลดจาก repo ผู้จัดการ virt, ไม่มีผล.
virt-viewer เวอร์ชันล่าสุดที่มีอยู่ใน Mint repos ดูเหมือนจะเป็น 7.0
อัปเดต sudo apt
sudo apt ติดตั้ง virt-manager
ผลลัพธ์ในเวอร์ชัน 7.0 เท่านั้น เวอร์ชัน 11 ดูเหมือนจะพร้อมใช้งานใน virt-viewer repo แต่ฉันไม่สามารถหาวิธีติดตั้งได้ตลอดชีวิตโดยไม่มีคำแนะนำในการติดตั้งที่ระบุตัวได้ - คำแนะนำทั้งหมดที่ฉันสามารถหาได้อ้างอิงถึงการใช้ apt เพื่อติดตั้ง
วิธีที่ใกล้ที่สุดที่ฉันสามารถค้นหาข้อความแสดงข้อผิดพลาดได้คือเมื่อเรียกใช้ virt-viewer ด้วยแฟล็กการดีบัก:
virt-viewer:23920): virt-viewer-DEBUG: 14:32:11.467: กำลังเชื่อมต่อ ...
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:11.467: กำลังเปิดการเชื่อมต่อกับ libvirt ด้วย URI <null>
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:11.469: การเชื่อมต่อเริ่มต้น
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:11.469: โน้ตบุ๊กแสดงสถานะ 0x555ddc8a82b0
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:13.326: virt_viewer_app_set_uuid_string: UUID เปลี่ยนเป็น a2459703-ffc5-45a1-849e-b21c67186aa6
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:13.326: โน้ตบุ๊กแสดงสถานะ 0x555ddc8a82b0
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:13.327: Guest vm1 กำลังทำงาน กำลังพิจารณาการแสดงผล
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:13.328: ตั้งค่าข้อมูลการเชื่อมต่อ: (null),(null),-1,-1,(null),(null),(null), 0
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:13.330: Guest vm1 มีการแสดงเครื่องเทศ
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:13.363: ที่อยู่กราฟิกสำหรับแขกคือ 127.0.0.1:5900
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:13.364: ตั้งค่าข้อมูลการเชื่อมต่อ: localhost,127.0.0.1,5900,-1,(null),(null),(null),-1
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:13.364: ห้ามดำเนินการข้อผิดพลาด: การเข้าถึงแบบอ่านอย่างเดียวป้องกัน virDomainOpenGraphicsFD
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:13.364: หลังจากเปิดการเชื่อมต่อการโทรกลับ fd=-1
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:13.364: กำลังเปิดการเชื่อมต่อ TCP โดยตรงเพื่อแสดงที่ 127.0.0.1:5900:-1
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:13.370: ช่อง Spice ใหม่ 0x555ddc97a200 SpiceMainChannel 0
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:13.370: โน้ตบุ๊กแสดงสถานะ 0x555ddc8a82b0
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:13.371: reconnect_poll: 0
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:13.482: ช่องหลัก: เปิด
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:13.482: โน้ตบุ๊กแสดงสถานะ 0x555ddc8a82b0
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:13.483: แอปไม่เต็มหน้าจอ
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:13.483: แอปไม่เต็มหน้าจอ
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:13.483: ช่องเครื่องเทศใหม่ 0x555ddc950890 SpiceUsbredirChannel 1
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:13.483: ช่อง usbredir ใหม่
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:13.483: ช่อง Spice ใหม่ 0x555ddc941090 SpiceUsbredirChannel 0
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:13.483: ช่อง usbredir ใหม่
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:13.483: ช่อง Spice ใหม่ 0x555ddc95aa70 SpiceRecordChannel 0
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:13.483: ช่อง Spice ใหม่ 0x555ddc941b30 SpicePlaybackChannel 0
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:13.483: ช่องเสียงใหม่
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:13.509: ช่อง Spice ใหม่ 0x555ddc933960 SpiceDisplayChannel 0
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:13.509: ช่อง Spice ใหม่ 0x555ddcc0d990 SpiceCursorChannel 0
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:13.512: ช่อง Spice ใหม่ 0x555ddcc0cdc0 SpiceInputsChannel 0
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:13.512: ช่องอินพุตใหม่
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:13.661: กำลังสร้างการแสดงเครื่องเทศ (#:0)
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:13.661: แทรกจอแสดงผล 0 0x555ddc8c6f20
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:13.709: กำลังสร้างการแสดงเครื่องเทศ (#:1)
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:13.709: แทรกจอแสดงผล 1 0x555ddc8c6d70
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:13.709: พบหน้าต่างที่ไม่มีจอแสดงผล ใช้ซ้ำสำหรับจอแสดงผล #0
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:13.710: แสดงโน้ตบุ๊ก 0x555ddc8a82b0
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:13.713: จัดสรร 1024x768
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:13.713: เด็กจัดสรร 1024x768
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:13.736: จัดสรร 1024x768
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:13.736: เด็กจัดสรร 1024x768
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:24.945: จัดสรร 1024x768
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:24.946: เด็กจัดสรร 1024x768
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:24.964: จัดสรร 1024x768
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:24.964: เด็กจัดสรร 1024x768
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:25.055: จัดสรร 1024x768
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:25.056: เด็กจัดสรร 1024x768
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:25.587: จัดสรร 1024x768
(virt-viewer:23920): virt-viewer-DEBUG: 14:32:25.587: เด็กจัดสรร 1024x768
"การดำเนินการผิดพลาดถูกห้าม: การเข้าถึงแบบอ่านอย่างเดียวป้องกัน virDomainOpenGraphicsFD" ทำให้ฉันแยกแยะเกี่ยวกับการพยายามใช้ virt-viewer เป็นผู้ใช้รายอื่นที่มีสิทธิ์ที่ไม่ใช่รูท เพื่อตรวจสอบ ฉันได้เรียกใช้ virt-manager และ virt-viewer เป็นผู้ใช้คนเดียวกันที่อยู่ในกลุ่ม sudo อีกครั้งไม่มีการเปลี่ยนแปลง
คำแนะนำใด ๆ ที่ฉันควรดูต่อไปหรือสิ่งที่อาจเป็นประโยชน์ในการแก้ไขข้อบกพร่องนี้จะได้รับการชื่นชม