Go Back   nV News Forums > Linux Support Forums > NVIDIA Linux

Newegg Daily Deals

Reply
 
Thread Tools
Old 12-05-06, 07:47 PM   #13
alaric
Cyber Jedi
 
alaric's Avatar
 
Join Date: Aug 2003
Location: Amsterdam
Posts: 75
Default Re: Monitor is not detected at all, and ConnectedMonitor / UseDisplayDevice do not he

Quote:
Originally Posted by netllama
Yes, I'd like to know the last driver where this broken EDID issue did not exist.
I tested 1.0-7676 (works) and 1.0-8762 (garbled).
You can see the EDID of both, as well as the raw EDID data
at the top of my post of July 2nd of this year:

http://www.nvnews.net/vbulletin/show...40&postcount=2

That alone should be enough to fix this bug: you have what
the EDID should be, you know what the raw EDID looks like
and you know that the raw EDID is correct. My first thoughts were
that it's a byte/nibble ordering problem, also because the way the raw
data is printed changed from "f38cc4..." to "3f c8 4c...". I would have
attached a patch, but....

I'll get back to you when I have the latest drivers installed.
__________________
Get my email address from my homepage.
alaric is offline   Reply With Quote
Old 12-05-06, 08:33 PM   #14
netllama
NVIDIA Corporation
 
Join Date: Dec 2004
Posts: 8,763
Default Re: Monitor is not detected at all, and ConnectedMonitor / UseDisplayDevice do not help.

There were 3 driver releases between 1.0-7676 and 1.0-8762:
http://www.nvidia.com/object/linux_display_archive.html

Please isolate whether the EDID detection worked in those three, as well as testing 1.0-9742 & 1.0-9631.

Thanks,
Lonni
netllama is offline   Reply With Quote
Old 12-06-06, 01:01 AM   #15
alaric
Cyber Jedi
 
alaric's Avatar
 
Join Date: Aug 2003
Location: Amsterdam
Posts: 75
Cool Re: Monitor is not detected at all, and ConnectedMonitor / UseDisplayDevice do not he

HARD Work! But... 16 hours later:

Code:
/usr/src/nvidia>dpkg --list | grep nvidia
ii  nvidia-glx                       1.0.9742-0                          NVIDIA binary XFree86 4.x driver
ii  nvidia-glx-dev                   1.0.9742-0                          NVIDIA binary XFree86 4.x / Xorg driver deve
ii  nvidia-kernel-2.6-686            1.0.9742+beta                       NVIDIA binary kernel module for 2.6 series c
ii  nvidia-kernel-2.6.17-2-686       1.0.9742+beta                       NVIDIA binary kernel module for Linux 2.6.17
ii  nvidia-kernel-common             20051028+1                          NVIDIA binary kernel module common files
ii  nvidia-kernel-source             1.0.9742-0                          NVIDIA binary kernel module source
ii  nvidia-settings                  1.0+20060516-3                      Tool of configuring the NVIDIA graphics driv
ii  nvidia-xconfig                   1.0+20051122-2                      The NVIDIA X Configuration Tool
Feels good to be the first in the world with something

It's WAY to late to test it now though!

Alaric
__________________
Get my email address from my homepage.
alaric is offline   Reply With Quote
Old 12-08-06, 12:01 AM   #16
alaric
Cyber Jedi
 
alaric's Avatar
 
Join Date: Aug 2003
Location: Amsterdam
Posts: 75
Default Re: Monitor is not detected at all, and ConnectedMonitor / UseDisplayDevice do not he

Quote:
Originally Posted by netllama
There were 3 driver releases between 1.0-7676 and 1.0-8762:
http://www.nvidia.com/object/linux_display_archive.html

Please isolate whether the EDID detection worked in those three, as well as testing 1.0-9742 & 1.0-9631.

Thanks,
Lonni
Hi again - after some real hard work, I finally have the requested data.
I'll attach them as files.

It took me another full day to downgrade my kernel, because 1.0.7667
didn't compile on 2.6.17. After some more tweaking on my script I managed
to build debian packages for ALL nvidia drivers, all for kernel 2.6.15.

Then, after replacing the nvidia drivers and libraries, I started X with:
startx -- -logverbose 6
and ran the following command to get relevant data:

Code:
awk 'BEGIN { show=0 } /--- EDID .* ---/ { show=1 } { if (show) print } /--- End of EDID .* ---/ { show=0 } /\((EE|WW)\)|Assigned|module version =|NVIDIA X Driver/ { print }' /var/log/Xorg.0.log | egrep -v '(\(WW\) warning, \(EE\) error, \(NI\)|\(WW\) The directory "/usr/X11R6/lib/X11|compiled for 7\.1\.1, module version = )'
The output of which is attached.

As you can see, 1.0.8174 is the first version at which things go wrong.
This is the same version where the raw EDID is printed differently (I think
you could have known this and had not ask me for this data - but ok).

Regards,
Alaric

PS I Kept the full Xorg.0.log files too. If you want to see one, ask me.
Attached Files
File Type: log 1.0.7667.log (5.4 KB, 97 views)
File Type: log 1.0.7676.log (5.4 KB, 81 views)
File Type: log 1.0.8174.log (2.3 KB, 94 views)
File Type: log 1.0.8178.log (2.3 KB, 92 views)
File Type: log 1.0.8181.log (2.3 KB, 94 views)
__________________
Get my email address from my homepage.
alaric is offline   Reply With Quote
Old 12-08-06, 12:02 AM   #17
alaric
Cyber Jedi
 
alaric's Avatar
 
Join Date: Aug 2003
Location: Amsterdam
Posts: 75
Default Re: Monitor is not detected at all, and ConnectedMonitor / UseDisplayDevice do not he

More files...
Attached Files
File Type: log 1.0.8756.log (18.5 KB, 86 views)
File Type: log 1.0.8762.log (19.0 KB, 78 views)
File Type: log 1.0.8774.log (18.6 KB, 83 views)
File Type: log 1.0.8776.log (18.6 KB, 90 views)
File Type: log 1.0.9625.log (18.6 KB, 85 views)
__________________
Get my email address from my homepage.
alaric is offline   Reply With Quote
Old 12-08-06, 12:03 AM   #18
alaric
Cyber Jedi
 
alaric's Avatar
 
Join Date: Aug 2003
Location: Amsterdam
Posts: 75
Default Re: Monitor is not detected at all, and ConnectedMonitor / UseDisplayDevice do not he

And the last batch...
Attached Files
File Type: log 1.0.9626.log (18.6 KB, 89 views)
File Type: log 1.0.9629.log (18.6 KB, 90 views)
File Type: log 1.0.9631.log (18.6 KB, 83 views)
File Type: log 1.0.9742.log (18.7 KB, 80 views)
__________________
Get my email address from my homepage.
alaric is offline   Reply With Quote
Old 12-08-06, 11:03 AM   #19
netllama
NVIDIA Corporation
 
Join Date: Dec 2004
Posts: 8,763
Default Re: Monitor is not detected at all, and ConnectedMonitor / UseDisplayDevice do not help.

Thanks. Specifically which model of the IIyama Vision Master Pro are you using?

Also, are you using any intermediary devices between the CRT and graphics card such as a KVM, or switchbox?

Thanks,
Lonni
netllama is offline   Reply With Quote
Old 12-08-06, 01:02 PM   #20
alaric
Cyber Jedi
 
alaric's Avatar
 
Join Date: Aug 2003
Location: Amsterdam
Posts: 75
Default Re: Monitor is not detected at all, and ConnectedMonitor / UseDisplayDevice do not he

Quote:
Originally Posted by netllama
Thanks. Specifically which model of the IIyama Vision Master Pro are you using?
This is a IIYAMA Vision Master Pro17 from 1996. The EDID it gives confirms this (see below).

Quote:
Originally Posted by netllama
Also, are you using any intermediary devices between the CRT and graphics card such as a KVM, or switchbox?
Normally I am using a KVM, but during all of these tests I have connected the monitor directly to the VGA plug of the FX5200 (using the original VGA cable of the monitor).

I started to investigate the EDID itself now. Here are my findings so far:

1) I copied the raw EDID dump from the Xorg.0.log to a C++ source file, such that I have the bytes available in an array of unsigned char's.

2) I wrote those bytes (which are 256) to a file and used Option CustomEDID to read the file back.

3) I verified that a 'hexdump -C' gives the same data as is dumped in the Xorg.0.log (they have the same format).

So far so good, and no change (I verified that the CustomEDID option worked).

4) I downloaded and compiled read-edid-1.4.1 from http://john.fremlin.de/programs/linux/read-edid/

5) I used read-edid to read the EDID info directly from the card.

Here is the hexdump from read-edid-1.4.1:

Code:
00000000  20 00 c0 00 c3 71 b1 c6  26 cd 30 17 67 46 00 00  | ....q..&.0.gF..|
00000010  01 10 01 00 3f 20 18 99  c8 04 88 a0 57 4a 9b 26  |....? ......WJ.&|
00000020  3f c8 4c ff ff 80 81 80  81 8e 00 00 00 00 00 00  |?.L.............|
00000030  00 00 00 00 00 00 e0 29  00 83 51 00 29 40 2a 68  |.......)..Q.)@*h|
00000040  63 00 2c e1 10 00 00 04  bc 34 00 b0 51 00 28 40  |c.,......4..Q.(@|
00000050  20 90 03 00 2c e1 10 00  00 18 00 00 00 00 00 00  | ...,...........|
00000060  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000070  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 d6  |................|
To compare, here is the data from Xorg.0.log (driver version 1.0.8174 and higher (latest tested: 1.0.9742)):

Code:
(--) NVIDIA(0): Raw EDID bytes:
(--) NVIDIA(0):
(--) NVIDIA(0):   20 00 c0 00 c3 71 b1 c6  26 cd 30 17 67 46 00 00
(--) NVIDIA(0):   01 10 01 00 3f 20 18 99  c8 04 88 a0 57 4a 9b 26
(--) NVIDIA(0):   3f c8 4c ff ff 80 81 80  81 8e 00 00 00 00 00 00
(--) NVIDIA(0):   00 00 00 00 00 00 e0 29  00 83 51 00 29 40 2a 68
(--) NVIDIA(0):   63 00 2c e1 10 00 00 04  bc 34 00 b0 51 00 28 40
(--) NVIDIA(0):   20 90 03 00 2c e1 10 00  00 18 00 00 00 00 00 00
(--) NVIDIA(0):   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
(--) NVIDIA(0):   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 d6
(--) NVIDIA(0):   20 00 c0 00 c3 71 b1 c6  26 cd 30 17 67 46 00 00
(--) NVIDIA(0):   01 10 01 00 3f 20 18 99  c8 04 88 a0 57 4a 9b 26
(--) NVIDIA(0):   3f c8 4c ff ff 80 81 80  81 8e 00 00 00 00 00 00
(--) NVIDIA(0):   00 00 00 00 00 00 e0 29  00 83 51 00 29 40 2a 68
(--) NVIDIA(0):   63 00 2c e1 10 00 00 04  bc 34 00 b0 51 00 28 40
(--) NVIDIA(0):   20 90 03 00 2c e1 10 00  00 18 00 00 00 00 00 00
(--) NVIDIA(0):   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
(--) NVIDIA(0):   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 d6
OBSERVATION: This is TWICE the same 128 bytes.

Note, EDID version 1 should be 128 bytes. EDID version 2 would be 256 bytes, but my monitor is way too old to ever know about that version.

From http://en.wikipedia.org/wiki/EDID :
Quote:
EDID structure 1.0 was defined in 1994; version 1.1 followed in 1996, then 1.2, and 1.3 in 2000. All these define upwards compatible 128 byte structures. EDID structure 2.0 defines a new 256-byte structure.
6) I used parse-edid on this data (the 128 bytes) and it resulted in sane output:

Code:
./parse-edid: parse-edid version 1.4.1
./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).

        # EDID version 1 (byte 12) revision 0 (byte 13) Section "Monitor"
        # Block type: 2:0 3:0
        # Block type: 2:0 3:0
        Identifier "IVM:3017"
        VendorName "IVM"
        ModelName "IVM:3017"
        # Block type: 2:0 3:0
        # Block type: 2:0 3:0
        # DPMS capabilities: Active off:no  Suspend:yes  Standby:yes

        Mode    "1280x1024"     # vfreq 60.382Hz, hfreq 64.307kHz
                DotClock        107.200000
                HTimings        1280 1322 1426 1667
                VTimings        1024 1030 1033 1065
        EndMode
        Mode    "1280x1024"     # vfreq 74.112Hz, hfreq 78.855kHz
                DotClock        135.000000
                HTimings        1280 1312 1456 1712
                VTimings        1024 1024 1027 1064
                Flags   "-HSync" "-VSync"
        EndMode
        # Block type: 2:0 3:0
        # Block type: 2:0 3:0
EndSection
I call this sane, because even though the checksum fails (byte 127) and the first eight bytes don't match EDID version 1 header, the results seem to be correct. Most notably, the IVM:3017 is a very sane and correct value (IVM = Iiyama Vision Master; the 3017 is indeed the model id). Als the dotclock and the Timings are very sane. We have to conclude from this that:

1) The EDID actually contains information.
2) This _file_ structure is correct (it does not have swapped nibbles, or endian problems).

The problem therefore seems to be this:

(--) NVIDIA(0): --- EDID for P@@ &?0?gF (CRT-0) ---
(--) NVIDIA(0): EDID Version : 2.0

The drivers thinks that this an EDID version 2.0, resulting in the garbled nonsense.

I'll continue my investigations - any results from your side will be appreciated

Alaric
__________________
Get my email address from my homepage.
alaric is offline   Reply With Quote

Old 12-08-06, 01:04 PM   #21
alaric
Cyber Jedi
 
alaric's Avatar
 
Join Date: Aug 2003
Location: Amsterdam
Posts: 75
Default Re: Monitor is not detected at all, and ConnectedMonitor / UseDisplayDevice do not he

Lonni,

Am I correct when I think that 1.0.8174 is the first driver to support EDID version 2?

Thanks,
Alaric
__________________
Get my email address from my homepage.
alaric is offline   Reply With Quote
Old 12-08-06, 02:20 PM   #22
netllama
NVIDIA Corporation
 
Join Date: Dec 2004
Posts: 8,763
Default Re: Monitor is not detected at all, and ConnectedMonitor / UseDisplayDevice do not help.

Thanks for your work on this. You stated that "I verified that the CustomEDID option worked". Can you clarify what you verified that worked?

Also, could you attach the binary EDID?

thanks,
Lonni
netllama is offline   Reply With Quote
Old 12-08-06, 03:13 PM   #23
alaric
Cyber Jedi
 
alaric's Avatar
 
Join Date: Aug 2003
Location: Amsterdam
Posts: 75
Default Re: Monitor is not detected at all, and ConnectedMonitor / UseDisplayDevice do not he

I verified that the file was actually read and used as raw EDID data.

Code:
/usr/src/nvidia/read-edid-1.4.1>sudo ./get-edid > edid-file
./get-edid: get-edid version 1.4.1

        Performing real mode VBE call
        Interrupt 0x10 ax=0x4f00 bx=0x0 cx=0x0
        Function supported
        Call successful

        VBE version 300
        VBE string at 0x11110 "NVIDIA"

VBE/DDC service about to be called
        Report DDC capabilities

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

        Monitor and video card combination does not support DDC1 transfers
        Monitor and video card combination supports DDC2 transfers
        0 seconds per 128 byte EDID block transfer
        Screen is not blanked during DDC transfer

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
result (after gzipping it):
Attached Files
File Type: gz edid-file.gz (112 Bytes, 91 views)
__________________
Get my email address from my homepage.
alaric is offline   Reply With Quote
Old 12-08-06, 05:29 PM   #24
alaric
Cyber Jedi
 
alaric's Avatar
 
Join Date: Aug 2003
Location: Amsterdam
Posts: 75
Default Re: Monitor is not detected at all, and ConnectedMonitor / UseDisplayDevice do not he

By the way, on the back of the monitor I read:

Model No. MT-9017T
Date of manufacture: july 1996
Serial no. 6003534

I found out that if I replace the first 8 bytes
with the EDID 1.0 header: 00 ff ff ff ff ff ff 00
then the nvidia driver seems to correctly decode
the EDID. That is, I then get:

Code:
(--) NVIDIA(0): --- EDID for Iiyama (CRT-0) ---
(--) NVIDIA(0): EDID Version                 : 1.0
(--) NVIDIA(0): Manufacturer                 : IVM
(--) NVIDIA(0): Monitor Name                 : Iiyama
(--) NVIDIA(0): Product ID                   : 5936
(--) NVIDIA(0): 32-bit Serial Number         : 18023
(--) NVIDIA(0): Serial Number String         :
(--) NVIDIA(0): Manufacture Date             : 2006, week 1
(--) NVIDIA(0): DPMS Capabilities            : Standby Suspend
(--) NVIDIA(0): Prefer first detailed timing : No
(--) NVIDIA(0): Supports GTF                 : No
(--) NVIDIA(0): Maximum Image Size           : 320mm x 240mm
(--) NVIDIA(0): Valid HSync Range            : 15 kHz - 79 kHz
(--) NVIDIA(0): Valid VRefresh Range         : 56 Hz - 75 Hz
(--) NVIDIA(0): EDID maximum pixel clock     : 136.6 MHz
(--) NVIDIA(0):
(--) NVIDIA(0): Established Timings:
(--) NVIDIA(0):   640  x 480  @ 60 Hz
(--) NVIDIA(0):   640  x 480  @ 72 Hz
(--) NVIDIA(0):   640  x 480  @ 75 Hz
(--) NVIDIA(0):   800  x 600  @ 56 Hz
(--) NVIDIA(0):   800  x 600  @ 60 Hz
(--) NVIDIA(0):   800  x 600  @ 72 Hz
(--) NVIDIA(0):   800  x 600  @ 75 Hz
(--) NVIDIA(0):   1024 x 768  @ 60 Hz
(--) NVIDIA(0):   1024 x 768  @ 70 Hz
(--) NVIDIA(0):   1024 x 768  @ 75 Hz
(--) NVIDIA(0):   1280 x 1024 @ 75 Hz
(--) NVIDIA(0):
(--) NVIDIA(0): Standard Timings:
(--) NVIDIA(0):   248  x 248  @ 60 Hz
(--) NVIDIA(0):
(--) NVIDIA(0): Detailed Timings:
(--) NVIDIA(0):   1280 x 1024 @ 60 Hz
(--) NVIDIA(0):     Pixel Clock      : 107.20 MHz
(--) NVIDIA(0):     HRes, HSyncStart : 1280, 1322
(--) NVIDIA(0):     HSyncEnd, HTotal : 1426, 1667
(--) NVIDIA(0):     VRes, VSyncStart : 1024, 1030
(--) NVIDIA(0):     VSyncEnd, VTotal : 1033, 1065
(--) NVIDIA(0):     H/V Polarity     : -/+
(--) NVIDIA(0):   1280 x 1024 @ 74 Hz
(--) NVIDIA(0):     Pixel Clock      : 135.00 MHz
(--) NVIDIA(0):     HRes, HSyncStart : 1280, 1312
(--) NVIDIA(0):     HSyncEnd, HTotal : 1456, 1712
(--) NVIDIA(0):     VRes, VSyncStart : 1024, 1024
(--) NVIDIA(0):     VSyncEnd, VTotal : 1027, 1064
(--) NVIDIA(0):     H/V Polarity     : -/-
(--) NVIDIA(0):
(--) NVIDIA(0):
(--) NVIDIA(0): Raw EDID bytes:
(--) NVIDIA(0):
(--) NVIDIA(0):   00 ff ff ff ff ff ff 00  26 cd 30 17 67 46 00 00
(--) NVIDIA(0):   01 10 01 00 3f 20 18 99  c8 04 88 a0 57 4a 9b 26
(--) NVIDIA(0):   3f c8 4c ff ff 80 81 80  81 8e 00 00 00 00 00 00
(--) NVIDIA(0):   00 00 00 00 00 00 e0 29  00 83 51 00 29 40 2a 68
(--) NVIDIA(0):   63 00 2c e1 10 00 00 04  bc 34 00 b0 51 00 28 40
(--) NVIDIA(0):   20 90 03 00 2c e1 10 00  00 18 00 00 00 00 00 00
(--) NVIDIA(0):   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
(--) NVIDIA(0):   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 29
(--) NVIDIA(0):   20 00 c0 00 c3 71 b1 c6  26 cd 30 17 67 46 00 00
(--) NVIDIA(0):   01 10 01 00 3f 20 18 99  c8 04 88 a0 57 4a 9b 26
(--) NVIDIA(0):   3f c8 4c ff ff 80 81 80  81 8e 00 00 00 00 00 00
(--) NVIDIA(0):   00 00 00 00 00 00 e0 29  00 83 51 00 29 40 2a 68
(--) NVIDIA(0):   63 00 2c e1 10 00 00 04  bc 34 00 b0 51 00 28 40
(--) NVIDIA(0):   20 90 03 00 2c e1 10 00  00 18 00 00 00 00 00 00
(--) NVIDIA(0):   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
(--) NVIDIA(0):   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 d6
(--) NVIDIA(0):
(--) NVIDIA(0): --- End of EDID for Iiyama (CRT-0) ---
Note how it not only still prints 256 bytes, but even has the original 8 bytes header in the second part.

My conclusion is that you read 128 bytes at a time (using the vesa interrupt). After reading the first 128 bytes, you look at the first byte. When this byte is non-zero - you read the 'next' 128 bytes. This call fails, somehow returning the previously read 128 bytes (or you are copying those to a new buffer), and you copy the same 128 bytes to position 128-256.

THEN you realize that the Option CustomEDID was given and the first 128 bytes are overwritten with the 128 bytes from my file.

I'd like to ask if that is correct - but so far you have not answered a single question from me. Is that an Nvidia policy? To not give ANY information here, maybe a legal thingy?

A note of the EDID decodings above:

1) The manufacture year of 2006 week 1 is definitely wrong.
2) Valid HSync Range and Valid VRefresh Range are VERY
concervative (read: unusably so). This monitor can easily do
120 vertical refresh for example (at low res). Nevertheless,
the values look more "sane" than "garbled".

I think I'll leave the decoding of EDID to you from here on; and I am
going to concentrate on just getting it to work again. I'm getting tired
of working with just one monitor. Moreover, I bought a new video card
(an FX6200) that I want to test, too.

Alaric
__________________
Get my email address from my homepage.
alaric is offline   Reply With Quote
Reply


Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump


All times are GMT -5. The time now is 09:45 PM.


Powered by vBulletin® Version 3.7.1
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Copyright 1998 - 2014, nV News.