Following some research, I learned that the proper method to setup multiple virtual monitors with virt-manager, libvirtd, and qemu is to use spice (link, link, link). At first, I added three total Video QXL instances, and then connected to Spice via remote-viewer. This did not work because I saw a window such as this when opening a VM's second or third virtual display (the primary one works fine): Remote viewer showing second monitor with "Waiting for display 2..." displayed in place of the monitor's contents

The extra monitors also were not shown the virtual machine. As such, I tried removing the extra Video QXL hardwares, and instead set the one that was there by default to have three heads:

  <model type="qxl" ram="65536" vram="65536" vgamem="16384" heads="3" primary="yes"/>
  <alias name="video0"/>
  <address type="pci" domain="0x0000" bus="0x00" slot="0x01" function="0x0"/>

This unfortunately produced the same error when opening the additional virtual displays, except not when I do so graphical artifacts appear in the primary display and it becomes unusable as a result.

What did I do incorrectly here? How can I enable multiple displays with this VM software stack?

Main spice XML:

<graphics type="spice" port="5900" autoport="yes" listen="">
  <listen type="address" address=""/>
  <image compression="off"/>
  <gl enable="no"/>

Both the host and guest are Linux (Pop OS and Debian 10 respectively). I tried upping the video ram from 16MBs to 256MBs, which ends the graphical glitches, but it does not enable interaction with the primary monitor after the second is enabled nor does it allow the second to progress past the above screenshot. I also have spice-vdagent installed in the guest.

How can I make this work?


You must log in to answer this question.

Browse other questions tagged .