Wednesday, July 13, 2011
Many people running Ubuntu 9.04 are having trouble with the proprietary nVidia driver (nvidia-graphics-driver-180 in my case) including getting it to go to high resolutions that fit the native resolution of widescreen monitors. I had the same problem with an nVidia GeForce 6150 LE and Dell UltraSharp 2407WFPHC monitor.
I was able to get all the resolutions, including 1920×1200, for my monitor as well as have the nVidia driver recognize the monitor as a 2407WFPHC, by doing the following:
(If you can’t see your screen at all after enabling the nVidia driver, first read the companion post, Ubuntu 9.04 Screen Resolution/Monitor Out of Range (nVidia Driver 180).)
- Open a terminal window
- Go to the X11 directory (cd /etc/X11)
- Make a backup of the current xorg.conf (e.g., sudo cp xorg.conf xorg.conf.backup)
- Run nvidia-xconfig with root permission (sudo nvidia-xconfig). If you get a parsing error, delete xorg.conf so nvidia-xconfig can create a fresh one.
- Open xorg.conf with your favorite editor (e.g. sudo vim xorg.conf)
- You’ll see a lot of extra settings now
- Look for Section “Monitor”. Mine defaulted to the following settings:
HorizSync 28.0 – 33.0
VertRefresh 43.0 – 72.0
- Change the HorizSync and VertRefresh values to the correct ones for your particular monitor. For my 2407WFPHC, I put the following:
HorizSync 30.0 – 83.0
VertRefresh 56.0 – 76.0
- Save the xorg.conf file
- Log out and restart the X server (at the login screen, select Menu, then Restart X server)
- Log in and run the NVIDIA X Server Settings tool. You should now have a whole bunch of resolutions from which to choose. I selected 1920×1200.
The reason that this works is that the nVidia driver needs to know the frequency ranges for your monitor in order to know what resolutions are safe to use. Setting the HorizSync and VertRefresh in xorg.conf provides this necessary information.