How to enable qxl paravirtual graphic card when selecting VNC

Hi,

I would like to know if it is possible to enable qxl paravirtual graphic card when selecting VNC for KVM VMs. I see that is the default option for spice on /etc/one/vmm_exec/vmm_exec_kvm.conf file but I would like to know if there is a way also to make it the default option for VNC or a workaround to make it possible.

Thanks in advance,
Esteban

You can add in /etc/one/vmm_exec/vmm_exec_kvm a RAW parameter with the video card:

RAW="<devices>
  <video>
    <model type='qxl' heads='1'/>
  </video>
</devices>"

If you are also going to use spice make sure to take the video option out from SPICE_OPTIONS or it will be added twice.

Hi Javi,

Thank you very much for your answer :slight_smile:

I think I must be doing something wrong because I still see Cirrus as VGA:

lspci 
00:00.0 Host bridge: Intel Corporation 440FX - 82441FX PMC [Natoma] (rev 02)
00:01.0 ISA bridge: Intel Corporation 82371SB PIIX3 ISA [Natoma/Triton II]
00:01.1 IDE interface: Intel Corporation 82371SB PIIX3 IDE [Natoma/Triton II]
00:01.2 USB controller: Intel Corporation 82371SB PIIX3 USB [Natoma/Triton II] (rev 01)
00:01.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 03)
00:02.0 VGA compatible controller: Cirrus Logic GD 5446
00:03.0 Ethernet controller: Red Hat, Inc Virtio network device
00:04.0 SCSI storage controller: Red Hat, Inc Virtio block device
00:05.0 Unclassified device [00ff]: Red Hat, Inc Virtio memory balloon

I see the options appear on the deployment file but I don’t know why the VM is not seeing it:

cat deployment.0 
 <domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
<name>one-185</name>
<vcpu>4</vcpu>
<cputune>
	<shares>4096</shares>
</cputune>
<memory>8388608</memory>
<os>
	<type arch='x86_64'>hvm</type>
	<boot dev='hd'/>
</os>
<devices>
	<emulator>/usr/bin/qemu-kvm</emulator>
	<disk type='file' device='disk'>
		<source file='/var/lib/one//datastores/100/185/disk.0'/>
		<target dev='vda'/>
		<driver name='qemu' type='qcow2' cache='none'/>
	</disk>
	<disk type='file' device='cdrom'>
		<source file='/var/lib/one//datastores/100/185/disk.1'/>
		<target dev='hda'/>
		<readonly/>
		<driver name='qemu' type='raw'/>
	</disk>
	<interface type='bridge'>
		<virtualport type='openvswitch'/>
		<source bridge='ovsbridge0'/>
		<mac address='04:09:92:65:3b:1b'/>
		<model type='virtio'/>
	</interface>
	<graphics type='vnc' listen='0.0.0.0' port='6085'/>
</devices>
<features>
	<acpi/>
</features>
<cpu mode='host-model'></cpu>
<metadata>
	<system_datastore>/var/lib/one//datastores/100/185</system_datastore>
</metadata>
 </domain>

And indeed, I needed to take the video option out from SPICE_OPTIONS otherwise the VNC does not work.

Any hint on this is welcome :slightly_smiling:

Thanks in advance,
Esteban

Check that there’s only one RAW parameter. In case you already have one merge it in only one. I think that this line is already in a RAW parameter:

<cpu mode='host-model'></cpu>

Merged it should be something like this:

RAW="
<cpu mode='host-model'></cpu>
<devices>
  <video>
    <model type='qxl' heads='1'/>
  </video>
</devices>"

Hi Javi,

Thank you very much for your answer. I have been making several tests, but unfortunately, it is not working. This is what I have:

/etc/one/vmm_exec/vmm_exec_kvm.conf
EMULATOR = /usr/bin/qemu-kvm
OS       = [ boot = "hd", arch = "x86_64" ] 
FEATURES = [ PAE = "no", ACPI = "yes", APIC = "no", HYPERV = "no" ]
DISK     = [ driver = "raw" , cache = "none", DEV_PREFIX = "vd" ]
NIC     = [ model="virtio" ]
RAW="<devices>
            <video>
                    <model type='qxl' heads='1'/>
            </video>
    </devices>"
HYPERV_OPTIONS="<relaxed state='on'/><vapic state='on'/><spinlocks state='on' retries='4096'/>"

And this is the KVM deployment file built:

cat deployment.0 
<domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
<name>one-198</name>
<vcpu>4</vcpu>
<cputune>
	<shares>4096</shares>
</cputune>
<memory>8388608</memory>
<os>
	<type arch='x86_64'>hvm</type>
	<boot dev='hd'/>
</os>
<devices>
	<emulator>/usr/bin/qemu-kvm</emulator>
	<disk type='file' device='disk'>
		<source file='/var/lib/one//datastores/100/198/disk.0'/>
		<target dev='vda'/>
		<driver name='qemu' type='qcow2' cache='none'/>
	</disk>
	<disk type='file' device='cdrom'>
		<source file='/var/lib/one//datastores/100/198/disk.1'/>
		<target dev='hda'/>
		<readonly/>
		<driver name='qemu' type='raw'/>
	</disk>
	<interface type='bridge'>
		<virtualport type='openvswitch'/>
		<source bridge='ovsbridge0'/>
		<mac address='04:09:92:65:3b:1d'/>
		<model type='virtio'/>
	</interface>
	<graphics type='vnc' listen='0.0.0.0' port='6098'/>
</devices>
<features>
	<acpi/>
</features>
   <devices>
            <video>
                    <model type='qxl' heads='1'/>
            </video>
    </devices>
<metadata>
	<system_datastore>/var/lib/one//datastores/100/198</system_datastore>
</metadata>
 </domain>

Probably, I am doing something wrong but I would appreciate any help on it since we would like to set up the qxl and also with:

  "<cpu mode='host-passthrough'></cpu>"

Thanks in adance,
Esteban

I can see the video stanza in the deployment file:

...
<features>
	<acpi/>
</features>
   <devices>
            <video>
                    <model type='qxl' heads='1'/>
            </video>
    </devices>
<metadata>
	<system_datastore>/var/lib/one//datastores/100/198</system_datastore>
</metadata>
...

Have you tried adding the RAW parameter with both cpu and video from my last post?

Hi Javi,

Yes, your example was the first I have tried :slight_smile: , but it does not work for me and I also have tried with your example and host-passthrough:

 "<cpu mode='host-passthrough'></cpu>"

But I did not get success.

Thanks in advance,
Esteban