XCP-ng VM's display resolution locked

Hey All,

Hope everyone is staying safe. Following Tom’s great video’s, I have used XCP-ng & Xen Orchestra (XO) in a home lab for a while now, though never had to worry too much about the graphics resolution of VM’s as I just RDP’ed or SSH’ed into them. I’ve recently started at a company as a sysadmin and need to redo their infrastructure which is a combination of ESXi (many versions) and Hyper-V (2012r2 & 2016). I wish to move across to XCP-ng with Xen Orchestra, which is fully approved & paid for, though I hit a snag. We use ConnectWise Control (CWC) for secure remote control and connection auditing. Auditing being VERY important as we create controlled virtualised environments for clients to access confidential data. As CWC only uses the OS’s graphics drivers, in this case “Microsoft Basic Display Adaptor”, I am unable to change the resolution (1024x768) as its greyed out, even if I enable the VGA option in XO and give it 16MB of video memory, which is more then enough for 1080p. I contacted XO support and they had a look, though said they couldn’t help due to console display issues in the XO web interface. This seemed a bit tenuous to me as other Hypervisors either have scroll bars or just become unusable for console mode (displaying off screen), but not restricting the VM’s display because of that factor. I have seen mentioned that the VM takes the graphics settings on the host PC. I hope this isn’t true or at least isn’t locked in, as both ESXi (vSphere) and Hyper-V don’t have that limitation. It also seems strange to have a VGA mode with the allowance of 16MB of video memory when the res is locked in at 1024x768. This is a show stopper for us so I’m hopping there is a work around.
Before people start saying just RDP or use CWC Bridge mode, as mentioned above we need the connection auditing of CWC, and bridge mode is a single point of failure, also I’m not comfortable with the way machines are added to the console via 1 username and password. TeamViewer acts in the same way as CWC, also utilising the OS’s graphics driver.
To reiterate, I’m after a way for XCP-ng/XO VM’s to display at least 1080p using CWC (or TeamViewer at a pinch) and won’t use RDP or CWC Bridge mode. I’m hoping that I’m just overlooking something simple and will facepalm when someone replies with “Just do X”. Note that soon most OS’s in our environment will be Windows 10 & Server 2019.

I look forward to people’s responses and thanks in advance.

Cheers

I tested on a few of our hosts and they all seem to support higher resolutions. Under advanced make sure you have Windows “Update tools” and “VGA” for that VM turned on.

I just checked one of mine, a server 2022 eval and the same issue. I had to change the memory to 16mb, but had previously had VGA turned on. Did a restart to see if that might allow it to change to the higher memory limit, but it did not.
monitor_res

You can see that it is only using 4mb for graphics.

This machine is UEFI if that matters, that was one of the improvements when I created this VM and wanted to try it out.

Sorry can’t help more, but will be interested in the solution if you find one.

Hey Tom, thanks for taking the time to reply. At least I know it can be done. Setting VGA and 16MB is part of my SOP, so all good there. I might SSH into the host and verify the GUI settings are applying. I’m using a DELL R730, and know from your videos that you mainly use the DELL R7xx series. You don’t have an addition graphics card plugged in do you?
I’m having the same issue as Greg_E. I didn’t want to do a deep dive to fix this if it wasn’t possible. Now I know it is, I’ll spend more time on it and post back here when I have a fix.

Thanks again Tom and keep up the great work.

I tested it on a Dell R630, R720, and a Dell Inc. OptiPlex 9020 desktop and none have an extra car but all can do the higher resolution.

Legend, thanks mate. I’ll do a deep dive and post back my findings.

Cheers and stay safe
Brad

Hey Tom, with regards to this display issue, are your VM’s using the “Microsoft Basic Display Adaptor”? I’ve touched base with Xen Orchestra support and they can’t replicate your settings. See below. I’m wondering if in all your research you can come across a setting/config that you apply by default, that makes all the difference? Thanks again for your time.

From XOA Support
Looking at it this morning again can’t find anything, my VM as 16m off video RAM but for me the limitation is on the Microsoft basic display driver that limit the max res for the display.

Not sure how Tom has work around that, i will be interested to see what display adaptor is displayed on is device manager and what driver is linked to that device.

I am not doing anything special, here is a screen shot from a Windows 10 running on my Dell R720 with the “Windows Update” turned on.

He Tom,

Sorry to bother you with that but still trying to reproduce on my side.
Here is what i have on my side:

Latest W10 release up to date
21h1
build 19043.1165

Generic non-pnp monitor
Driver 10.0.19041.868

Microsoft basic display
Driver 10.0.19041.868

Latest citrix tools
9.2.1-26

Update tools and VGA 16Mo UEFI
Original template W10 64


And the resolution is still blocked

If it’s not too much to ask could you please dump me the param of your VM so i could compare with mine?

xe vm-param-list uuid=UUID of the VM

Thanks for your help.

Here you go:

[14:20 xcp-ng-r720 ~]# xe vm-param-list uuid=08af72e3-38d7-4f63-2b1d-a12366774e8e
uuid ( RO) : 08af72e3-38d7-4f63-2b1d-a12366774e8e
name-label ( RW): Windows10 Lab Base
name-description ( RW): WIndows Ten Test
user-version ( RW): 2
is-a-template ( RW): false
is-default-template ( RW): false
is-a-snapshot ( RO): false
snapshot-of ( RO):
snapshots ( RO):
snapshot-time ( RO): 19700101T00:00:00Z
snapshot-info ( RO):
parent ( RO):
children ( RO):
is-control-domain ( RO): false
power-state ( RO): halted
memory-actual ( RO): 8589938688
memory-target ( RO): 0
memory-overhead ( RO): 77594624
memory-static-max ( RW): 8589934592
memory-dynamic-max ( RW): 8589934592
memory-dynamic-min ( RW): 4294967296
memory-static-min ( RW): 2147483648
suspend-VDI-uuid ( RW):
suspend-SR-uuid ( RW):
VCPUs-params (MRW):
VCPUs-max ( RW): 8
VCPUs-at-startup ( RW): 8
actions-after-shutdown ( RW): Destroy
actions-after-reboot ( RW): Restart
actions-after-crash ( RW): Restart
console-uuids (SRO):
hvm ( RO): false
platform (MRW): timeoffset: -14400; videoram: 8; hpet: true; acpi_laptop_slate: 1; device-model: qemu-upstream-compat; apic: true; device_id: 0002; cores-per-socket: 2; pae: true; vga: std; nx: true; viridian_time_ref_count: true; viridian: true; acpi: 1; viridian_reference_tsc: true
allowed-operations (SRO): changing_NVRAM; changing_dynamic_range; changing_shadow_memory; changing_static_range; make_into_template; migrate_send; destroy; export; start_on; start; clone; copy; snapshot
current-operations (SRO):
blocked-operations (MRW):
allowed-VBD-devices (SRO): 1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 15; 16; 17; 18; 19; 20; 21; 22; 23; 24; 25; 26; 27; 28; 29; 30; 31; 32; 33; 34; 35; 36; 37; 38; 39; 40; 41; 42; 43; 44; 45; 46; 47; 48; 49; 50; 51; 52; 53; 54; 55; 56; 57; 58; 59; 60; 61; 62; 63; 64; 65; 66; 67; 68; 69; 70; 71; 72; 73; 74; 75; 76; 77; 78; 79; 80; 81; 82; 83; 84; 85; 86; 87; 88; 89; 90; 91; 92; 93; 94; 95; 96; 97; 98; 99; 100; 101; 102; 103; 104; 105; 106; 107; 108; 109; 110; 111; 112; 113; 114; 115; 116; 117; 118; 119; 120; 121; 122; 123; 124; 125; 126; 127; 128; 129; 130; 131; 132; 133; 134; 135; 136; 137; 138; 139; 140; 141; 142; 143; 144; 145; 146; 147; 148; 149; 150; 151; 152; 153; 154; 155; 156; 157; 158; 159; 160; 161; 162; 163; 164; 165; 166; 167; 168; 169; 170; 171; 172; 173; 174; 175; 176; 177; 178; 179; 180; 181; 182; 183; 184; 185; 186; 187; 188; 189; 190; 191; 192; 193; 194; 195; 196; 197; 198; 199; 200; 201; 202; 203; 204; 205; 206; 207; 208; 209; 210; 211; 212; 213; 214; 215; 216; 217; 218; 219; 220; 221; 222; 223; 224; 225; 226; 227; 228; 229; 230; 231; 232; 233; 234; 235; 236; 237; 238; 239; 240; 241; 242; 243; 244; 245; 246; 247; 248; 249; 250; 251; 252; 253; 254
allowed-VIF-devices (SRO): 1; 2; 3; 4; 5; 6
possible-hosts ( RO): 14ed4c7d-d2a4-4c86-b2f6-12170e4537f1
domain-type ( RW): hvm
current-domain-type ( RO): unspecified
HVM-boot-policy ( RW): BIOS order
HVM-boot-params (MRW): order: c
HVM-shadow-multiplier ( RW): 1.000
PV-kernel ( RW):
PV-ramdisk ( RW):
PV-args ( RW):
PV-legacy-args ( RW):
PV-bootloader ( RW):
PV-bootloader-args ( RW):
last-boot-CPU-flags ( RO): vendor: GenuineIntel; features: 1fcbfbff-97ba2223-2d93fbff-00000403-00000001-00000000-00000000-00000000-00001000-9c000400-00000000-00000000-00000000-00000000-00000000
last-boot-record ( RO): ‘’
resident-on ( RO):
affinity ( RW):
other-config (MRW): import_task: OpaqueRef:33dd5a0d-aa92-4a1c-b2fb-8200bcd1b5ac; mac_seed: 15e350b4-ef3c-f986-9ca0-e6fc324b9d27; pci: 00:1b.0; base_template_name: Windows 10 (64-bit); install-methods: cdrom; xo:copy_of: 19bef414-e847-c517-4d8c-db3579e7b64e
dom-id ( RO): -1
recommendations ( RO):
xenstore-data (MRW): vm-data/mmio-hole-size: 268435456; vm-data:
ha-always-run ( RW) [DEPRECATED]: false
ha-restart-priority ( RW):
blobs ( RO):
start-time ( RO): 19700101T00:00:00Z
install-time ( RO): 19700101T00:00:00Z
VCPUs-number ( RO): 0
VCPUs-utilisation (MRO):
os-version (MRO):
PV-drivers-version (MRO):
PV-drivers-up-to-date ( RO) [DEPRECATED]: true
memory (MRO):
disks (MRO):
VBDs (SRO): 5c814098-e853-e667-3e0e-24ac1543ec75
networks (MRO): 0/ip: 172.16.69.191; 0/ipv4/0: 172.16.69.191; 0/ipv6/0: fe80:0000:0000:0000:1869:62d2:84f5:b697
PV-drivers-detected ( RO): true
other (MRO): feature-balloon: 1; feature-suspend: 1; has-vendor-device: 1; platform-feature-xs_reset_watches: 1; platform-feature-multiprocessor-suspend: 1
live ( RO): true
guest-metrics-last-updated ( RO): 20210819T10:35:26Z
can-use-hotplug-vbd ( RO): unspecified
can-use-hotplug-vif ( RO): true
cooperative ( RO) [DEPRECATED]: true
tags (SRW): Lab Test Machines, winders
appliance ( RW):
snapshot-schedule ( RW):
is-vmss-snapshot ( RO): false
start-delay ( RW): 0
shutdown-delay ( RW): 0
order ( RW): 0
version ( RO): 0
generation-id ( RO): 5062211737269012600:9011267006993312963
hardware-platform-version ( RO): 2
has-vendor-device ( RW): true
requires-reboot ( RO): false
reference-label ( RO):
bios-strings (MRO): bios-vendor: Xen; bios-version: ; system-manufacturer: Xen; system-product-name: HVM domU; system-version: ; system-serial-number: ; baseboard-manufacturer: ; baseboard-product-name: ; baseboard-version: ; baseboard-serial-number: ; baseboard-asset-tag: ; baseboard-location-in-chassis: ; enclosure-asset-tag: ; hp-rombios: ; oem-1: Xen; oem-2: MS_VM_CERT/SHA1/bdbeb6e0a816d43fa6d3fe8aaef04c2bad9d3e3d

Thanks a lot Tom,
After testing with the infos you provided i heve been able to pinpoint the isssue.
You can switch resolution cause your VM is in BIOS mode, the issue come with UEFI mode.

Where looking at it on our side.

Thanks a lot for your help.

2 Likes

That explains my Server 2022 having the same issue, they are UEFI mode and I think secure boot (because eventually we will be required to have these two things). I may get time to mess with this today, cleaning up updates on my servers.

I can confirm, I only have this with UEFI mode enabled. Also looking forward to a proper fix, since it’s a production server and i don’t wanna do anything too crazy with it.

Hi All,

So a fix has come through from Yannick and the guys. See below. Sorry, I meant to post this earlier.

So you will have to set the resolution in the BIOS of the VM. To do that:

  • At VM start (tiano bios logo) press esc.
  • Go to device manager menu
  • Go to OVMF Platform configuration
  • Change Preferred
  • Select the resolution you want
  • F10 to save
  • restart the VM

At reboot you should be fine.

They are updating the official doco.

Thanks again Tom for taking time out of your busy schedule to assist, and thanks to Yannick and the guys at XOA support for working through to a solution.

Cheers

1 Like

Thanks! That did work but it also uncovered something else not related to the graphics…

Even though you may have secure boot turned on in the VM setting in XO, it is not enabled in the BIOS. Yes I had to go poking around now that I know how to get in. I’ll have to turn this on in BIOS and try making a new VM to see if it really works. The VM that I most recently built to work on some tweaks before imaging does show that secure boot is off, not all that important but one of the things I’m wanting to test going forward.

Awesome, i will test on a production server tomorrow!

Answering myself: Tested on a server now. Worked beatifully. But i wasn’t fast enough to get it to recognize ESC while rebooting, so i shut it down and then managed to get into to UEFI menu.

Thanks a lot!

Yes, there is a very narrow window to get into the UEFI menu, and that’s on my old slow hardware. Fast current hardware might make this really difficult.