Today, I replaced my Lacie 19″ CRT with an awesome Dell 2407 WFP LCD widescreen connected via DVI to a GeForce4 MX graphics card. After booting, everything was fine until I reached the xdm login screen. Somehow the display was garbled, so the text was barely readable. It seemed like the rows of pixels were offset seemingly randomly to the left or right by up to about 0.4cm.
At first, I thought it was just because X remembered the setup from the CRT screen, which supports a much higher refresh rate (85Hz compared to 60Hz on the flatpanel). Setting the monitor type and resolution in SaX did not help, though.
The solution was to install the Nvidia binary only drivers, combined with a custom modeline (though I am not sure this is strictly necessary). There is a special Howto for installing on SUSE. Alternatively, just FTP to download.nvidia.com and grab the files in /novell/sle10/i586 (or x86_64 if you are on a 64bit CPU). There are three versions of the nvidia kernel module, so be sure to get the one matching your kernel (‘uname -r’ in a console will display your kernel version – you should look for default or smp at the end of the string).
For the modeline, I checked the X startup log (/var/log/Xorg.0.log). When the open source Nvidia driver (nv) loads, it dumps the information read from the display via EDID, Among other things, this dump gives the allowed frequence ranges and display timings. This is what I came up with:
ModeLine “1920×1200” 154.0 1920 1968 2000 2080 1200 1203 1209 1235
This line goes in /etc/X11/xorg.conf in the section labelled Modes. Also, in the Screen section, “1920×1200” should be the first mode in each of the subsections.
For the changes to take effect, X needs to be restarted. Either reboot the machine or do an ‘init 3’ to go into console-only mode and then an ‘init 5’ to start X again.
With the new driver, the display came up correctly. Next problem was that the text was really, really small. This is because the DPI of the new panel is much higher than the old CRT. Fixing this is easy: Open up Desktop > Control Center > Fonts. Click ‘Details’ and set resolution to 94 dots per inch. This is also a good time to adjust the font rendering setup. I seem to get the best results with Subpixel smoothing and Full hinting, but that is probably a matter of taste.