Public bug reported:

X is not correctly detecting my monitors' timings. Despite being a
digital connection (with allegedly EDID), I have to force a modeline
with xrandr. The graphical xrandr tools (arandr, or KDE's system-
settings) do not work.

I used to think this was solved with the binary drivers (first nvidia,
then fglrx), but I now realise that a modeline can be generated with
xrandr and they will work with the open-source driver.

The 1600x1200 monitors are a pair of 20" 1600x1200 VideoSeven   devices,
purchased in 2006, with DVI and VGA inputs. I'm using both of the DVI
inputs, (one of which via an HDMI/DVI adapter cable).  They tend to be a
bit fussy about being driven at the required 60Hz x 75 kHz, saying that
the signal is out of range: they need 60x75, they are getting 60x75, but
it's not good enough!).

I attach xorg.log to this.  Also, here is what I get when I run xrandr
(to list modes), then when I run my xrandr.sh script , then xrandr
again. The 60 Hz mode is now listed as "59.9".


I'm filing this on xserver-xorg-core  (2:1.15.1-0ubuntu8), though it might be a 
video-driver bug: xserver-xorg-video-radeon


#Output of Xrandr. At this point,  only the DisplayPort monitor works rightly.

[rjn@chocolate ~]$ xrandr -d :0
Screen 0: minimum 320 x 200, current 4800 x 1200, maximum 16384 x 16384
DisplayPort-0 connected 1600x1200+3200+0 (normal left inverted right x axis y 
axis) 518mm x 324mm
   1920x1200      60.0 +
   1920x1080      50.0  
   1600x1200      60.0* 
   1680x1050      59.9  
   1280x1024      75.0     60.0  
   1440x900       75.0     59.9  
   1280x960       60.0  
   1280x800       59.9  
   1152x864       75.0  
   1280x720       60.0     50.0     59.9  
   1024x768       75.1     70.1     60.0  
   832x624        74.6  
   800x600        72.2     75.0     60.3     56.2  
   720x576        50.0  
   720x480        60.0     59.9  
   640x480        75.0     72.8     66.7     60.0     59.9  
   720x400        70.1  
HDMI-0 connected 1600x1200+1600+0 (normal left inverted right x axis y axis) 
408mm x 306mm
   1600x1200      60.0*+
   1280x1024      85.0     75.0     60.0  
   1024x768       85.0     75.1     70.1     60.0  
   832x624        74.6  
   800x600        85.1     72.2     75.0     60.3     56.2  
   640x480        85.0     75.0     72.8     66.7     60.0  
   720x400        70.1  
DVI-0 connected 1600x1200+0+0 (normal left inverted right x axis y axis) 408mm 
x 306mm
   1600x1200      60.0*+
   1280x1024      85.0     75.0     60.0  
   1024x768       85.0     75.1     70.1     60.0  
   832x624        74.6  
   800x600        85.1     72.2     75.0     60.3     56.2  
   640x480        85.0     75.0     72.8     66.7     60.0  
   720x400        70.1  

Now I run xrandr.sh, to add and apply new modes.

[rjn@chocolate ~]$ ./bin/xrandr.sh 
This sets up my 3-head display. It can be called from ssh, as the display is 
forced to :0
 * The 2x VideoSeven 1600x1200 displays don't normally light up at all (they 
think the signal is out of range at 60 Hz, Xrandr's version is 59.9 Hz)
 * The Samsung monitor (1920x1200) comes up at 1600x1200
 * Everything is cloned, rather than 3 in a row
The modelines for the VideoSeven displays are from 'cvt 1600 1200 60' .
Now doing it... this may take a few seconds...
Creating new mode 1600x1200_60.00...
Adding this mode for the DVI-0 and HDMI-0 outputs...
Setting the modes and DPIs for the 3 outputs DVI-0, HDMI-0, DisplayPort-0...
Arranging the displays 3 in a row (DVI-0, HDMI-0, DisplayPort-0)...
Done

Now, all monitors work as they should, and here is the output of xrandr
again.

[rjn@chocolate ~]$ xrandr -d :0
Screen 0: minimum 320 x 200, current 5120 x 1200, maximum 16384 x 16384
DisplayPort-0 connected 1920x1200+3200+0 (normal left inverted right x axis y 
axis) 518mm x 324mm
   1920x1200      60.0*+
   1920x1080      50.0  
   1600x1200      60.0  
   1680x1050      59.9  
   1280x1024      75.0     60.0  
   1440x900       75.0     59.9  
   1280x960       60.0  
   1280x800       59.9  
   1152x864       75.0  
   1280x720       60.0     50.0     59.9  
   1024x768       75.1     70.1     60.0  
   832x624        74.6  
   800x600        72.2     75.0     60.3     56.2  
   720x576        50.0  
   720x480        60.0     59.9  
   640x480        75.0     72.8     66.7     60.0     59.9  
   720x400        70.1  
HDMI-0 connected 1600x1200+1600+0 (normal left inverted right x axis y axis) 
408mm x 306mm
   1600x1200      60.0 +
   1280x1024      85.0     75.0     60.0  
   1024x768       85.0     75.1     70.1     60.0  
   832x624        74.6  
   800x600        85.1     72.2     75.0     60.3     56.2  
   640x480        85.0     75.0     72.8     66.7     60.0  
   720x400        70.1  
   1600x1200_60.00   59.9* 
DVI-0 connected 1600x1200+0+0 (normal left inverted right x axis y axis) 408mm 
x 306mm
   1600x1200      60.0 +
   1280x1024      85.0     75.0     60.0  
   1024x768       85.0     75.1     70.1     60.0  
   832x624        74.6  
   800x600        85.1     72.2     75.0     60.3     56.2  
   640x480        85.0     75.0     72.8     66.7     60.0  
   720x400        70.1  
   1600x1200_60.00   59.9*


----   xrandr.sh script ----
#!/bin/bash

echo "This sets up my 3-head display. It can be called from ssh, as the display 
is forced to :0"
echo " * The 2x VideoSeven 1600x1200 displays don't normally light up at all 
(they think the signal is out of range at 60 Hz, Xrandr's version is 59.9 Hz)"
echo " * The Samsung monitor (1920x1200) comes up at 1600x1200"
echo " * Everything is cloned, rather than 3 in a row"
echo "The modelines for the VideoSeven displays are from 'cvt 1600 1200 60' ."
echo "Now doing it... this may take a few seconds..."

#Displays are physically located:  (Left) DVI-0  HDMI-0  DisplayPort-0 (Right)
#The -d :0 is the $DISPLAY, so that this works on my desktop PC even if I ssh 
in from a laptop to fix it!

#Create the mode with the correct timing. Use the mode from:  cvt 1600 1200 60  
 #or:  cvt -r 1600 1200 60
echo "Creating new mode 1600x1200_60.00..."
xrandr -d :0 --newmode "1600x1200_60.00"  161.00  1600 1712 1880 2160  1200 
1203 1207 1245 -hsync +vsync

#Add these modes for the outputs concerned:
echo "Adding this mode for the DVI-0 and HDMI-0 outputs..."
xrandr -d :0 --addmode DVI-0 1600x1200_60.00
xrandr -d :0 --addmode HDMI-0 1600x1200_60.00

#Set the outputs to these modes (and set the DPI while we're at it).
#NB the 2x  1600x1200 monitors are exactly that size (measured), thus 99.6 dpi, 
while the 1920x1200 is fudged to 99.6 dpi for consistency, though it's actually 
fractionally less.
echo "Setting the modes and DPIs for the 3 outputs DVI-0, HDMI-0, 
DisplayPort-0..."
xrandr -d :0 --output DVI-0  --mode 1600x1200_60.00  --fbmm 408x306
xrandr -d :0 --output HDMI-0 --mode 1600x1200_60.00  --fbmm 408x306
xrandr -d :0 --output DisplayPort-0 --mode 1920x1200 --fbmm 490x306

#Now arrange the displays:
echo "Arranging the displays 3 in a row (DVI-0, HDMI-0, DisplayPort-0)..."
xrandr -d :0 --output DVI-0 --left-of HDMI-0 --output HDMI-0 --left-of 
DisplayPort-0

echo "Done"

** Affects: linux (Ubuntu)
     Importance: Undecided
         Status: New

** Attachment added: "xorg.log  (annotated in 2 places with ####)"
   
https://bugs.launchpad.net/bugs/1338622/+attachment/4147241/+files/xorg.log.gz

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1338622

Title:
  LCD monitor timing misdetected: 60Hz != 60 Hz

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1338622/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to