Debian HVM - small screen resolution

Hello. I installed OS Debian HVM, the maximum resolution I can set inside the virtual machine is 1920X1080.
I installed different OS Debian:
Debian 11/12 XFCE
Debian 11/12 KDE

But it’s not possible to change the screen resolution above 1920X1080 (it simply doesn’t exist).

I’m using Qubes OS 4.2.0

Command output on OS Debian HVM virtual machine:

$ xrandr
Screen 0: minimum 320 x 200, current 1920 x 1080, maximum 8192 x 8192
Virtual-1 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
   1024x768      60.00 +
   1920x1080     60.00* 
   1600x1200     60.00  
   1680x1050     59.95    59.88  
   1400x1050     59.98    59.95  
   1600x900      60.00  
   1280x1024     60.02  
   1440x900      59.89    59.90  
   1280x960      60.00  
   1366x768      59.79    60.00  
   1360x768      60.02  
   1280x800      59.81    59.91  
   1280x768      59.87    59.99  
   1280x720      60.00  
   800x600       60.32    56.25  
   848x480       60.00  
   640x480       59.94  

$ lspci -nn | egrep -i "3d|display|vga"
00:03.0 VGA compatible controller [0300]: Device [1234:1111] (rev 02)

I want to set the screen resolution to 2560X1600 or close to it.
Previously, I used Qubes OS 4.1.2, I installed OS Debian HVM, and I never had problems with screen resolution.
I recently did a clean installation of Qubes OS 4.2.0, I really liked it, but the screen resolution problem is bothering me, please help me.

If you use “cvt 2560 1600 60” you should be able to then set a new modeline for usage.
You can set any resolution you want that it would be capable of as it’s a virtual GPU you won’t blow anything up.

I do this often as I run 2560x1080 in linux all the time.

$  cvt 2560 1600 60
$  xrandr --newmode  {PASTE RESULTING MODELINE HERE}
$  xrandr --addmode Virtual-1 {PASTE WHAT IS IN THE QUOTEMARKS HERE}

Then you should be able to set the new resolution.
You can set it up to be automatically set every startup of the virtual if it doesn’t automatically stay.

Thank you for your time.
I followed your instructions and I was able to add a new screen resolution.
After saving the new settings, Debian HVM turned black, after 10 seconds the 1920X1080 resolution returned.
I installed the hwinfo utility to view information about the OS kernel frame buffer:

$ hwinfo --framebuffer
02: None 00.0: 11001 VESA Framebuffer                           
  [Created at bios.459]
  Unique ID: rdCR.bMFFGolbcb2
  Hardware Class: framebuffer
  Model: "SeaBIOS Developers SeaBIOS VBE Adapter"
  Vendor: "SeaBIOS Developers"
  Device: "SeaBIOS VBE Adapter"
  SubVendor: "SeaBIOS VBE(C) 2011"
  Revision: "Rev. 1"
  Memory Size: 16 MB
  Memory Range: 0xf1000000-0xf1ffffff (rw)
  Mode 0x0300: 640x400 (+640), 8 bits
  Mode 0x0301: 640x480 (+640), 8 bits
  Mode 0x0303: 800x600 (+800), 8 bits
  Mode 0x0305: 1024x768 (+1024), 8 bits
  Mode 0x0307: 1280x1024 (+1280), 8 bits
  Mode 0x030d: 320x200 (+640), 15 bits
  Mode 0x030e: 320x200 (+640), 16 bits
  Mode 0x030f: 320x200 (+960), 24 bits
  Mode 0x0310: 640x480 (+1280), 15 bits
  Mode 0x0311: 640x480 (+1280), 16 bits
  Mode 0x0312: 640x480 (+1920), 24 bits
  Mode 0x0313: 800x600 (+1600), 15 bits
  Mode 0x0314: 800x600 (+1600), 16 bits
  Mode 0x0315: 800x600 (+2400), 24 bits
  Mode 0x0316: 1024x768 (+2048), 15 bits
  Mode 0x0317: 1024x768 (+2048), 16 bits
  Mode 0x0318: 1024x768 (+3072), 24 bits
  Mode 0x0319: 1280x1024 (+2560), 15 bits
  Mode 0x031a: 1280x1024 (+2560), 16 bits
  Mode 0x031b: 1280x1024 (+3840), 24 bits
  Mode 0x031c: 1600x1200 (+1600), 8 bits
  Mode 0x031d: 1600x1200 (+3200), 15 bits
  Mode 0x031e: 1600x1200 (+3200), 16 bits
  Mode 0x031f: 1600x1200 (+4800), 24 bits
  Mode 0x0340: 320x200 (+1280), 24 bits
  Mode 0x0341: 640x400 (+2560), 24 bits
  Mode 0x0342: 640x480 (+2560), 24 bits
  Mode 0x0343: 800x600 (+3200), 24 bits
  Mode 0x0344: 1024x768 (+4096), 24 bits
  Mode 0x0345: 1280x1024 (+5120), 24 bits
  Mode 0x0346: 320x200 (+320), 8 bits
  Mode 0x0347: 1600x1200 (+6400), 24 bits
  Mode 0x0348: 1152x864 (+1152), 8 bits
  Mode 0x0349: 1152x864 (+2304), 15 bits
  Mode 0x034a: 1152x864 (+2304), 16 bits
  Mode 0x034b: 1152x864 (+3456), 24 bits
  Mode 0x034c: 1152x864 (+4608), 24 bits
  Mode 0x0375: 1280x768 (+2560), 16 bits
  Mode 0x0376: 1280x768 (+3840), 24 bits
  Mode 0x0377: 1280x768 (+5120), 24 bits
  Mode 0x0378: 1280x800 (+2560), 16 bits
  Mode 0x0379: 1280x800 (+3840), 24 bits
  Mode 0x037a: 1280x800 (+5120), 24 bits
  Mode 0x037b: 1280x960 (+2560), 16 bits
  Mode 0x037c: 1280x960 (+3840), 24 bits
  Mode 0x037d: 1280x960 (+5120), 24 bits
  Mode 0x037e: 1440x900 (+2880), 16 bits
  Mode 0x037f: 1440x900 (+4320), 24 bits
  Mode 0x0380: 1440x900 (+5760), 24 bits
  Mode 0x0381: 1400x1050 (+2800), 16 bits
  Mode 0x0382: 1400x1050 (+4200), 24 bits
  Mode 0x0383: 1400x1050 (+5600), 24 bits
  Mode 0x0384: 1680x1050 (+3360), 16 bits
  Mode 0x0385: 1680x1050 (+5040), 24 bits
  Mode 0x0386: 1680x1050 (+6720), 24 bits
  Mode 0x0387: 1920x1200 (+3840), 16 bits
  Mode 0x0388: 1920x1200 (+5760), 24 bits
  Mode 0x0389: 1920x1200 (+7680), 24 bits
  Mode 0x038a: 2560x1600 (+5120), 16 bits
  Mode 0x038b: 2560x1600 (+7680), 24 bits
  Mode 0x038c: 2560x1600 (+10240), 24 bits
  Mode 0x038d: 1280x720 (+2560), 16 bits
  Mode 0x038e: 1280x720 (+3840), 24 bits
  Mode 0x038f: 1280x720 (+5120), 24 bits
  Mode 0x0390: 1920x1080 (+3840), 16 bits
  Mode 0x0391: 1920x1080 (+5760), 24 bits
  Mode 0x0392: 1920x1080 (+7680), 24 bits
  Mode 0x0393: 1600x900 (+3200), 16 bits
  Mode 0x0394: 1600x900 (+4800), 24 bits
  Mode 0x0395: 1600x900 (+6400), 24 bits
  Mode 0x0396: 2560x1440 (+5120), 16 bits
  Mode 0x0397: 2560x1440 (+7680), 24 bits
  Mode 0x0398: 2560x1440 (+10240), 24 bits
  Mode 0x0399: 3840x2160 (+7680), 16 bits
  Mode 0x039f: 960x540 (+1920), 16 bits
  Mode 0x03a0: 960x540 (+2880), 24 bits
  Mode 0x03a1: 960x540 (+3840), 24 bits
  Mode 0x03a2: 1280x1080 (+2560), 16 bits
  Mode 0x03a3: 1280x1080 (+3840), 24 bits
  Mode 0x03a4: 1280x1080 (+5120), 24 bits
  Mode 0x03a2: 1280x1080 (+2560), 16 bits
  Mode 0x03a3: 1280x1080 (+3840), 24 bits
  Mode 0x03a4: 1280x1080 (+5120), 24 bits
  Mode 0x03a5: 2160x1080 (+4320), 16 bits
  Mode 0x03a6: 2160x1080 (+6480), 24 bits
  Mode 0x03a7: 2160x1080 (+8640), 24 bits
  Mode 0x03a8: 2560x1080 (+5120), 16 bits
  Mode 0x03a9: 2560x1080 (+7680), 24 bits
  Mode 0x03aa: 2560x1080 (+10240), 24 bits
  Mode 0x03ab: 2560x1440 (+5120), 16 bits
  Mode 0x03ac: 2560x1440 (+7680), 24 bits
  Mode 0x03ad: 2560x1440 (+10240), 24 bits
  Mode 0x03ae: 3200x1800 (+6400), 16 bits
  Mode 0x03b1: 3440x1440 (+6880), 16 bits
  Mode 0x03b2: 3440x1440 (+10320), 24 bits
  Mode 0x03b4: 3840x1080 (+7680), 16 bits
  Mode 0x03b5: 3840x1080 (+11520), 24 bits
  Mode 0x03b6: 3840x1080 (+15360), 24 bits
  Mode 0x03b7: 3840x1600 (+7680), 16 bits
  Mode 0x03cc: 2048x1152 (+4096), 16 bits
  Mode 0x03cd: 2048x1152 (+6144), 24 bits
  Mode 0x03ce: 2048x1152 (+8192), 24 bits
  Mode 0x03cf: 2048x1536 (+4096), 16 bits
  Mode 0x03d0: 2048x1536 (+6144), 24 bits
  Mode 0x03d1: 2048x1536 (+8192), 24 bits
  Mode 0x03d2: 2560x1600 (+5120), 16 bits
  Mode 0x03d3: 2560x1600 (+7680), 24 bits
  Config Status: cfg=new, avail=yes, need=no, active=unknown

As you can see from the command output, 2560x1600 screen resolution is supported, but it cannot be set.
I don’t understand what’s going on at all.

I installed Windows 10 HVM and the screen resolution changes without any problems, I tried different OS Linux and everything is the same, I cannot set the resolution higher than 1920X1080.

What am I doing wrong ?

Do you know how I can use other methods to check what screen resolutions my Linux HVM supports?

Just add the command for adding and setting the Modeline to the startup script. As well as adding the set for it using xrandr. Then every boot it will just start and be set.

That is how I have been doing it for years on a 4k monitor when Ubuntu wouldn’t do it properly.


I added it to the file /etc/X11/xorg.conf
To the Monitor section:

Section "Monitor"
        Identifier   "Monitor0"
        VendorName   "Monitor Vendor"
        ModelName    "Monitor Model"
        Modeline "2560x1080_60.00"  230.00  2560 2720 2992 3424  1080 1083 1093 1120 -hsync +vsync

Then I ran the commands:

$ cvt 2560 1080 60
# 2560x1080 59.98 Hz (CVT) hsync: 67.17 kHz; pclk: 230.00 MHz
Modeline "2560x1080_60.00"  230.00  2560 2720 2992 3424  1080 1083 1093 1120 -hsync +vsync
$ xrandr --newmode "2560x1080_60.00"  230.00  2560 2720 2992 3424  1080 1083 1093 1120 -hsync +vsync
$ xrandr --addmode Virtual-1 "2560x1080_60.00"
$ xrandr --output Virtual-1 --mode "2560x1080_60.00"
xrandr: Configure crtc 0 failed

Nothing worked =(

Latest logs from file: /var/log/Xorg.0.log

[     3.785] (II) modeset(0): Disabling kernel dirty updates, not required.
[    12.454] (II) modeset(0): Allocate new frame buffer 1920x1080 stride
[    38.149] (II) modeset(0): Allocate new frame buffer 2560x1080 stride
[    38.154] (EE) modeset(0): failed to set mode: Cannot allocate memory
[    38.156] (EE) modeset(0): failed to set mode: Invalid argument
[    47.968] (II) modeset(0): Allocate new frame buffer 1920x1080 stride
[   184.771] (II) modeset(0): Allocate new frame buffer 2560x1080 stride
[   184.776] (EE) modeset(0): failed to set mode: Cannot allocate memory
[   184.779] (EE) modeset(0): failed to set mode: Invalid argument
[   184.779] (II) modeset(0): Allocate new frame buffer 1920x1080 stride

~/.xprofile I think it is meant to be in

That way it activates after the user logs in and X is started and utilising the displays.

Until then it doesn’t have anything that It can reference as no communication with the displays for X yet.

As it is a linux HVM you can set it to run at 10,240,000 x 7,680,000 if
you want to… It’s a virtual…

But if you set it that high you may want to assign it about 1 GB of Video
RAM thoguh…

I was unable to change the screen resolution to higher than 1920x1080 (ideally I need a screen resolution of 2560x1440).
I tried different methods, using .xprofile did not work for me, the commands are not executed.
I installed Ubuntu HVM and followed the instructions given:

But I get errors:

$ xrandr --newmode "2560x1440_60.00"  311.83  2560 2744 3024 3488  1440 1441 1444 1490  -HSync +Vsync
X Error of failed request:  BadName (named color or font does not exist)
  Major opcode of failed request:  139 (RANDR)
  Minor opcode of failed request:  16 (RRCreateMode)
  Serial number of failed request:  20
  Current serial number in output stream:  20

I’ve tried a variety of Linux OS and I can’t change the screen resolution above 1920x1080.
The problem is that I am not a confident Linux user. I have to read a lot and search for information on Google.

I’ve been sitting on this problem for 3 days, I’m ready to pay money to someone who can write clear instructions on how to change the screen resolution to 2560x1440 in Linux HVM, which will not change after rebooting the system.

I give up, I just don’t have the strength, there are people on the forum with the same problems and no one could solve this problem.
I am ready to pay money to use the instructions myself and help people like me who are faced with this problem.

The screen resolution should remain the same after a reboot.

I’ll pay the MONEY! We will agree on the amount, payment will be made using BTC.

Add it to ~/.xprofile … I told you earlier…

I couldn’t get ~/.xprofile to work.
I set the default screen resolution to 2560x1440 before starting the screen manager using xorg.conf:

Modeline "2560x1440_144.00"  808.75  2560 2792 3072 3584  1440 1443 1448 1568 -hsync +vsync
Option "PreferredMode" "2560x1440_144.00"

After reboot Linux HVM I get a black window with a screen resolution of 1920x1080, this is because my virtual screen (Virtual-1) cannot be larger than 1920x1080.

It works for you because you connect additional equipment (Monitor), it doesn’t work for me because I’m setting up a virtual screen (Virtual-1), these are different things, they have nothing to do with each other.

If you think I’m wrong and that setting ~/.xprofile will solve the screen resolution problem, you can try setting up a virtual screen (Virtual-1) in Linux HVM yourself and get paid for it.
I will pay you in any way convenient for you: PayPal, Western Union, Bank Transfer, BTC, etc…

I can get it to run to 2560x800.

In general, can’t exceed a number of pixels.

The largest resolution I can run is 2096688 pixels in size.

As long as you are under that, it will work fine.

2560 x 819 has 209640 pixels.

Currently building a script to calculate and accomodate these numbers in the system for setting.

As for the details you are wondering about the details go into the ~/.xsessionrc in Debian to set after X is started fully.

Increasing the available VRAM for the virtual did not work either.

So there is the limitation that you are working with.

Someone else may have a workaround for this without having to install the Qubes-Tools, which is the only othe roptino that I can think of.

I just tried adding 2560x800 screen resolution inside Linux HVM and it worked, then I tried adding 2560x900 screen resolution inside Linux HVM and it didn’t work.
This means that your theory about the pixel is correct.

But then the question arises, is this a problem in QubeOS or in the driver?
Since I have Windows HVM and it can work with a maximum screen resolution of 2560x1600, but Linux HVM does not work with the maximum screen resolution, therefore I can assume that the problem is in the driver or am I wrong ?

It would NOT be the DRIVER for Qubes.
I can gaurantee that it is NOT the Qubes Driver.
I put a fresh install of Debian 12 into my system to do the testing.
That is what I thought you were doing as you wanted an HVM.
I’m still running some tests to see what I can do though.

I can set my Devuan to 2560x1080 easily.

So it is just the version of Linux that is being used.
Perhaps you should try Devuan ?

Okay, I can set my Devuan to whatever I want to, but I’m working on a little issue with it at this time to find out what the problem is.

It may be my machine since none of my monitors go over 1080p, so i’m just investigating what the issue is.

I did give the virtual 512 MB of VRAM just in case that was the issue.

Maybe you can run a test since you have a screen and display that handles a larger resolution please?
I use BeoWulf mainly, but looking to upgrade to later versions.
This version of Linux is safer and more secure and so uch easier to use and view logs and do much more since it has no SystemD in it.
So it has no Microsoft Influence.

You can also check the later variants too.

Let me know how you go on your higher screen resolution.


I mean I’ve even tried to add the Virtual Display to the virtual, but it just keeps not working or adding properly. Machine off, it says it’s an invalid domain, have it on it can’t add device with the path.

So I think the question is… How do we ADD a Display to the virtual for XEN ?

Every time I try to look it up on the internet all I get is details on GPU Passthru…

I tested all three versions of the operating system that you indicated above.
Here’s what I got:

devuan_beowulf_3.1.1_amd64_desktop : Maximum screen resolution 2560x1300

devuan_chimaera_4.0.0_amd64_desktop : Maximum screen resolution 2560x800

devuan_daedalus_5.0.1_amd64_desktop : Maximum screen resolution 2560x800

To be honest, I have already come to terms with the fact that in Linux HVM there is no way to make the screen resolution equal to the screen resolution as in dom0.