External monitor suddenly gets wrong resolution on laptop (nvidia).

Bug #479323 reported by Benjamin Redelings
14
This bug affects 3 people
Affects Status Importance Assigned to Milestone
nvidia-graphics-drivers (Ubuntu)
Invalid
Undecided
Unassigned

Bug Description

Binary package hint: xorg

This worked fine up until sometime between Nov 2, 2009 and Nov 7 2009. By working fine, I mean that nvidia-settings correctly detected the resolution and the name of an external monitor, using the 185 driver. Now, all external monitors show up as CRT-0, and have a low resolution of 1024x768 in nvidia-settings. Switch back to kernel 2.6.31 from 2.6.32 does not fix it; neither does upgrading to nvidia-drivers 190.32 from 185.

Investigation reveals that /var/log/Xorg.0.log contains the line:
 NVIDIA(GPU-0): Unable to read EDID for display device CRT-0

This problem occurs on two different external flat panels with 1900x1200 resolution, which both worked just last week.

Finally, I installed read-edid, and executed the command "sudo get-edid | parse-edid"

The EDID for the builtin flat panel is just fine, but is followed by:

Reading next EDID block

VBE/DDC service about to be called
 Read EDID

 Performing real mode VBE call
 Interrupt 0x10 ax=0x4f15 bx=0x1 cx=0x0
 Function supported
 Call failed

The EDID data should not be trusted as the VBE call failed
Error: output block unchanged
parse-edid: IO error reading EDID

I really don't know what could be causing this, but perhaps this change:

xorg-server (2:1.6.4-2ubuntu4) karmic; urgency=low

  * Add 188_default_primary_to_first_busid.patch: X can abort if multiple
    video devices are present, and none are marked as primary. This makes
    X just pick the first one it sees and carry on.
    (LP: #459512)

ProblemType: Bug
Architecture: amd64
Date: Mon Nov 9 11:57:07 2009
DistroRelease: Ubuntu 10.04
MachineType: LENOVO 7662CTO
NonfreeKernelModules: nvidia
Package: xorg 1:7.4+3ubuntu9
PccardctlIdent:
 Socket 0:
   no product info available
PccardctlStatus:
 Socket 0:
   no card
ProcCmdLine: BOOT_IMAGE=/boot/vmlinuz-2.6.32-2-generic root=UUID=296ba5fe-f7de-4f95-a4e3-c1b699fa1490 ro
ProcEnviron:
 PATH=(custom, user)
 LANG=en_US.UTF-8
 SHELL=/bin/bash
ProcVersionSignature: Ubuntu 2.6.32-2.2-generic
RelatedPackageVersions:
 xserver-xorg 1:7.4+3ubuntu9
 libgl1-mesa-glx 7.6.0-1ubuntu4
 libdrm2 2.4.14-1ubuntu1
 xserver-xorg-video-intel N/A
 xserver-xorg-video-ati N/A
SourcePackage: xorg
Symptom: display
Tags: resolution
Uname: Linux 2.6.32-2-generic x86_64
dmi.bios.date: 05/11/2009
dmi.bios.vendor: LENOVO
dmi.bios.version: 7LETC6WW (2.26 )
dmi.board.name: 7662CTO
dmi.board.vendor: LENOVO
dmi.board.version: Not Available
dmi.chassis.asset.tag: No Asset Information
dmi.chassis.type: 10
dmi.chassis.vendor: LENOVO
dmi.chassis.version: Not Available
dmi.modalias: dmi:bvnLENOVO:bvr7LETC6WW(2.26):bd05/11/2009:svnLENOVO:pn7662CTO:pvrThinkPadT61:rvnLENOVO:rn7662CTO:rvrNotAvailable:cvnLENOVO:ct10:cvrNotAvailable:
dmi.product.name: 7662CTO
dmi.product.version: ThinkPad T61
dmi.sys.vendor: LENOVO
fglrx: Not loaded
system:
 distro: Ubuntu
 architecture: x86_64kernel: 2.6.32-2-generic

Revision history for this message
Benjamin Redelings (benjamin-redelings) wrote :
Revision history for this message
Benjamin Redelings (benjamin-redelings) wrote :

OK, so I upgraded xserver-xorg-core to the 1.6.5 version in Debian, and this did not fix the problem. Therefore either
 (a) Detecting external monitors only ever worked on Ubuntu, but this support recently broke, OR...
 (b) The problem does not result from ubuntu-specific patches to xserver-xorg-core.

Bryce Harrington (bryce)
affects: xorg (Ubuntu) → nvidia-graphics-drivers-180 (Ubuntu)
Revision history for this message
Bryce Harrington (bryce) wrote :

Thanks for testing this. For what it's worth, I have been suspecting a recent kernel patch which altered graphics card timings, but I'm not really sure. It is interesting from that perspective that you booted an earlier kernel and it did not make the issue go away.

I wonder if something changed somewhere other than the kernel, which affects being able to read the edid from the graphics card?

Fwiw, there is nothing particularly special about Ubuntu's X.org in terms of detection of external monitors; it should pretty much work the same here as upstream and other distros. We sometimes carry some quirks or other local fixes, but not in this case.

Revision history for this message
Benjamin Redelings (benjamin-redelings) wrote :

The kernel patch certainly could have an effect. I tested to make sure that the breakage was not limited to 2.6.32 (pre) kernels. However, I did not rule out that it was introduced somewhere in the 2.6.31-?? series. I suspect that the altered graphics card timings

Bryce Harrington (bryce)
tags: added: lucid
Robert Hooker (sarvatt)
affects: nvidia-graphics-drivers-180 (Ubuntu) → nvidia-graphics-drivers (Ubuntu)
Revision history for this message
Claudio Moretti (flyingstar16) wrote :

I'm experiencing quite the same bug.
On a Dell Vostro 1500 (NVIDIA GeForce 8600M GT), I have an external monitor with maximum resolution 1280x1024.
The strange thing is that it's not happening every time I plug it in, but it happens randomly.
In this moment, I'm looking at the external monitor, with the 1280x1024 resolution. Yesterday, for example, there was a moment when the resolution was not correctly set, and I found myself with a 1440x900 resolution fit in a 1024x768 (the screen moved as I moved my mouse - hope this is understandable, I'm Italian).
Rebooting "fixed" it (although maybe at next reboot I'll find myself with the wrong resolution).

greping /var/log/Xorg.* searching for "EDID" didn't show any result, but "get-edid|parse-edid" shows problems (I'm attaching the complete output):

[some text..]

VBE/DDC service about to be called
        Read EDID

        Performing real mode VBE call
        Interrupt 0x10 ax=0x4f15 bx=0x1 cx=0x0
        Function supported
        Call failed

The EDID data should not be trusted as the VBE call failed
EDID claims 32 more blocks left

*********** Something special has happened!
Please contact the author, Matthew Kern
E-mail: <email address hidden>
Please include full output from this program (especially that to stderr)

[more text...]

VBE/DDC service about to be called
        Read EDID

        Performing real mode VBE call
        Interrupt 0x10 ax=0x4f15 bx=0x1 cx=0x0
        Function supported
        Call failed

The EDID data should not be trusted as the VBE call failed
parse-edid: EDID checksum failed - data is corrupt. Continuing anyway.
parse-edid: first bytes don't match EDID version 1 header
parse-edid: do not trust output (if any).

[more text...]

EDID claims 32 more blocks left
EDID blocks left is wrong.
Your EDID is probably invalid.

Revision history for this message
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in nvidia-graphics-drivers (Ubuntu):
status: New → Confirmed
Revision history for this message
dino99 (9d9) wrote :

That version is no more supported; please open a new bug report if the actual archive found version also has the same issue.

Changed in nvidia-graphics-drivers (Ubuntu):
status: Confirmed → Invalid
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.