You are not logged in.

#1 2010-07-23 02:12:41

unidob
Member
Registered: 2010-07-23
Posts: 9

[Solved] Nvidia and EDID problems

Hello,

First of all English is not my native language, I'm sorry for the mistakes. Here is my problem, I have a Asrock minicomputer with Nvidia ION. ArchLinux is installed in it. I can't see anything when I start the X in my LG 37LE5300 TV. It says "No signal". They are connected by a HDMI cable. I did the same connection with other screen and it works perfectly. So I think there is no possible configuration mistake. I'm using Nvidia drivers by the way. Then I did a lot of changes in the xorg.conf file and finally I got something: A resolution of "640x480" if I wrote in Screen Section:

Option "UseEdid" "False"

So I realized that edid is the key. I don't know what is this, but after some readings, I thought it's a kind of communication between computer and screen to make a automagic configuration. In theory, the solution of my problem could be resolved taking to the graphic card a correct EDID, because the graphic card can't read directly from the TV. I have another computer with a Nvidia (other model) and Ubuntu installed. I connected to the TV with a DVI-HDMI cable and it works perfectly. I used the nvidia-settings program to get the edid.bin file. Then I put this file in /etc/X11/edid.bin and I wrote in the xorg.conf in Device Section:

Option         "CustomEDID" "DFP-0:/etc/X11/edid.bin"

The result is:

[   175.756] (WW) NVIDIA(0): The EDID for LG Electronics LG TV (DFP-0) contradicts itself:
[   175.756] (WW) NVIDIA(0):     mode "1920x1080" is specified in the EDID; however, the
[   175.756] (WW) NVIDIA(0):     EDID's valid VertRefresh range (58.000-62.000 Hz) would
[   175.756] (WW) NVIDIA(0):     exclude this mode's VertRefresh (50.0 Hz); ignoring
[   175.756] (WW) NVIDIA(0):     VertRefresh check for mode "1920x1080".

And a wonderful "No signal" message in the TV. I tried somethings like changing to DFP-1, or writing in Screen Section the CustomEDID line, nvidia-beta package, etc. but nothing results. I tried nouveau drivers and I got 1920x1080 resolution but the image wasn't clear and I hadn't acceleration. So I'm very desperate and I haven't more ideas. sad

If you have, please tell me.

Thanks in advance.

Last edited by unidob (2010-07-23 17:35:25)

Offline

#2 2010-07-23 02:42:29

karol
Archivist
Registered: 2009-05-06
Posts: 25,440

Re: [Solved] Nvidia and EDID problems

http://sathyasays.com/2008/10/26/how-to … -in-linux/ < editing edid.bin

Have you tried DFP-3 etc.?

Offline

#3 2010-07-23 13:29:49

unidob
Member
Registered: 2010-07-23
Posts: 9

Re: [Solved] Nvidia and EDID problems

I think the EDID is correct:

[root@Insomnia alex]# parse-edid /etc/X11/edid.bin 
parse-edid: parse-edid version 2.0.0
parse-edid: EDID checksum passed.

        # EDID version 1 revision 3
Section "Monitor"
        # Block type: 2:0 3:fd
        # Block type: 2:0 3:fc
        Identifier "LG TV"
        VendorName "GSM"
        ModelName "LG TV"
        # Block type: 2:0 3:fd
        HorizSync 30-83
        VertRefresh 58-62
        # Max dot clock (video bandwidth) 160 MHz
        # Block type: 2:0 3:fc
        # DPMS capabilities: Active off:no  Suspend:no  Standby:no

        Mode    "1920x1080"     # vfreq 60.000Hz, hfreq 67.500kHz
                DotClock        148.500000
                HTimings        1920 2008 2052 2200
                VTimings        1080 1084 1089 1125
                Flags   "+HSync" "+VSync"
        EndMode
        Mode    "1280x720"      # vfreq 60.000Hz, hfreq 45.000kHz
                DotClock        74.250000
                HTimings        1280 1390 1430 1650
                VTimings        720 725 730 750
                Flags   "+HSync" "+VSync"
        EndMode
        # Block type: 2:0 3:fd
        # Block type: 2:0 3:fc
EndSection
karol wrote:

Have you tried DFP-3 etc.?

Yes, but nothing is happing.

I tried the other computer with Ubuntu and Nvidia and I saw the log. Curiously I found the same log!!


(WW) NVIDIA(0): The EDID for LG TV (DFP-0) contradicts itself: mode
(WW) NVIDIA(0):     "1920x1080" is specified in the EDID; however, the EDID's
(WW) NVIDIA(0):     valid VertRefresh range (58.000-62.000 Hz) would exclude
(WW) NVIDIA(0):     this mode's VertRefresh (50.0 Hz); ignoring VertRefresh
(WW) NVIDIA(0):     check for mode "1920x1080".

But in this case it works correctly. I don't know why. Googling I found the same problem with LG TV, some solved and some not, but nothing works to me.

More ideas?

Thank you.

Offline

#4 2010-07-23 16:32:56

Bregol
Member
Registered: 2008-08-15
Posts: 175

Re: [Solved] Nvidia and EDID problems

AFAIK, the EDID contains modelines that say to xorg what specific resolutions at what refresh rates the monitor recommends that xorg uses.  The EDID also provides the name of the monitor and what ranges of horizontal and vertical timings it can handle.   When you did the parse-edid, it spat out all that information that the monitor provides.  Xorg looks at that and takes those modes from the edid (the part between Mode and EndMode in parse-edid's output) and adds those to a pool of available modes.  Each of those modes are specific instructions as to the resolution, frequency, etc.

Next, xorg adds in other possible modes to that pool.  X comes with a default list of modes that generally might work with screens, and it tosses that list in.  If you have custom modelines in your xorg.conf, they also get tossed into the pool.  Once the pool of potential modes is made, X trims down the list of possible modes by checking to see if things such as the vertical refresh rate for each mode fits within the range that the monitor allows.  This range is either provided by the EDID, or can be provided by the user in xorg.conf if the EDID is missing or broken or something (which you would look up the proper range in the tv's specs and use that).  In your case, it looks like the EDID is providing that range, which is good. 

In your xorg log, the part where it says there is a contradiction is Xorg saying "the edid told me to add this 1920x1080 mode to the pool, but when I went through the pool to trim down the list, the vertical refresh range that the edid provided me made me take that 1920x1080 mode right out of the pool again". 

The reason that you got 640x480 to work is that when you ignored the EDID, X tossed in those default resolutions i mentioned earlier into the pool.  And it just happened that the 640x480 resolution had refresh rates that fit what your monitor needed, so it worked.

So that is what the whole edid thing and your error is about... now about fixing it...

I would first suggest checking your TV's user guide to see if they say in the specs what the vertical refresh range is.  Just to make sure that the edid is providing the right range there (58 - 62 hz).  Basically we want to make sure that what the EDID is providing is in fact the truth.  if the edid is lying and the range is actually larger than 58-62 hz, we can tell xorg what the real range is and to ignore just that range in the EDID.

Also, while i was looking at the user guide, i would also see if it has a list of supported modes.  for example, my tv manual told me that it supports 1920x1080@60hz, 1280x720@50hz.... and so on.   This will be useful because if indeed the vertical refresh range is 58-62 hz, we will need to use that information to make new modes for the pool that will fit within that range.

So I would say check what the tv manual says about those things and we can work from there.


Nai haryuvalyë melwa rë

Offline

#5 2010-07-23 17:29:07

unidob
Member
Registered: 2010-07-23
Posts: 9

Re: [Solved] Nvidia and EDID problems

Bregol wrote:

AFAIK, the EDID contains modelines that say to xorg what specific resolutions at what refresh rates the monitor recommends that xorg uses.  The EDID also provides the name of the monitor and what ranges of horizontal and vertical timings it can handle.   When you did the parse-edid, it spat out all that information that the monitor provides.  Xorg looks at that and takes those modes from the edid (the part between Mode and EndMode in parse-edid's output) and adds those to a pool of available modes.  Each of those modes are specific instructions as to the resolution, frequency, etc.

Next, xorg adds in other possible modes to that pool.  X comes with a default list of modes that generally might work with screens, and it tosses that list in.  If you have custom modelines in your xorg.conf, they also get tossed into the pool.  Once the pool of potential modes is made, X trims down the list of possible modes by checking to see if things such as the vertical refresh rate for each mode fits within the range that the monitor allows.  This range is either provided by the EDID, or can be provided by the user in xorg.conf if the EDID is missing or broken or something (which you would look up the proper range in the tv's specs and use that).  In your case, it looks like the EDID is providing that range, which is good. 

In your xorg log, the part where it says there is a contradiction is Xorg saying "the edid told me to add this 1920x1080 mode to the pool, but when I went through the pool to trim down the list, the vertical refresh range that the edid provided me made me take that 1920x1080 mode right out of the pool again". 

The reason that you got 640x480 to work is that when you ignored the EDID, X tossed in those default resolutions i mentioned earlier into the pool.  And it just happened that the 640x480 resolution had refresh rates that fit what your monitor needed, so it worked.

So that is what the whole edid thing and your error is about... now about fixing it...

I would first suggest checking your TV's user guide to see if they say in the specs what the vertical refresh range is.  Just to make sure that the edid is providing the right range there (58 - 62 hz).  Basically we want to make sure that what the EDID is providing is in fact the truth.  if the edid is lying and the range is actually larger than 58-62 hz, we can tell xorg what the real range is and to ignore just that range in the EDID.

Also, while i was looking at the user guide, i would also see if it has a list of supported modes.  for example, my tv manual told me that it supports 1920x1080@60hz, 1280x720@50hz.... and so on.   This will be useful because if indeed the vertical refresh range is 58-62 hz, we will need to use that information to make new modes for the pool that will fit within that range.

So I would say check what the tv manual says about those things and we can work from there.

Now I understand everything. Thank you so much. I wrote 58-62 because I read it in the TV manual. After a lot of forums and guides without any results, I read this:

http://www.cyberwizzard.nl/site/blog-li … tions.html

I wrote my own Modeline and I forced to Xorg to use it. Now I have the 1920x1080 resolution in my TV. My xorg.conf is this:

# nvidia-xconfig: X configuration file generated by nvidia-xconfig
# nvidia-xconfig:  version 256.35  (buildmeister@builder97.nvidia.com)  Wed Jun 16 19:15:05 PDT 2010


Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0" 0 0
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
EndSection

Section "Files"
EndSection

Section "InputDevice"

    # generated from default
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol" "auto"
    Option         "Device" "/dev/psaux"
    Option         "Emulate3Buttons" "no"
    Option         "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"

    # generated from default
    Identifier     "Keyboard0"
    Driver         "kbd"
EndSection

Section "Monitor"
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "Unknown"
    HorizSync       67.5 - 67.5
    VertRefresh     60.0
    Option         "DPMS"
    # Option         "DPI" "19x23"
    # Option         "UseEDID" "False"
    # ModeLine "1920x1080@60" 148.50 1920 2008 2052 2200 1080 1084 1094 1125 +hsync +vsync Interlace
    Option         "ModeDebug" "TRUE"

    Option         "UseEdid" "FALSE" 
    Option     "ExactModeTimingsDVI"     "True"



    ModeLine "1920x1080" 148.50 1920 2008 2052 2200 1080 1084 1094 1125 +hsync +vsync
Option "ModeValidation" "NoDFPNativeResolutionCheck"

EndSection

Section "Device"

    # Option         "UseEDIDFreqs" "False"
    # Option "ModeValidation" "NoEdidModes"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
EndSection

Section "Screen"

    # Option "DynamicTwinView" "False"
    # Option "FlatPanelProperties" "Scaling = Native"
    SubSection "Display"
        Depth 24
        Modes "1920x1080"
    EndSubSection
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    # Option         "CustomEDID" "DFP-0:/etc/X11/edid.bin"
    # Option         "FlatPanelProperties" "Scaling = Native" 
    # Option         "UseEDIDdpi" "False"
    # Option         "UseEDID" "False"
    # SubSection     "Display"
        # Depth       24
        # Modes      "nvidia-auto-select"
    # EndSubSection
EndSection

Thanks to everyone.

Offline

#6 2010-07-23 17:34:07

Bregol
Member
Registered: 2008-08-15
Posts: 175

Re: [Solved] Nvidia and EDID problems

Glad you got there and learned in the process smile  I picked up what i know after having to do essentially the same thing with a monitor that has missing edid.  Don't forget to mark as the thread as [solved] by editing the title of your first post


Nai haryuvalyë melwa rë

Offline

#7 2010-07-23 17:38:04

unidob
Member
Registered: 2010-07-23
Posts: 9

Re: [Solved] Nvidia and EDID problems

Bregol wrote:

Glad you got there and learned in the process smile  I picked up what i know after having to do essentially the same thing with a monitor that has missing edid.  Don't forget to mark as the thread as [solved] by editing the title of your first post

Done. Yes, it took long hours, but finally I got it working!

Offline

Board footer

Powered by FluxBB