With the "vesa" driver selected, how do I choose a video mode higher than 800x600 (like 1024x768 or 1280x1024) on Ubuntu 9.04? Some source say that monitors.xml is used instead.

Subquestion 1: Do I have to use a kernel boot parameter at all? (see section below)

Subquestion 2: Is xorg.conf still in use on Ubuntu 9.04?

What I already know / tried

This is my xorg.conf:

Section "Device"
    Identifier  "Configured Video Device"
    Driver      "vesa"

Section "Monitor"
    Identifier  "Configured Monitor"

Section "Screen"
    Identifier  "Default Screen"
    Monitor     "Configured Monitor"
    Device      "Configured Video Device"
    SubSection "Display"
        Viewport    0 0
        Depth       16
        Modes       "1024x768"

As you can see, I set the driver to "vesa" and added the mode 1024x768.

I always get to chose between 640x480 and 800x600 in Gnome. Calling xrandr tells me the same:

Screen 0: minimum 640 x 480, current 800 x 600, maximum 800 x 600
default connected 800x600+0+0 0mm x 0mm
   800x600        61.0* 
   640x480        60.0 

Also, I read that the VESA mode must be set at a very early stage in the boot process, because it must be switched in real mode. Therefor, I boot with an optional kernel parameter like vga=0x316 or vga=316. No matter which number I chose (from this or that table) it mostly complains that it does not know the number, and displays another table for me to chose from. Whatever I chose then, I get a boot screen at this specific resolution, which is slightly moved to the upper left.

But when Gnome comes up with the login screen, It's back at 800x600 and there are no other options than 640x480 an 800x600 for me to choose. So I'm not sure if this boot parameter has any real effect at all.

Also, I read somewhere that Ubuntu 9.04 does not use xorg.conf any more, but on the other hand, I found many tutorials for 9.04 mentioning xorg.conf and some users that reported that it worked for them. The Nvidia tool also made changes to xorg.conf which let my computer crash on a reboot, so there must be something about it.

Some more background

I've got a Dell Precision M70 Laptop with a broken graphics card, that is, some section of the video Ram is broken. The physical resolution of the LCD is 1920x1200 and it has a Nvidia Quadro FX Go 1400.

From my experience on Windows I know that using the NVidia driver I either get garbled output or the computer completely crashes, no matter which mode is chosen. But without a driver, I can happily use the display modes 640x480, 800x600, 1024x768 and 1280x1024. The higher modes fail even without a driver.

I installed Ubuntu some days ago, and using the correct driver, it always crashed, sometimes after it shows some reasonable content, sometimes even without. I can't even use 640x480 with that driver. Using the VESA driver, it's running stable, but I can't switch to any higher resolution than 800x600.

Therefor I conclude that using VESA on a higher resultion should be fine on Ubuntu, if only I could configure it.


Finally I got it. Its now working fine on 1280x1024.

  • I don't have to use the kernel boot parameter at all
  • xorg.conf is still in use, and the 'new' file monitors.xml seems to be neither written nor read by the system

The problem was a misconfiguration of my monitor. Without explicitly giving it a HorizSync the X.org estimated a valid range of 28-33kHz and thus only allowed the lower modes. The logfile /var/log/Xorg.0.log told me:

(II) VESA(0): Configured Monitor: Using hsync range of 31.50-37.90 kHz
(II) VESA(0): Configured Monitor: Using vrefresh range of 50.00-70.00 Hz
(WW) VESA(0): Unable to estimate virtual size
(II) VESA(0): Not using built-in mode "1280x1024" (hsync out of range)
(II) VESA(0): Not using built-in mode "1024x768" (hsync out of range)
(II) VESA(0): Not using built-in mode "640x400" (hsync out of range)
(II) VESA(0): Not using built-in mode "320x400" (hsync out of range)
(II) VESA(0): Not using built-in mode "320x240" (illegal horizontal timings)
(II) VESA(0): Not using built-in mode "320x200" (illegal horizontal timings)

With a setting of 28-73kHz, I can now chose modes up to 1280x1024.

Section "Monitor"
        Identifier      "Configured Monitor"
        HorizSync       28-73

My screen should support even higher modes, and because I only estimated the number 73 I might have to set it even higher. However, currently I know that this is not the reason for the restriction, because modes highter than 1280x1024 are not checked at all. I think I will be able to configure those as well, and I will come back and report the solution as soon as I have it.


I just had a similar problem and followed these instructions to use xrandr. My monitor shows up as Unknown Monitor in the display preferences. Adding xrandr commands to /etc/gdm/Init/Default let me manually specify a series of possible resolutions and add them to the list of choices. I could then use the display preferences to choose which one I want.

In case that link breaks, here's a summary:

  • Use xrandr to see what display you're using.
  • Use cvt to generate a mode line for the resolution you want.
  • Use xrandr --newmode to define the new resolution.
  • Use xrandr --addmode to add the resolution as a choice for the display you're using.
  • Then try selecting the new resolution. I used the display preferences dialog box because it automatically reverts after a few seconds if you choose an unsupported mode.
  • After you've tested the resolutions, edit /etc/gdm/Init/Default to add an xrandr --newmode command and an xrandr --addmode command for each resolution you like.

FYI, I'm using an Intel GMA X4500HD graphics card on a Dell Studio.


Investigate xrandr - at first glance it seems to be the right sort of thing.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.