View Single Post
Old 12-03-06, 07:16 PM   #1
Demon Lord
Registered User
 
Join Date: Jul 2004
Posts: 8
Default Toshiba resolution EDID fix

I am the proud owner of a Toshiba Satellite 5100, with a nice 1600x1200 display and a GeForce 440 Go. After many years of EDID hacks and workarounds to have full resolution, I noticed the "CustomEDID" option so I decided to give it a try.

I successfully managed to get rid of custom modelines and timing/EDID options in my Xorg config file by using a custom EDID file. You'll need this Windows program (very simple, works fine with Wine) Phoenix EDID Designer (http://www.tucows.com/preview/329441).

Here's how:
1) Start X with level 6 verbosity:
# X -logverbose 6
2) Kill X
3) Look for raw EDID bytes in the log file:
Code:
(--) NVIDIA(0): Raw EDID bytes:
(--) NVIDIA(0):
(--) NVIDIA(0):   00 ff ff ff ff ff ff 00  3a c4 00 04 00 00 00 00
(--) NVIDIA(0):   2d 0c 01 03 80 20 18 00  ea a8 e0 99 57 4b 92 25
(--) NVIDIA(0):   1c 50 54 00 00 00 01 01  01 01 01 01 01 01 01 01
(--) NVIDIA(0):   01 01 01 01 01 01 48 3f  40 30 62 b0 32 40 4c c0
(--) NVIDIA(0):   13 00 42 f3 10 00 00 1e  00 00 00 fc 00 4e 76 69
(--) NVIDIA(0):   64 69 61 20 44 65 66 61  75 6c 00 00 00 fc 00 74
(--) NVIDIA(0):   20 46 6c 61 74 20 50 61  6e 65 6c 00 00 00 00 fd
(--) NVIDIA(0):   00 00 3c 1d 4c 11 00 00  20 20 20 20 20 00 00 9c
(--) 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 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 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 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 00
Save the first 8 lines (the ones that aren't filled with zeroes) in the following format (spacing and capitals are important!), making sure you have Windows end-of-lines and a blank line in the end:
Code:
EDID BYTES:
0x   00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
    ------------------------------------------------
00 | 00 FF FF FF FF FF FF 00 3A C4 00 04 00 00 00 00
10 | 2D 0C 01 03 80 20 18 00 EA A8 E0 99 57 4B 92 25
20 | 1C 50 54 00 00 00 01 01 01 01 01 01 01 01 01 01
30 | 01 01 01 01 01 01 48 3F 40 30 62 B0 32 40 4C C0
40 | 13 00 42 F3 10 00 00 1E 00 00 00 FC 00 4E 76 69
50 | 64 69 61 20 44 65 66 61 75 6C 00 00 00 FC 00 74
60 | 20 46 6C 61 74 20 50 61 6E 65 6C 00 00 00 00 FD
70 | 00 00 3C 1D 4C 11 00 00 20 20 20 20 20 00 00 9C
4) Open the EDID editor and load the data file you just made. If it fails to open, make sure your format is exactly the same as above.
5) Click on the pencil icon to make the file editable and open up the last tab (Detailed Timings). The first block option should contain your display configuration.
6) The display incorrectly reported a maximum resolution of 1588x1200 pixels, so I changed the H. Active Pxl value to 1600, and, since I added 12 more pixels, I removed them from H Blank, from 572 to 560.
7) Save the file, and strip back the headers to:
Code:
00 FF FF FF FF FF FF 00 3A C4 00 04 00 00 00 00
2D 0C 01 03 80 20 18 00 EA A8 E0 99 57 4B 92 25
1C 50 54 00 00 00 01 01 01 01 01 01 01 01 01 01
01 01 01 01 01 01 48 3F 40 30 62 B0 32 40 4C C0
13 00 42 F3 10 00 00 1E 00 00 00 FC 00 4E 76 69
64 69 61 20 44 65 66 61 75 6C 00 00 00 FC 00 74
20 46 6C 61 74 20 50 61 6E 65 6C 00 00 00 00 FD
00 00 3C 1D 4C 11 00 00 20 20 20 20 20 00 00 9C
8) Compile the following and run your data file through it:
Code:
#include <stdio.h>

int main()
{
  while (!feof(stdin))
  {
    unsigned char i;
    scanf("%02X ", &i);
    printf("%c", i);
  }
  return 0;
}
Code:
# gcc comp.c -o comp
# ./comp < custom_edid.dat > custom_edid.bin
This should get you a 128 bytes file
9) Move this file somewhere safe and add this option to the Device section of your config file:
Code:
Option "CustomEDID" "DFP-0:/path/to/file/custom_edid.bin"
10) Remove any custom EDID configuration you might have added in the past, and X should now work...
Attached Files
File Type: bz2 custom_edid.tar.bz2 (2.8 KB, 944 views)
Demon Lord is offline   Reply With Quote