Add/fix undetected or missing monitor display resolutions to X on Ubuntu 12.04

I am using a DVI to VGA converter on my Ubuntu 12.04 machine to connect the graphics card (which doesn't have native VGA) to a Dell 2405 monitor on VGA. The Dell 2405 can handle resolutions up to 1920x1200 however the use of the VGA adapter has prevented Ubuntu from correctly reading the EDID data that the monitor provides, to detect the resolutions the monitor is capable of. At current I am stuck with the highest resolution of 1024x768. Xorg.conf has typically been the place in the past to address these issues however it seems to be becoming depreciated. Here's how I manually added the higher resolutions...

First off manually add and test the resolution you want. Note this will not be persistent after rebooting, you will lose the new resolution. Once you're happy the resolution works, you can then make it persistent between reboots.

You will cvt or gtf for generating the configurations for the monitor modes I believe cvt is standard with Ubuntu 12.04.

1. Create the modeline with cvtcvt 1920 1080

The output:# 1920x1080 59.96 Hz (CVT 2.07M9) hsync: 67.16 kHz; pclk: 173.00 MHzModeline "1920x1080_60.00"  173.00  1920 2048 2248 2576  1080 1083 1088 1120 -hsync +vsync

2. Create the new mode with xrandr - Take the modeline output from above and append it tot eh xrandr --newmode command. Note I had to drop the refresh rate "_60.00" from the new mode name for this to work. Without dropping the refresh rate the command refuse to work.xrandr --newmode "1920x1080"  173.00  1920 2048 2248 2576  1080 1083 1088 1120 -hsync +vsync

3. Check the new resolution mode was createdxrandr

The output:
Screen 0: minimum 320 x 200, current 1920 x 1080, maximum 8192 x 8192
VGA1 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
   1920x1080      60.0  
   1024x768       60.0 *+ 
   800x600        60.3     56.2  
   848x480        60.0  
   640x480        59.9  
HDMI1 disconnected (normal left inverted right x axis y axis)
DP1 disconnected (normal left inverted right x axis y axis)
HDMI2 disconnected (normal left inverted right x axis y axis)
HDMI3 disconnected (normal left inverted right x axis y axis)
DP2 disconnected (normal left inverted right x axis y axis)
DP3 disconnected (normal left inverted right x axis y axis)

4. Add the mode to the config - For me this step also switch the monitor straight to the new resolution modexrandr --addmode VGA1 "1920x1080"

5. For persistence edit /usr/share/X11/xorg.conf.d/10-monitor.conf
sudo vi /usr/share/X11/xorg.conf.d/10-monitor.conf

Update it to read as follows, note I added two resolution modes. I used cvt both times to generate the modelines which I then manually addded to the config file (see those lines in blue):

Section "Monitor"
  Identifier "Monitor0"
  Modeline "1920x1200"  193.25  1920 2056 2256 2592  1200 1203 1209 1245 -hsync +vsync
  Modeline "1920x1080"  173.00  1920 2048 2248 2576  1080 1083 1088 1120 -hsync +vsync

EndSection
Section "Screen"
  Identifier "Screen0"
  Device "VGA1"
  Monitor "Monitor0"
  DefaultDepth 24
  SubSection "Display"
    Depth 24
    Modes "1920x1200" "1920x1080" "1024x768"
  EndSubSection
EndSection

Again I had to drop the refresh rates from the mode names, without dropping the refresh rates when rebooting I just received a black screen without a terminal, when dropping to the terminal I received errors related to parsing the monitor config.

Also check that the identifier in the screen section matches that shown in the xrandr output i.e. Screen 0: minimum 320 x 200, current....

6. Save the config from within vi [ESC] :wq! [Enter] and reboot

7. If anything goes awry on reboot simply drop to a terminal and remove the monitor config file
sudo rm /usr/share/X11/xorg.conf.d/10-monitor.conf


1 comment:

  1. Thanks for the step by step, worked great for me. I am using WMWare so changed a few items and it worked the first time. Had to actually create the file "10-monitor.conf" though.

    Here is my file contents:

    Section "Monitor"
    Identifier "Monitor0"
    Modeline "1920x1200" 193.25 1920 2056 2256 2592 1200 1203 1209 1245 -hsync +vsync
    Modeline "1920x1080" 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync
    Modeline "1680x1050" 146.25 1680 1784 1960 2240 1050 1053 1059 1089 -hsync +vsync

    EndSection
    Section "Screen"
    Identifier "Screen0"
    Device "Virtual1"
    Monitor "Monitor0"
    DefaultDepth 24
    SubSection "Display"
    Depth 24
    Modes "1920x1200" "1920x1080" "1680x1050"
    EndSubSection
    EndSection

    ReplyDelete