Jul 7, 2007

Screen shifted to the right on FC7

Description

For my Windows XP/Fedora Core 7 (GNOME Desktop) dual-boot machine (nVidia TNT2/Dell 1708FP LCD), 1024x768 resolution looks fine on WinXP but has a right shift on FC7. It seems due to the improper refresh rate setting. However, only refresh rate of 60Hz is selectable under 1024x768 in System>Preferences>Hardware>Screen Resolution. Changing horizontal screen position through LCD's OSD menu fixed the problem in FC7, and the display in WinXP would be affected at the same time.

Solution

First take a look on Xorg configuration file (/etc/X11/xorg.conf) in my machine.

Listing 1. Excerpt of /etc/X11/xorg.conf (original)
Section "Monitor"
        Identifier   "Monitor0"
        ModelName    "DELL 1708FP"
        HorizSync    31.0 - 48.5
        VertRefresh  50.0 - 76.0
        Option      "dpms"
EndSection

Section "Device"
        Identifier  "Videocard0"
        Driver      "nv"
EndSection

Section "Screen"
        Identifier "Screen0"
        Device     "Videocard0"
        Monitor    "Monitor0"
        DefaultDepth     24
        SubSection "Display"
        Viewport   0 0
        Depth     24
        EndSubSection
EndSection

It was generated by system-config-display. In this case, the attributes inside "Monitor" section is likely unsuitable for the Dell LCD. i have to manually edit the configuration file according to the useful information in Xorg log. Following the guide and example, it is not very hard to go through.

In my Xorg log, the optimized values for DELL1708FP can be found as follows.

Listing 2. Excerpt of /var/log/Xorg.0.log
(II) NV(0): Supported additional Video Mode:
(II) NV(0): clock: 108.0 MHz   Image Size:  338 x 270 mm
(II) NV(0): h_active: 1280  h_sync: 1328  h_sync_end 1440 h_blank_end 1688 h_border: 0
(II) NV(0): v_active: 1024  v_sync: 1025  v_sync_end 1028 v_blanking: 1066 v_border: 0
(II) NV(0): Serial No: PM06175RG051
(II) NV(0): Monitor name: DELL 1708FP
(II) NV(0): Ranges: V min: 56  V max: 76 Hz, H min: 30  H max: 81 kHz, PixClock max 140 MHz

The texts in bold are what i need for editing Xorg configuration file
  • V min, V max: the range of VetRefresh in xorg.conf;
  • H min, H max: the range of HorizSync in xorg.conf;
  • PixClock max, h_active, h_sync, h_sync_end, h_black_end, v_active, v_sync, v_sync_end: for the added attribute ModeLine in xorg.conf.
Here is the modified "Monitor" section in xorg.conf.

Listing 3. Excerpt of /etc/X11/xorg.conf (modified)
Section "Monitor"
        Identifier   "Monitor0"
        ModelName    "DELL 1708FP"
        HorizSync    30.0 - 81.0
        VertRefresh  56.0 - 76.0
        ModeLine     "1280x1024" 140.0 1280 1328 1440 1688 1024 1025 1028 1066
        Option      "dpms"
EndSection

For the changes to take effect, need to log out and log in. Now i can select 3 refresh rates (60Hz, 70Hz, 75Hz) under 1024x768 in System>Preferences>Hardware>Screen Resolution. And the right shift disappeared at 70Hz.

Reference

http://xorg.freedesktop.org/wiki/FAQVideoModes

No comments:

Post a Comment