Jump to content

Different solutions


Andy Vandijck
 Share

925 posts in this topic

Recommended Posts

Thanks, Andy. I've applied your kext and made my Sony DRU-880S recognized as HL-DT-ST DVD-RW GH41N, which are used in Mac Pros.

Could you tell me what's the benefit to make it recognized as SuperDrive?

  • Like 1
Link to comment
Share on other sites

Thanks, Andy. I've applied your kext and made my Sony DRU-880S recognized as HL-DT-ST DVD-RW GH41N, which are used in Mac Pros.

Could you tell me what's the benefit to make it recognized as SuperDrive?

That it's recognized as Apple drive.

In Tiger times this was needed for burning, etc.

There is some advantages now too.

The drive seems to work a little better.

  • Like 1
Link to comment
Share on other sites

  • 2 weeks later...

Use DarwinDumper to dump your EDID.

Open EDID.bin with a hex editor.

Open EDID.txt to check your EDID.

First of replace the serial number with this one in the EDID.bin (find and replace).

06 10 12 a0 00 00 00 00 1c 16

This will give you the Apple required serial number.

Next replace the chroma info with this to get Apple style colors on your display.

6f b1 a7 55 4c 9e 25 0c 50 54

Last but not least you need to edit one of the descriptors with this one (probably not the first as this is most likely the detailed resolution, use one you don't need).

00 00 00 fc 00 69 4d 61 63 0a 20 20 20 20 20 20 20 20

This will give the iMac display data.

Save up the binary and leave it open.

 

Use edid-decode to check the modifications and look for the checksum.

Correct the checksum and save it up again.

 

Download iMac_Display_Override.zip below.

Edit DisplayProductID-717 with a plist editor (plistedit pro for example).

Replace IODisplayEDID Data field with the hex value of your new EDID.bin

 

Open IORegistryExplorer.

Look for AppleDisplay (under display0 part under your GFX card).

 

Look up DisplayVendorID.

Rename the folder DisplayVendorID-756e6b6e to DisplayVendorID-<your_vendor>

 

Open the folder.

Switch back to IORegistryExplorer.

Look up DisplayProductID.

Rename the file DisplayProductID-717 to DisplayProductID-<your_product>

 

Install the folder in /System/Library/Displays/Overrides

 

Reboot.

 

If you did it right it will look like the picture below ;)

Enjoy... :D

Screenshot is made under VMWare Workstation running Mavericks (I didn't have my Mac around right now).

 

EDIT: DisplayOverride is not fully good, use the kext set available below (override download removed)

post-100023-0-64262900-1371917711_thumb.png

  • Like 5
Link to comment
Share on other sites

I believe this is a cosmetic hack only.... right?

If not, what are its benefits??

The identification data is cosmetic

The chroma info improves the colors on the screen.

Link to comment
Share on other sites

I did this hack just now (thanks Andy) and it did work. 

 

As an aside, I had hoped it might solve my issue of iTunes vid.s being greened out (I think it is some sort of DRM?) - wondered if this might convince my hack to play my (payed for) iTunes stuff. Unfortunately not though.

Link to comment
Share on other sites

I'm going to write an automatic tool to do the edid upgrade.

I'm thinking of adding the following Apple display models:

- MacBook Pro panel.

- iMac panel.

- Cinema HD display.

So it will be easy to override it.

Keep you posted ;)

  • Like 3
Link to comment
Share on other sites

I'm going to write an automatic tool to do the edid upgrade.

I'm thinking of adding the following Apple display models:

- MacBook Pro panel.

- iMac panel.

- Cinema HD display.

So it will be easy to override it.

Keep you posted ;)

 

Cinema HD display is something I would be interested in. 

Link to comment
Share on other sites

Cinema HD display is something I would be interested in. 

You can try the Thunderbolt one if you like. :)

 

serial:

06 10 27 92 39 08 23 16 23 16 

chroma:

6F B1 A7 55 4C 9E 25 0C 50 54 

descriptors:

00 00 00 FC 00 54 68 75 6E 64 65 72 62 6F 6C 74 0A 20 
Link to comment
Share on other sites

Just a quick update.

App partially written.

It already fetches the display vendors and devices.

You get the first found display first.

You can change the monitor number and press a button to get the screen you want.

It already makes a display override with the click of a button and modded edid binary.

Manual entry of display vendor and product is also possible.

Still todo:

Make the descriptor patching code smart.

Calculate the proper checksum.

Add the data for Cinema HD and MacBook Pro panels (iMac is done)

 

@shiecldk: could you please upload the full edid of that thunderbolt display?

I'll add it too. :)

Oh yeah. And then we also need the vendor and product id of that thunberbolt display from under ioregistry, AppleDisplay (in most cases under display0)

I did notice that..

Don't know how come it recognized as CRT. XD

Basic params controls the display type.

Just experiment with it...

  • Like 2
Link to comment
Share on other sites

@shiecldk: could you please upload the full edid of that thunderbolt display?

I'll add it too. :)

Oh yeah. And then we also need the vendor and product id of that thunberbolt display from under ioregistry, AppleDisplay (in most cases under display0)

Basic params controls the display type.

Just experiment with it...

So I tried to change the whole Basic params with thunderbolt display's one, but it's still recognized as CRT...

Here is the report from EDID Manager:

 

EgNGQIA.png

 

 

I found Thunderbolt Display's EDID thought the internet:

https://answers.launchpad.net/ubuntu/+source/xserver-xorg-video-intel/+question/220899

http://tdev.me/2010/12/apple-hardware-dumps/ (<--The MacMini6,2 one use Thunderbolt Display. See its I/O REGISTRY and SYSTEM PROFILER.)

 

According to the MacMini6,2's ioreg from tdev.me:

 

DisplayVendorID: 0x610

DisplayProductID: 0x9227

EDID:

00 ff ff ff ff ff ff 00 06 10 27 92 1f 00 23 16
23 16 01 04 b5 3c 22 78 22 6f b1 a7 55 4c 9e 25
0c 50 54 00 00 00 01 01 01 01 01 01 01 01 01 01
01 01 01 01 01 01 56 5e 00 a0 a0 a0 29 50 30 20
35 00 55 50 21 00 00 1a 1a 1d 00 80 51 d0 1c 20
40 80 35 00 55 50 21 00 00 1c 00 00 00 ff 00 43
30 32 4a 39 30 30 58 46 32 47 43 0a 00 00 00 fc
00 54 68 75 6e 64 65 72 62 6f 6c 74 0a 20 01 0f
02 03 0c c1 23 09 07 07 83 01 00 00 56 5e 00 a0
a0 a0 29 50 30 20 35 00 55 50 21 00 00 1a 1a 1d
00 80 51 d0 1c 20 40 80 35 00 55 50 21 00 00 1c
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 13

And the file should be DisplayVendorID-610/DisplayProductID-9227:

<dict>
	<key>DisplayProductID</key>
	<integer>37415</integer>
	<key>DisplayProductName</key>
	<string>Thunderbolt Display</string>
</dict> 

 

 

 

Now, this is the result:

 

 

<dict>
	<key>DisplayProductID</key>
	<integer>37415</integer>
	<key>DisplayVendorID</key>
	<integer>1552</integer>
	<key>DisplayProductName</key>
	<string>Thunderbolt Display</string>
	<key>IODisplayEDID</key>
	<data>AP///////wAGECeSOQgjFiMWAQO1PCJ4Im+xp1VMniUMUFS/74BxT4EAgUCBgJUAlQ+pQLMAAjqAGHE4LUBYLEUA3QwRAAAeAR0AclHQHiBuKFUA3QwRAAAeAAAA/QAySx9REQAKICAgICAgAAAA/ABUaHVuZGVyYm9sdAogAW0=</data>
</dict>

I got a different display image compare to #6:

GggyvBT.png

 

Still recongized as CRT..  :wallbash:

EiylwYO.png

 

 

 

In real MacMini6,2 show these:

 

N82JbHt.png

 

I don't have the property IODisplayCapabilityString in my ioreg, while the real MacMini6,2 do:

hxb2muB.png

 

Link to comment
Share on other sites

@shiecldk: IODisplayCapabilityString?

<"prot(monitor) type(LCD) model(Thunderbolt Display) cmds(01 02 03 E3 F3) VCP(02 05 10 52 62 66 8D 93 B6 C0 C8 C9 CA D6(01 02 03 04) DF E9 EB ED FD) mccs_ver(2.2)">

or?

IODisplayTechnologyType?

<00 ff 02 03>

IODisplayFirmwareLevel?

<ff ff 01 38>

IODisplayMCCSVersion?

<00 02 02 00>

IODisplayControllerID?

<00 00 00 ff>

 

These are all absent in normal display.

 

Also got a picture of the GUI of the new app. ;)

Take a peek... :D

post-100023-0-31188700-1372068229_thumb.png

  • Like 1
Link to comment
Share on other sites

I found a way to inject the other needed info.

I made a driver.

You still need to edit it with a plist editor.

 

Replace under Monitor Apple ID Injection

-DisplayProductID

-DisplayVendorID

with your display vendor and product id under AppleDisplay.

 

Next, under IOProviderMergeProperties

Replace IODisplayEDID with the EDID data you made.

 

Last, look up the IODisplayPrefsKey in IORegistryExplorer and copy it.

Paste it in and rename after */display0/AppleDisplay-***-*** to */display0/AppleDisplay-610-a012

 

Save and install the driver.

 

Clean caches and reboot.

If done right, you will have it exactly like on my screenshot ;)

 

I'll still make the app to edit the EDID but this driver should be used alongside :D

 

@shiecldk: You need to edit every parameter to match your thunderbolt display in the Info.plist.

After that it will work just fine. :D

Monitor_Apple.kext.zip

post-100023-0-57390800-1372072302_thumb.png

  • Like 3
Link to comment
Share on other sites

Also got a picture of the GUI of the new app.  ;)

Take a peek...  :D

I look forward to it. :)

 

@shiecldk: You need to edit every parameter to match your thunderbolt display in the Info.plist.

After that it will work just fine. :D

Awesome...Andy!  :thumbsup_anim:

 

Now it's recognized as LCD!!

 

CYdTfNu.png

 

 

Btw, don't know why the value in IODisplayCapabilityString is showed as Hex.

 

8VULRoq.png

 

Link to comment
Share on other sites

I just did some tests.
The kext completely negates the need for a display override.
Tested in ML and Mavericks without display override and with the kext.
It works just fine.
I wonder if I should add kext auto gen to the app... :D

EDIT: Here is a picture under Mavericks. The kext should work for older versions of OS X too (probably even Tiger ;))

Look! No more ugly black display icon... :)

post-100023-0-80608100-1372084325_thumb.png

Link to comment
Share on other sites

hello Andy

 

i always use EDID to my graphics work.. with chameleon must inject the forced edid in the file under /system/library/displays/...

 

now with clover

 

don't need it grab my original edid and inject it

 

only show my note display like a external monitor like the image u have

 

i test one solution it work .. in core.. replacing values in files.. but if any update .. mess with this files .. must do it again

 

i use several kext from u.. isight. ubsmouse , dvd drive and use yur voodoops2controller

 

so i will wait for the final solution.. for this..

 

nice work

 

regards

Link to comment
Share on other sites

I did the testings for monitor overrides.

Pics below...

Somebody with mobile should test the MacBook Pro solution (in my case it gave an iMac display because I have an iMac model, with a mobile model it probably gives the notebook...).

The rest works right.

4 override kexts made (adapt them where needed).

 

The */display0/AppleDisplay-*-* overrides (for IODisplayPrefsKey)

iMac : */display0/AppleDisplay-610-a012

Cinema HD : */display0/AppleDisplay-610-9232

Thunderbolt : */display0/AppleDisplay-610-9227

MacBook Pro : */display0/AppleDisplay-610-a014

 

Adapt your own IODisplayPrefsKey to the correct vendor and device using above as value guide.

 

Now the EDID fixes:

 

iMac you know... (see first post).

Thunderbolt:

Serial number data

06 10 27 92 1f 00 23 16 23 16

Chroma info

6f b1 a7 55 4c 9e 25 0c 50 54

Descriptor for name

00 00 00 fc 00 54 68 75 6e 64 65 72 62 6f 6c 74 0a 20

Descriptor for serial number

00 00 00 ff 00 43 30 32 4a 39 30 30 58 46 32 47 43 0a

Note that this needs 2 descriptor overrides.

 

Cinema HD:

Serial number

06 10 32 92 7c 9f 00 02 2a 10

Chroma info

fe 87 a3 57 4a 9c 25 13 50 54

Descriptor for name

00 00 00 fc 00 43 69 6e 65 6d 61 20 48 44 0a 00 00 00

Descriptor for serial number

00 00 00 ff 00 43 59 36 34 32 30 5a 36 55 47 31 0a 00

Note again that we need to override 2 descriptors

 

MacBook Pro:

Serial number

06 10 14 a0 00 00 00 00 0a 16

Chroma info

6f b1 a7 55 4c 9e 25 0c 50 54

Descriptor for name

00 00 00 fc 00 43 6f 6c 6f 72 20 4c 43 44 0a 20 20 20

This only needs one descriptor override.

 

Pictures below ;)

Monitor_Override_Kexts.zip

post-100023-0-92599500-1372088053_thumb.png

post-100023-0-18789100-1372088076_thumb.png

post-100023-0-22867400-1372088102_thumb.png

  • Like 2
Link to comment
Share on other sites

Link to comment
Share on other sites

 Share

×
×
  • Create New...