Contribute
Register

Display Prefpane can't load. Found the problem and solution.

Joined
Sep 30, 2016
Messages
144
So after some testing I found what the problem is, it's in the EDID Basic Display Params section.
For some reason the OS expects to find a 13" or smaller display panel in the EDID, infact my 13" Asus doesn't have this problem while the 15" Acer does. If you put a size bigger than 13" (29x16) like 13,3"(29x17) it won't work. So the EDID must be modified to present a panel of 13" rather than 15", this was tested with MacBook Pro 9,2 and Macbook Air 6,2 SMBIOS.

For example in this EDID of a 15" display

00 FF FF FF FF FF FF 00 0D AF 92 15 00 00 00 00 35 13 01 03 80 23 13 78 0A 07 F5 9A 57 4E 87 26 1E 50 54 00 00 00 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 4C 1D 56 CA 50 00 1D 30 3C 28 46 00 58 C1 10 00 00 18 00 00 00 FE 00 4E 31 3535 36 42 36 2D 4C 30 42 0A 20 20 00 00 00 FE 00 43 4D 4F 0A 20 20 20 20 20 20 20 20 20 00 00 00 FE 00 4E 31 35 36 42 36 2D 4C 30 42 0A 20 20 00 23

I highlited the bytes that define the maximum screen size, in this case 35 cm width (0x23) and 19 cm height (0x13).

I modified those bytes like this:

00 FF FF FF FF FF FF 00 0D AF 92 15 00 00 00 00 35 13 01 03 80 1D 10 78 0A 07 F5 9A 57 4E 87 26 1E 50 54 00 00 00 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 4C 1D 56 CA 50 00 1D 30 3C 28 46 00 58 C1 10 00 00 18 00 00 00 FE 00 4E 31 35 36 42 36 2D 4C 30 42 0A 20 20 00 00 00 FE 00 43 4D 4F 0A 20 20 20 20 20 20 20 20 20 00 00 00 FE 00 4E 31 35 36 42 36 2D 4C 30 42 0A 20 20 00 2C

1D = 29 CM and 10 = 16 CM (should be the size of a 13" screen). Then recalculated the checksum that changed from 23 to 2C

0x23 - 0x1D = 0x06 and 0x13 - 0x10 = 0x03 --> 0x23 + 0x06 + 0x03 = 0x2C

To check if you calculated your checksum correctly paste and parse the resulting EDID on http://www.edidreader.com/
You can also use AW Edid Editor , open your EDID in the program and change the size to 29 x 16, look in the HEXA viewer the bytes in red and modify accordingly in yours.

Schermata 2016-10-05 alle 12.40.18.png


Then injected the EDID through Clover plist (advice: use Plist Editor Pro):

Schermata 2016-10-04 alle 23.28.45.png


By the way I found that Clover v. 3786 will inject the EDID with the key CustomEDID regardless of key InjectEDID being TRUE or FALSE

Now Panel is working and ioreg sees the real display with a different max size

Schermata 2016-10-05 alle 10.58.39.png


the panel

Schermata 2016-10-05 alle 11.00.41.png


Note: this solution doesn't use fixEDID app. That app modifies the basic params completely along with VID and PID all of which is not needed. You don't have to spoof a MacBook panel. You just need to spoof the panel size.

Note by RehabMan: In some cases it is necessary to change the VID/PID (vendor-id, product-id) in the EDID. See here: https://www.tonymacx86.com/threads/display-prefpane-cant-load-found-the-problem-and-solution.203955/page-12#post-1388187
 
Last edited by a moderator:
Joined
Aug 12, 2012
Messages
17
Mac
Mac mini
Classic Mac
Mobile Phone
Android
Thanks, it is working on my Lenovo 50-70; I injected the modified EDID and the Display Pref Panel is working.
 
Joined
Dec 7, 2011
Messages
2
Motherboard
Asus X302UJ
CPU
Intel Core i5 6200u
Graphics
Intel HD 520 + Nvidia GT920M
Hi marksx, I extracted my display's edid (Asus X302U notebook, 13') with Darwin Dumper ver. 3.01. Then I use FixEdid ver. 2.40 with this settings:

Screen Shot 2016-10-05 at 22.44.36.png


I got this EDID:

00FFFFFF FFFFFF00 0610F29C 00000000
1A150104 951A0E78 02EF0597 57549227
22505400 00000101 01010101 01010101
01010101 0101D51C 56A65000 23302820
3C0025A5 10000019 000000FC 00436F6C
6F72204C 43440A20 20200000 00FE0049
6E666F56 6973696F 6E0A2020 000000FE
004D3133 334E574E 31205233 200A00B2

If I check it with http://www.edidreader.com, I get Valid Checksum: FALSE. My question is, how do you get a valid EDID?
 

RehabMan

Moderator
Joined
May 3, 2012
Messages
191,691
Motherboard
Intel DH67BL
CPU
Core i7-2600K
Graphics
Intel HD 3000
Mac
MacBook Air
Mobile Phone
iOS
Hi marksx, I extracted my display's edid (Asus X302U notebook, 13') with Darwin Dumper ver. 3.01. Then I use FixEdid ver. 2.40 with this settings:

View attachment 214087

I got this EDID:

00FFFFFF FFFFFF00 0610F29C 00000000
1A150104 951A0E78 02EF0597 57549227
22505400 00000101 01010101 01010101
01010101 0101D51C 56A65000 23302820
3C0025A5 10000019 000000FC 00436F6C
6F72204C 43440A20 20200000 00FE0049
6E666F56 6973696F 6E0A2020 000000FE
004D3133 334E574E 31205233 200A00B2

If I check it with http://www.edidreader.com, I get Valid Checksum: FALSE. My question is, how do you get a valid EDID?
edid-decode shows the checksum is valid:
Code:
Extracted contents:
header:          00 ff ff ff ff ff ff 00
serial number:   06 10 f2 9c 00 00 00 00 1a 15
version:         01 04
basic params:    95 1a 0e 78 02
chroma info:     ef 05 97 57 54 92 27 22 50 54
established:     00 00 00
standard:        01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
descriptor 1:    d5 1c 56 a6 50 00 23 30 28 20 3c 00 25 a5 10 00 00 19
descriptor 2:    00 00 00 fc 00 43 6f 6c 6f 72 20 4c 43 44 0a 20 20 20
descriptor 3:    00 00 00 fe 00 49 6e 66 6f 56 69 73 69 6f 6e 0a 20 20
descriptor 4:    00 00 00 fe 00 4d 31 33 33 4e 57 4e 31 20 52 33 20 0a
extensions:      00
checksum:        b2

Manufacturer: APP Model 9cf2 Serial Number 0
Made week 26 of 2011
EDID version: 1.4
Digital display
6 bits per primary color channel
DisplayPort interface
Maximum image size: 26 cm x 14 cm
Gamma: 2.20
Supported color formats: RGB 4:4:4
First detailed timing is preferred timing
Established timings supported:
Standard timings supported:
Detailed mode: Clock 73.810 MHz, 293 mm x 165 mm
               1366 1406 1438 1532 hborder 0
                768  771  783  803 vborder 0
               -hsync -vsync 
Monitor name: Color
ASCII string: InfoVision
ASCII string: M133NWN1
Checksum: 0xb2 (valid)
EDID block does NOT conform to EDID 1.3!
    Missing monitor ranges
    Detailed block string not properly terminated
 
Joined
Sep 30, 2016
Messages
144
Hi marksx, I extracted my display's edid (Asus X302U notebook, 13') with Darwin Dumper ver. 3.01. Then I use FixEdid ver. 2.40 with this settings:

View attachment 214087

I got this EDID:

00FFFFFF FFFFFF00 0610F29C 00000000
1A150104 951A0E78 02EF0597 57549227
22505400 00000101 01010101 01010101
01010101 0101D51C 56A65000 23302820
3C0025A5 10000019 000000FC 00436F6C
6F72204C 43440A20 20200000 00FE0049
6E666F56 6973696F 6E0A2020 000000FE
004D3133 334E574E 31205233 200A00B2

If I check it with http://www.edidreader.com, I get Valid Checksum: FALSE. My question is, how do you get a valid EDID?
You are missing the point, you don't need to use fixEDID. Check the bytes corresponding to panel width and height in your original extracted EDID. I see you have a 13" display so unless those values are bigger than 29cm x 16cm it should work natively. Reread the first post.
Anyway as I said, forget fixEDID and customize your original EDID manually. Post it here and let me see it.

-
The checksum is correct. It seems that the edidreader website won't parse the data unless it's input like this:

00 FF FF FF FF FF FF 00 06 10 F2 9C 00 00 00 00
1A 15 01 04 95 1A 0E 78 02 EF 05 97 57 54 92 27
22 50 54 00 00 00 01 01 01 01 01 01 01 01 01 01
01 01 01 01 01 01 D5 1C 56 A6 50 00 23 30 28 20
3C 00 25 A5 10 00 00 19 00 00 00 FC 00 43 6F 6C
6F 72 20 4C 43 44 0A 20 20 20 00 00 00 FE 00 49
6E 66 6F 56 69 73 69 6F 6E 0A 20 20 00 00 00 FE
00 4D 31 33 33 4E 57 4E 31 20 52 33 20 0A 00 B2
 
Last edited:
Joined
Feb 1, 2012
Messages
5
Motherboard
Lenovo Ideapad 100-15IBD (Clover)
CPU
Intel Core i3-5020U
Graphics
Intel HD 5500
Mobile Phone
Android
Using a custom EDID seems to make my laptop display completely useless, however I could simply be messing up somewhere (i.e using the wrong size)
This is my original EDID
Code:
00 FF FF FF FF FF FF 00 4C 83 52 4A 00 00 00 00 00 18 01 03 95 22 13 78 0A 71 05 93 55 57 8F 29
20 50 54 00 00 00 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 41 1C 56 A0 50 00 16 30 30 20
25 00 58 C2 10 00 00 19 00 00 00 0F 00 00 00 00 00 00 00 00 00 20 52 03 15 00 00 00 00 FE 00 53
41 4D 53 55 4E 47 0A 20 4C 83 41 54 00 00 00 FE 00 4C 54 4E 31 35 36 41 54 33 39 4C 30 31 00 D8
And this is my modified EDID
Code:
00 FF FF FF FF FF FF 00 4C 83 52 4A 00 00 00 00 00 18 01 03 95 1D 10 78 0A 71 05 93 55 57 8F 29
20 50 54 00 00 00 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 41 1C 56 A0 50 00 16 30 30 20
25 00 58 C2 10 00 00 19 00 00 00 0F 00 00 00 00 00 00 00 00 00 20 52 03 15 00 00 00 00 FE 00 53
41 4D 53 55 4E 47 0A 20 4C 83 41 54 00 00 00 FE 00 4C 54 4E 31 35 36 41 54 33 39 4C 30 31 00 E0
I've checked to make sure the checksum was correct and edid-decode verifies it
Extracted contents:

header: 00 ff ff ff ff ff ff 00

serial number: 4c 83 52 4a 00 00 00 00 00 18

version: 01 03

basic params: 95 1d 10 78 0a

chroma info: 71 05 93 55 57 8f 29 20 50 54

established: 00 00 00

standard: 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01

descriptor 1: 41 1c 56 a0 50 00 16 30 30 20 25 00 58 c2 10 00 00 19

descriptor 2: 00 00 00 0f 00 00 00 00 00 00 00 00 00 20 52 03 15 00

descriptor 3: 00 00 00 fe 00 53 41 4d 53 55 4e 47 0a 20 4c 83 41 54

descriptor 4: 00 00 00 fe 00 4c 54 4e 31 35 36 41 54 33 39 4c 30 31

extensions: 00

checksum: e0


Manufacturer: SDC Model 4a52 Serial Number 0

Made week 0 of 2014

EDID version: 1.3

Digital display

DFP 1.x compatible TMDS

Maximum image size: 29 cm x 16 cm

Gamma: 2.20

Supported color formats: RGB 4:4:4, YCrCb 4:4:4

First detailed timing is preferred timing

Established timings supported:

Standard timings supported:

Detailed mode: Clock 72.330 MHz, 344 mm x 194 mm

1366 1414 1446 1526 hborder 0

768 770 775 790 vborder 0

-hsync -vsync

Manufacturer-specified data, tag 15

ASCII string: SAMSUNG

ASCII string: LTN156AT39L01

Checksum: 0xe0 (valid)

EDID block does NOT conform to EDID 1.3!

Digital display field contains garbage: 14

Missing name descriptor

Missing monitor ranges

Detailed block string not properly terminated
Any ideas?

EDIT:
Just checked IORegistryViewer and found something bizarre:
Screen Shot 2016-10-05 at 2.36.34 PM.png

What?
 

RehabMan

Moderator
Joined
May 3, 2012
Messages
191,691
Motherboard
Intel DH67BL
CPU
Core i7-2600K
Graphics
Intel HD 3000
Mac
MacBook Air
Mobile Phone
iOS
Using a custom EDID seems to make my laptop display completely useless, however I could simply be messing up somewhere (i.e using the wrong size)
This is my original EDID
Code:
00 FF FF FF FF FF FF 00 4C 83 52 4A 00 00 00 00 00 18 01 03 95 22 13 78 0A 71 05 93 55 57 8F 29
20 50 54 00 00 00 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 41 1C 56 A0 50 00 16 30 30 20
25 00 58 C2 10 00 00 19 00 00 00 0F 00 00 00 00 00 00 00 00 00 20 52 03 15 00 00 00 00 FE 00 53
41 4D 53 55 4E 47 0A 20 4C 83 41 54 00 00 00 FE 00 4C 54 4E 31 35 36 41 54 33 39 4C 30 31 00 D8
And this is my modified EDID
Code:
00 FF FF FF FF FF FF 00 4C 83 52 4A 00 00 00 00 00 18 01 03 95 1D 10 78 0A 71 05 93 55 57 8F 29
20 50 54 00 00 00 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 41 1C 56 A0 50 00 16 30 30 20
25 00 58 C2 10 00 00 19 00 00 00 0F 00 00 00 00 00 00 00 00 00 20 52 03 15 00 00 00 00 FE 00 53
41 4D 53 55 4E 47 0A 20 4C 83 41 54 00 00 00 FE 00 4C 54 4E 31 35 36 41 54 33 39 4C 30 31 00 E0
I've checked to make sure the checksum was correct and edid-decode verifies it


Any ideas?

EDIT:
Just checked IORegistryViewer and found something bizarre:
View attachment 214204

What?
You probably did not enter the EDID correctly in your config.plist.
 
Joined
Feb 1, 2012
Messages
5
Motherboard
Lenovo Ideapad 100-15IBD (Clover)
CPU
Intel Core i3-5020U
Graphics
Intel HD 5500
Mobile Phone
Android
I thought the same thing and double checked, it's all there:
Code:
        <key>InjectEDID</key>
        <true/>
        <key>CustomEDID</key>
        <string>00 FF FF FF FF FF FF 00 4C 83 52 4A 00 00 00 00 00 18 01 03 95 1D 10 78 0A 71 05 93 55 57 8F 29
20 50 54 00 00 00 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 41 1C 56 A0 50 00 16 30 30 20
25 00 58 C2 10 00 00 19 00 00 00 0F 00 00 00 00 00 00 00 00 00 20 52 03 15 00 00 00 00 FE 00 53
41 4D 53 55 4E 47 0A 20 4C 83 41 54 00 00 00 FE 00 4C 54 4E 31 35 36 41 54 33 39 4C 30 31 00 E0</string>
I still think it's something I did, so any other input is appreciated.
 

RehabMan

Moderator
Joined
May 3, 2012
Messages
191,691
Motherboard
Intel DH67BL
CPU
Core i7-2600K
Graphics
Intel HD 3000
Mac
MacBook Air
Mobile Phone
iOS
I thought the same thing and double checked, it's all there:
Code:
        <key>InjectEDID</key>
        <true/>
        <key>CustomEDID</key>
        <string>00 FF FF FF FF FF FF 00 4C 83 52 4A 00 00 00 00 00 18 01 03 95 1D 10 78 0A 71 05 93 55 57 8F 29
20 50 54 00 00 00 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 41 1C 56 A0 50 00 16 30 30 20
25 00 58 C2 10 00 00 19 00 00 00 0F 00 00 00 00 00 00 00 00 00 20 52 03 15 00 00 00 00 FE 00 53
41 4D 53 55 4E 47 0A 20 4C 83 41 54 00 00 00 FE 00 4C 54 4E 31 35 36 41 54 33 39 4C 30 31 00 E0</string>
I still think it's something I did, so any other input is appreciated.
Use "data" type, not string (use a plist editor, not text editor).
You can use string, but no error checking... the spaces in your string are not valid.
 
Joined
Feb 1, 2012
Messages
5
Motherboard
Lenovo Ideapad 100-15IBD (Clover)
CPU
Intel Core i3-5020U
Graphics
Intel HD 5500
Mobile Phone
Android
Ah, I was going by the image in the first post, yeah, that's definitely my problem then, I'll fix and retry.

Edit: Yeah that fixed it for me, I now have full access to SysPref->Displays :D

Thanks a lot for the help!
 
Last edited:
Top