Jump to content
joshhh

[GUIDE] How to fix [spdisplays_display] in About This Mac window 2012.08.20 update - tiny app added

31 posts in this topic

Recommended Posts

How to fix Mac OS X Lion laptop internal display name in About This Mac window [spdisplays_display]

 

No more manual edits, just run this tiny app and reboot

 

post-120553-0-36350900-1345492007_thumb.png

 

spdisplays_display Fixer.app.dmg

 

By chines people talks...

 

 

 

1) Ok first of all we need to get display vendor and product IDs:

 

Disconnect any external displays if you have one

 

Run Terminal and execute following commands

 

ioreg -l -x -w0 | grep DisplayProductID

 

ioreg -l -x -w0 | grep DisplayVendorID

 

My values is:

 

"DisplayProductID" = 0x40b0

"DisplayVendorID" = 0x30ae

 

2) For proper use in config file we need some conversion of values from hex to dec

 

"DisplayProductID" = 0x40b0 -> dec 16560

"DisplayVendorID" = 0x30ae -> byte flip to ae30 -> dec 44592

 

3) For proper use we should get monitor EDID values (optional, not really necessary)

 

 

Download SwitchResX 4 demo and export EDID data to file

 

post-120553-0-07870100-1328024562_thumb.png

 

 

Open saved file and copy following grouped lines

 

00FFFFFF FFFFFF00 30AEB040 00000000 01130103 80221378 EA57559C 5A549D26 1A505400 00000101 01010101 01010101 01010101 0101261B 56475000 26302018 340058C1 10000018 261B5666 51002630 30203400 58C11000 00180000 000F008C 09328C09 28160900 06AF5633 000000FE 00423135 36585730 32205633 200A0038

 

4) Lets make config file structure. In textedit create blank file and paste structure below

 

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">

<plist version="1.0">

<dict>

<key>DisplayProductID</key>

<integer>16560</integer>

<key>DisplayProductName</key>

<string>Color LCD</string>

<key>DisplayVendorID</key>

<integer>44592</integer>

<key>IODisplayEDID</key>

<data>

 

</data>

</dict>

</plist>

 

 

Important! Don't add EDID data untill you open config file in PropertyListEditor

 

Save file and open it with PropertyListEditor

 

Change DisplayProductID and DisplayVendorID to dec values from above - 16560 and 44592

 

 

Add EDID values from step above, or remove this section at all

 

To change DisplayProductName remember About This Mac template

 

Build-in <DisplayProductName string> Display

 

Build-in Color LCD Display

 

In my case

 

<key>DisplayProductName</key>

<string>Color LCD</string>

 

Make sure you have this section in dsdt gfx section

 

"@0,built-in",

Buffer (One)

{

0x01

},

 

4) Now lets create configuration file

 

Go to /System/Library/Displays/Overrides

 

a) Create DisplayVendorID folder with name (DisplayVendorID- plus "DisplayVendorID" = 0x30ae)

 

DisplayVendorID-30ae

 

B) Create DisplayProductID file with name(DisplayProductID- plus "DisplayProductID" = 0x40b0):

 

Just rename you temp file to, no extension needed

 

DisplayProductID-40b0

 

5) Reboot and you should get this

 

 

 

 

post-120553-0-64832900-1327273075_thumb.png

 

post-120553-0-29069200-1327273087_thumb.png

Share this post


Link to post
Share on other sites
Advertisement

I just wanted to thank you for this guide.

 

However- I actually didn't use it all.

 

I have these results:

 

 

ioreg -l -x -w0 | grep DisplayProductID

| | | | | "DisplayProductID" = 0x15a1

ioreg -l -x -w0 | grep DisplayVendorID

| | | | | "DisplayVendorID" = 0xdaf

 

which convert to:

 

5537

44813

 

but the 44813 wasn't right, I had a folder with my vendor id already. The number it used was 1552. Why is that?

 

Thanks again though!

Share this post


Link to post
Share on other sites

Thanks!

Worked for me! :)

 

"DisplayProductID" = 0x304c

"DisplayVendorID" = 0x4ca3

 

With GraphicsEnabler=yes.

Share this post


Link to post
Share on other sites

Hey, thanks for the great guide to change the display name. I'm a little, ahem, *noob*, could I have a little more layman kind of instruction? I understood the part about entering commands in Terminal and changing the hex values to dec, but the next few steps are a complete blank. Please help...

Share this post


Link to post
Share on other sites
Hey, thanks for the great guide to change the display name. I'm a little, ahem, *noob*, could I have a little more layman kind of instruction? I understood the part about entering commands in Terminal and changing the hex values to dec, but the next few steps are a complete blank. Please help...

 

I'm working on a shell script, which will generate this information automatically, stay tuned...

Share this post


Link to post
Share on other sites

Hello everyone, I have a weird problem, when I enter the commands that are used for our data I get this result:

ioreg-l-x-w0 | grep DisplayProductID

"DisplayProductID" = 0x717

ioreg-l-x-w0 | grep DisplayVendorID

"DisplayVendorID" = 0x756e6b6e

but these results are the path to the file located in:

System/library/displays/overrides/DisplayVendorID-756e6b6e

and the file is called: DisplayProductID-717, converting them to decimal results in the file already exists, how can I get the real information of my LG LCD? mine is a notebook asus x54hy.

Share this post


Link to post
Share on other sites

Hello everyone, I have a weird problem, when I enter the commands that are used for our data I get this result:

ioreg-l-x-w0 | grep DisplayProductID

"DisplayProductID" = 0x717

ioreg-l-x-w0 | grep DisplayVendorID

"DisplayVendorID" = 0x756e6b6e

but these results are the path to the file located in:

System/library/displays/overrides/DisplayVendorID-756e6b6e

and the file is called: DisplayProductID-717, converting them to decimal results in the file already exists, how can I get the real information of my LG LCD? mine is a notebook asus x54hy.

 

This is happening because you already have the information for your display in the Overrides folder. If you want to get your real information, delete this folder or simply remove it from the Overrides folder, restart your laptop and after this run the following commands:

 

ioreg -n AppleBacklightDisplay -lw0x | grep DisplayVendorID
ioreg -n AppleBacklightDisplay -lw0x | grep DisplayProductID

Share this post


Link to post
Share on other sites

I deleted the folder displayvendorid-756e6b6e and I emptied the trash, however, the results of the 2 commands that you told me to enter when I wrote them in the end they gave me a result that was already in the 717 files that I deleted the folder 756e6b6e, rusultato of the command is this:

host-001:~ linuxiano$ ioreg -n AppleBacklightDisplay -lw0x | grep DisplayProductID
| |   |   | | |	   "DisplayProductID" = 1815
host-001:~ linuxiano$ ioreg -n AppleBacklightDisplay -lw0x | grep DisplayVendorID
| |   |   | | |	   "DisplayVendorID" = 1970170734
host-001:~ linuxiano$ ioreg -l -x -w0 | grep DisplayVendorID
| |   |   | | |	   "DisplayVendorID" = 0x756e6b6e
host-001:~ linuxiano$ ioreg -l -x -w0 | grep DisplayProductID
| |   |   | | |	   "DisplayProductID" = 0x717

 

also eliminating the folder of files by starting SwitchResX still indicates that the path of the configuration file is: "DisplayProductID" = 0x717

"DisplayVendorID" = 0x756e6b6e

it is as if the file still existed

Always missing the vendorid that does not appear in SwitchResX

Share this post


Link to post
Share on other sites

1815(dec)=0x717(hex) and 1970170734(dec)=0x756e6b6e(hex), so everything seems to be ok. The outputs seems fine (I didn't understand why the -x parameter in the first two commands hasn't worked, but it's not so important). So, it seems these are your real values.

Share this post


Link to post
Share on other sites

I installed windows 7 last night I installed the video drivers and a program to find the edid gave me this result:

EDID ( Extended Display Identification Data) Report

Vendor/Product Identification:
Monitor Name :
Monitor Serial Number :
Manufacturer Name :  LGD
Product Id :  23000.00.00
Serial Number :  0
Week Of Manufacture :  0
Year Of Manufacture :  2010
EDIDVersion :  V1.3
Number Of Extension Flag :  0
Display parameters:
Video Input Definition :  Digital Signal
DFP1X Compatible Interface :  False
Max Horizontal Image Size :  340 mm
Max Vertical Image Size :  190 mm
Max Display Size :  15,3 Inches
Power Management and Features:
Standby :  Not Supported
Suspend :  Not Supported
ActiveOff :  Not Supported
Video Input :  1
sRGB Default ColorSpace :  False
Default GTF :  Not Supported
Prefered Timing Mode :  True
Gamma/Color and Etablished Timings:
Display Gamma :  2,2
Red :  x = 0,623 - y = 0,369
Green :  x = 0,346 - y = 0,61
Blue :  x = 0,148 - y = 0,098
White :  x = 0,313 - y = 0,329
Etablished Timings :
Display Type :  RGB Color Display
Standard Timing:

Preferred Detailed Timing:
Pixel Clock :  70 Mhz
Horizontal Active :  1366 pixels
Horizontal Blanking :  126 pixels
Horizontal Sync Offset :  36 pixels
Horizontal Sync Pulse Width :  48 pixels
Horizontal Border :  0 pixels
Horizontal Size :  344 mm
Vertical Active :  768 lines
Vertical Blanking :  14 lines
Vertical Sync Offset :  3 lines
Vertical Sync Pulse Width :  5 lines
Vertical Border :  0 lines
Vertical Size :  194 mm
Input Type :  Digital Separate
Interlaced :  False
VerticalPolarity :  False
HorizontalPolarity :  False
Monitor Range Limit:
Maximum Vertical Frequency :  0 Hz
Minimum Vertical Frequency :  0 Hz
Maximum Horizontal Frequency :  0 KHz
Minimum Horizontal Frequency :  0 KHz
Maximum Pixel Clock :  0 MHz
Stereo Display:
Stereo Display :  Normal display (no stereo)
RAW Data:
0x00  00 FF FF FF FF FF FF 00 30 E4 DC 02 00 00 00 00
0x10  00 14 01 03 80 22 13 78 0A A9 05 9F 5E 58 9C 26
0x20  19 50 54 00 00 00 01 01 01 01 01 01 01 01 01 01
0x30  01 01 01 01 01 01 58 1B 56 7E 50 00 0E 30 24 30
0x40  35 00 58 C2 10 00 00 19 00 00 00 00 00 00 00 00
0x50  00 00 00 00 00 00 00 00 00 00 00 00 00 FE 00 4C
0x60  47 20 44 69 73 70 6C 61 79 0A 20 20 00 00 00 FE
0x70  00 4C 50 31 35 36 57 48 34 2D 54 4C 41 31 00 79

Share this post


Link to post
Share on other sites

I installed windows 7 last night I installed the video drivers and a program to find the edid gave me this result:

EDID ( Extended Display Identification Data) Report

Vendor/Product Identification:
Monitor Name :
Monitor Serial Number :
Manufacturer Name :  LGD
Product Id :  23000.00.00
Serial Number :  0
Week Of Manufacture :  0
Year Of Manufacture :  2010
EDIDVersion :  V1.3
Number Of Extension Flag :  0
Display parameters:
Video Input Definition :  Digital Signal
DFP1X Compatible Interface :  False
Max Horizontal Image Size :  340 mm
Max Vertical Image Size :  190 mm
Max Display Size :  15,3 Inches
Power Management and Features:
Standby :  Not Supported
Suspend :  Not Supported
ActiveOff :  Not Supported
Video Input :  1
sRGB Default ColorSpace :  False
Default GTF :  Not Supported
Prefered Timing Mode :  True
Gamma/Color and Etablished Timings:
Display Gamma :  2,2
Red :  x = 0,623 - y = 0,369
Green :  x = 0,346 - y = 0,61
Blue :  x = 0,148 - y = 0,098
White :  x = 0,313 - y = 0,329
Etablished Timings :
Display Type :  RGB Color Display
Standard Timing:

Preferred Detailed Timing:
Pixel Clock :  70 Mhz
Horizontal Active :  1366 pixels
Horizontal Blanking :  126 pixels
Horizontal Sync Offset :  36 pixels
Horizontal Sync Pulse Width :  48 pixels
Horizontal Border :  0 pixels
Horizontal Size :  344 mm
Vertical Active :  768 lines
Vertical Blanking :  14 lines
Vertical Sync Offset :  3 lines
Vertical Sync Pulse Width :  5 lines
Vertical Border :  0 lines
Vertical Size :  194 mm
Input Type :  Digital Separate
Interlaced :  False
VerticalPolarity :  False
HorizontalPolarity :  False
Monitor Range Limit:
Maximum Vertical Frequency :  0 Hz
Minimum Vertical Frequency :  0 Hz
Maximum Horizontal Frequency :  0 KHz
Minimum Horizontal Frequency :  0 KHz
Maximum Pixel Clock :  0 MHz
Stereo Display:
Stereo Display :  Normal display (no stereo)
RAW Data:
0x00  00 FF FF FF FF FF FF 00 30 E4 DC 02 00 00 00 00
0x10  00 14 01 03 80 22 13 78 0A A9 05 9F 5E 58 9C 26
0x20  19 50 54 00 00 00 01 01 01 01 01 01 01 01 01 01
0x30  01 01 01 01 01 01 58 1B 56 7E 50 00 0E 30 24 30
0x40  35 00 58 C2 10 00 00 19 00 00 00 00 00 00 00 00
0x50  00 00 00 00 00 00 00 00 00 00 00 00 00 FE 00 4C
0x60  47 20 44 69 73 70 6C 61 79 0A 20 20 00 00 00 FE
0x70  00 4C 50 31 35 36 57 48 34 2D 54 4C 41 31 00 79

 

Try this script, it works according to the instructions in the first post. It will generate the data for your laptop display in the folder, where the script is located, but you have to remove all custom override information for your display and restart the laptop, before use it. The usage is:

 

genEDID.sh <name>

 

where <name> is the name you want to see in About This Mac/More info. Remember to use quotes, double quotes or "\ " between the words, if you want a name with more than one word. And also remember, the script will generate the EDID information only for the laptop display and not for the external display, if you have such attached.

genEDID_3c.zip

Share this post


Link to post
Share on other sites

I deleted the folder DisplayVendorID-756e6b6e, I repaired disk permissions and I restarted the PC, restart, I gave the command to the terminal

sudo sh genEDID.sh "Monitor"

translated into Italian because you do not understand very much, and the result is this :

Collecting some data ...

Detected Vendor ID: 0x (hex) 0 (dec)
Detected Product ID: 0x (hex) 0 (dec)
Flipbyted Vendor ID: 0x (hex) 0 (dec)
Detected EDID:
Encoded EDID:
Job done!

I missed the command? files inside and filled with zeros, but the file inside the folder and do not have numbers, but the name I assigned to the display is fine

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>DisplayProductID</key>
<integer>0</integer>
<key>DisplayProductName</key>
<string>Monitor</string>
<key>DisplayVendorID</key>
<integer>0</integer>
<key>IODisplayEDID</key>
<data>
</data>
</dict>
</plist>

Share this post


Link to post
Share on other sites

I deleted the folder DisplayVendorID-756e6b6e, I repaired disk permissions and I restarted the PC, restart, I gave the command to the terminal

sudo sh genEDID.sh "Monitor"

translated into Italian because you do not understand very much, and the result is this :

Collecting some data ...

Detected Vendor ID: 0x (hex) 0 (dec)
Detected Product ID: 0x (hex) 0 (dec)
Flipbyted Vendor ID: 0x (hex) 0 (dec)
Detected EDID:
Encoded EDID:
Job done!

I missed the command? files inside and filled with zeros, but the file inside the folder and do not have numbers, but the name I assigned to the display is fine

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>DisplayProductID</key>
<integer>0</integer>
<key>DisplayProductName</key>
<string>Monitor</string>
<key>DisplayVendorID</key>
<integer>0</integer>
<key>IODisplayEDID</key>
<data>
</data>
</dict>
</plist>

 

No, the command is right (or at least should work this way, I use simple "./genEDID.sh ProBook\ 4330s" on mine), but here's your command, executed on my laptop:

 

Philips-ProBook-4330s:Aa philip$ sudo sh genEDID.sh "Monitor"
Password:
Collecting some data...
Detected Vendor ID: 0x30e4 (hex) 12516 (dec)
Detected Product ID: 0x1da (hex) 474 (dec)
Flipbyted Vendor ID: 0xe430 (hex) 58416 (dec)
Detected EDID: 00ffffffffffff0030e4da010000000000130103801d11780ad5d59659568c271f505400000001010101010101010101010101010101121b5660500016302030360026a610000019000000000000000000000000000000000000000000fe004c4720446973706c61790a2020000000fe004c503133335748312d544c42310055
Encoded EDID: AP///////wAw5NoBAAAAAAATAQOAHRF4CtXVlllWjCcfUFQAAAABAQEBAQEBAQEB
AQEBAQEBEhtWYFAAFjAgMDYAJqYQAAAZAAAAAAAAAAAAAAAAAAAAAAAAAAAA/gBM
RyBEaXNwbGF5CiAgAAAA/gBMUDEzM1dIMS1UTEIxAFU=
Job done!

 

There's no need to use sudo, the script works fine without it. And I see no reason for such behaviour, the script uses only commands, that are included in OSX - ioreg, grep, sed, plutil. Try to run it like this:

 

bash -x /path/to/the/genEDID.sh Monitor

 

and post the result. This will execute the script in debug mode.

Share this post


Link to post
Share on other sites

I gave the command to the terminal by booting with the command to be chameleon -x, and this mode in mac right?

mac-pro-di-linuxiano:~ linuxiano$ bash -x genEDID.sh Monitor
+ '[' 1 -ne 1 ']'
+ echo 'Collecting some data...'
Collecting some data...
++ ioreg -n AppleBacklightDisplay -rxw0
++ grep IODisplayEDID
++ sed -e 's/\(^.*<\)\(.*\)\(>.*$\)/\2/'
+ origEDID=
++ echo ''
++ xxd -r -p
++ openssl base64
+ convEDID=
++ ioreg -n AppleBacklightDisplay -rxw0
++ grep DisplayVendorID
++ sed 's/.*0x//'
+ VenID=
++ ioreg -n AppleBacklightDisplay -rxw0
++ grep DisplayProductID
++ sed 's/.*0x//'
+ ProdID=
+++ cd genEDID.sh
+++ echo /Users/linuxiano/genEDID.sh
++ dirname /Users/linuxiano/genEDID.sh
+ scriptDir=/Users/linuxiano
+ genFile=DisplayProductID-
+ genDir=DisplayVendorID-
+ '[' 0 -eq 0 ']'
+ VenIDflip=
+ echo 'Detected Vendor ID: 0x (hex) 0 (dec)'
Detected Vendor ID: 0x (hex) 0 (dec)
+ echo 'Detected Product ID: 0x (hex) 0 (dec)'
Detected Product ID: 0x (hex) 0 (dec)
+ echo 'Flipbyted Vendor ID: 0x (hex) 0 (dec)'
Flipbyted Vendor ID: 0x (hex) 0 (dec)
+ echo 'Detected EDID: '
Detected EDID:
+ echo 'Encoded EDID: '
Encoded EDID:
+ mkdir /Users/linuxiano/DisplayVendorID-
+ echo '<?xml version=1.0 encoding=UTF-8?>
<!DOCTYPE plist PUBLIC -//Apple//DTD' PLIST '1.0//EN http://www.apple.com/DTDs/PropertyList-1.0.dtd>
<plist version=1.0>
<dict>
<key>DisplayProductID</key>
<integer>0</integer>
<key>DisplayProductName</key>
<string>Monitor</string>
<key>DisplayVendorID</key>
<integer>0</integer>
<key>IODisplayEDID</key>
<data>

</data>
</dict>
</plist>'
+ plutil -convert xml1 /Users/linuxiano/DisplayVendorID-/DisplayProductID-
+ echo 'Job done!'
Job done!

I always go back to this script, however, result from 0 at the beginning of post commands do not go out with 0.

I'm sorry you are so giving a huge annoyance, but I should so like to use this operating system since January and I'm trying unsuccessfully to run well this monitor, just earn some money I'll buy one immediately.

Share this post


Link to post
Share on other sites

I gave the command to the terminal by booting with the command to be chameleon -x, and this mode in mac right?

mac-pro-di-linuxiano:~ linuxiano$ bash -x genEDID.sh Monitor
+ '[' 1 -ne 1 ']'
+ echo 'Collecting some data...'
Collecting some data...
++ ioreg -n AppleBacklightDisplay -rxw0
++ grep IODisplayEDID
++ sed -e 's/\(^.*<\)\(.*\)\(>.*$\)/\2/'
+ origEDID=
++ echo ''
++ xxd -r -p
++ openssl base64
+ convEDID=
++ ioreg -n AppleBacklightDisplay -rxw0
++ grep DisplayVendorID
++ sed 's/.*0x//'
+ VenID=
++ ioreg -n AppleBacklightDisplay -rxw0
++ grep DisplayProductID
++ sed 's/.*0x//'
+ ProdID=
+++ cd genEDID.sh
+++ echo /Users/linuxiano/genEDID.sh
++ dirname /Users/linuxiano/genEDID.sh
+ scriptDir=/Users/linuxiano
+ genFile=DisplayProductID-
+ genDir=DisplayVendorID-
+ '[' 0 -eq 0 ']'
+ VenIDflip=
+ echo 'Detected Vendor ID: 0x (hex) 0 (dec)'
Detected Vendor ID: 0x (hex) 0 (dec)
+ echo 'Detected Product ID: 0x (hex) 0 (dec)'
Detected Product ID: 0x (hex) 0 (dec)
+ echo 'Flipbyted Vendor ID: 0x (hex) 0 (dec)'
Flipbyted Vendor ID: 0x (hex) 0 (dec)
+ echo 'Detected EDID: '
Detected EDID:
+ echo 'Encoded EDID: '
Encoded EDID:
+ mkdir /Users/linuxiano/DisplayVendorID-
+ echo '<?xml version=1.0 encoding=UTF-8?>
<!DOCTYPE plist PUBLIC -//Apple//DTD' PLIST '1.0//EN http://www.apple.com/DTDs/PropertyList-1.0.dtd>
<plist version=1.0>
<dict>
<key>DisplayProductID</key>
<integer>0</integer>
<key>DisplayProductName</key>
<string>Monitor</string>
<key>DisplayVendorID</key>
<integer>0</integer>
<key>IODisplayEDID</key>
<data>

</data>
</dict>
</plist>'
+ plutil -convert xml1 /Users/linuxiano/DisplayVendorID-/DisplayProductID-
+ echo 'Job done!'
Job done!

I always go back to this script, however, result from 0 at the beginning of post commands do not go out with 0.

I'm sorry you are so giving a huge annoyance, but I should so like to use this operating system since January and I'm trying unsuccessfully to run well this monitor, just earn some money I'll buy one immediately.

 

This script is for use only with laptop diplays, not with external displays. Is your display external or not? I think I said this few posts ago - it will detect only the laptop display and not the external one.

Share this post


Link to post
Share on other sites

I use only the internal monitor, Sometimes I think it could be the video card 'cause some people find problems, but' with the external monitor works fine.

Share this post


Link to post
Share on other sites

I use only the internal monitor, Sometimes I think it could be the video card 'cause some people find problems, but' with the external monitor works fine.

 

What's your videocard? Actually nevermind, ok, can you do something for me: open the Terminal, run the following command:

 

ioreg -lxw0 >> ~/dump.txt

 

You'll find a file called dump.txt in your home folder, zip it and attach it here.

 

Edit: I suspect what could be the problem: I wrote the script for HP ProBook 4x30s with Intel HD 3000 graphics in mind, it was suppose to be used only with laptops with such graphics. Maybe it will work with other laptops with Intel HD 3000 graphics, but I can't say will it work on laptops with other graphics. I also suspect that the names of the displays on laptops with different graphics are also different (the names in the IO Register). So I think it's my fault if I misguided you. But I think maybe it's a good idea to make the script graphics-independеnt.

Share this post


Link to post
Share on other sites

I have new information, booting in verbose mode, I noticed that the kext RadeonMonitor.kext I do not recognize the video card even if the kext correctly recognize all Ati6000controller.kext, I must see if not having the monitor configured correctly or if this happens I have to add something to the kext, tonight I will try to create a log file of the boot, about chameleon some settings may prevent proper recognition? I turned PciRoot because if you do not active the screen stays black.

Share this post


Link to post
Share on other sites

I have new information, booting in verbose mode, I noticed that the kext RadeonMonitor.kext I do not recognize the video card even if the kext correctly recognize all Ati6000controller.kext, I must see if not having the monitor configured correctly or if this happens I have to add something to the kext, tonight I will try to create a log file of the boot, about chameleon some settings may prevent proper recognition? I turned PciRoot because if you do not active the screen stays black.

 

Dude, I think you have a serious problem. According to this dump, you don't have laptop display at all!!! The laptop displays in the IO register are named "AppleBacklightDisplay", but according to the dump, you don't have object with that name in the register. I found object named AppleDisplay and usually this is the name for the external displays, this object has Vendor ID 0x756e6b6e and Product ID 0x717, but there is no IODisplayEDID key for this object. Honestly, I don't know what to say.

Share this post


Link to post
Share on other sites

I thank you very much for your help, I was hoping that you could risolvermi the problem but I think there is too little support for these video cards in the family RadeonMonitor.kext 6400 series does not even exist, but I tried to create it no expert on mac and I could not do, I think you have to adjust several things to run well on my monitor.

Share this post


Link to post
Share on other sites

Hello everybody,

 

I don´t know if this is the right place but i do not know where to ask else :)

 

I managed to run mountain lion on a notebook with an i7 3610qm and HD4000 with qe / ci.

 

The only problem I have is that my internal display is recognised as spdisplays_display and I cannot change brightness, no controls in system settings, the hardware keys fn+up/down also do not work.

 

I need to mention that my display only started working when I inserted an HDMI cable to my laptop on boot....now it is working all the time, but before I had to boot with -x and GraphicsEnabler=No because Osx did not know there to draw the window server and I got a black screen (seen in system.log)

 

Do you maybe have an idea?

 

I also have attached my ioreg.txt :)

ioreg.txt

Share this post


Link to post
Share on other sites

You need complex dsdt edits to get brightness control and some patch needs to be applied to get correct output to LCD without connecting HDMI

 

Hello everybody,

 

I don´t know if this is the right place but i do not know where to ask else :)

 

I managed to run mountain lion on a notebook with an i7 3610qm and HD4000 with qe / ci.

 

The only problem I have is that my internal display is recognised as spdisplays_display and I cannot change brightness, no controls in system settings, the hardware keys fn+up/down also do not work.

 

I need to mention that my display only started working when I inserted an HDMI cable to my laptop on boot....now it is working all the time, but before I had to boot with -x and GraphicsEnabler=No because Osx did not know there to draw the window server and I got a black screen (seen in system.log)

 

Do you maybe have an idea?

 

I also have attached my ioreg.txt :)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By ludufre
      [GUIA] Correção de assinatura BIOS Insyde H2O
       
      Recentemente comprei um notebook Lenovo L440 pra instalar o macOS Mojave e fui substituir a placa wireless pela DW1560 porque a atual não é compatível. Descobri que existia uma whitelist de placas permitidas que as fabricantes estão adotando recentemente (no meu caso utiliza uma bios Phoenix Insyde BIOS H2O).
       
      Procurei em fórums de BIOS MODDING e encontrei pessoas que fizeram o patch pra mim. Só que após substituir a BIOS notei que o computador ficava apitando 5 vezes todas vez que ligava e fui me aprofundar no caso. E foi aí que descobri como resolver isso e por isso criei esse guia baseado nas informações que achei em alguns fóruns russos.
       
       
      Prefácio
       
      Quando a BIOS falha no teste te integridade, algumas funcionalidades Intel AMT param de funcionar e é emitido uma sequência de 5 apitos duas vezes no boot.
      Após modificar para remover whitelist (habilitar placas WI-FI não autorizadas), destravar MSR 0xe2 (hackintosh), habilitar menu avançado, etc. a BIOS não vai passar no teste de integridade causando esse problema.
      Essa verificação de integridade é feita através da assinatura RSA do bloco da BIOS chamado TCPABIOS (mais informações abaixo) com a chave pública no formato modulus 3 também armazenada na BIOS.
      Esse bloco TCPABIOS armazena os checksums de cada volume da BIOS.
       
      O que faremos é gerar novos checkums para esses volumes que foram modificados, gerar um para de chaves RSA (privada e pública), assinar esse bloco com a chave privada e substituir a chave pública.
       
       
      Ferramentas necessárias
       
      - EFITool NE alpha 54: https://github.com/LongSoft/UEFITool/releases
      - HxD 2.1.0: https://mh-nexus.de/en/hxd/
      - OpenSSL: http://gnuwin32.sourceforge.net/packages/openssl.htm (Download -> Binaries)
      - Microsoft File Checksum Integrity Verifier (FCIV.exe): https://www.microsoft.com/en-us/download/details.aspx?id=11533
       
      Passo a passo
       
      Vamos abrir a BIOS modificada, localizar o bloco TCPABIOS e entender sua anatomia.
       
      1. Abra a BIOS no HxD
       

      (Vamos utilizar nesse guia a BIOS modificada no fórum MyDigitalLife.com pelo usuário Serg008 para o notebook Lenovo B590)
       
      2. Busque a palavra TCPABIOS:
       


       
      3. O bloco começa com TCPABIOS e termina com antes de TCPACPUH
       

       
      4. Anatomia:
       
      54 43 50 41 42 49 4F 53 48 31 38 34 61 31 31 2F
      32 36 2F 31 33 49 42 4D 53 45 43 55 52 00 FD 27
      34 2A 35 AB 41 26 39 E3 32 E5 B6 8A D6 49 5B 0B
      77 F9 82 58 48 00 00 00 CE 18 1F 00 00 00 03 00
      00 00 00 00 00 00 27 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 FF FF 83 04 D4
      52 52 95 C5 D7 21 55 78 0E 5C AD 47 EE C4 3D 1D
      C1 EC 69 03 2B 51 A5 42 61 96 22 F9 7B 88 57 B7
      A8 9D D0 20 DB 5B 11 10 55 07 84 6C 62 DF FA 2F
      6A A8 43 0C 8A 40 AF 79 0D 31 DB 5A 5D C8 2F EB
      F8 7C 87 B0 A6 3D 2A 88 AE 91 9D 88 E3 AA 85 E3
      5A B3 91 7F 28 68 1F BA 92 C4 7E 10 F5 1A 7E 75
      A9 6F CE C0 4F BA FA 79 A5 98 2B 50 60 BA 09 73
      7B 03 D1 0C 3E A2 9C 44 DF E9 F2 92 34 7B
       
      Cinza: Nome e informações do bloco
      Vermelho: Informações dos volumes (Checksum e Cabeçalho)
      Azul: Separação da lista de volumes para a assinatura do bloco
      Verde: Assinatura do bloco TCPABIOS são os últimos 128 bytes
       
      Lista de Volumes:
       
      Cada volume tem o formato: 00 FD 27 34 2A 35 AB 41 26 39 E3 32 E5 B6 8A D6 49 5B 0B 77 F9 82 58 48 00 00 00 CE 18 1F 00 00 00 03 00 00 00 00 00
                                                      (prefixo 3 bytes + checksum 20 bytes + offset 4 bytes + tamanho do volume 6 bytes + separador do fim 6 bytes)
       
      Os volumes são enumerados e utilizam o primeiro byte no prefixo para isso (00 FD 27), começando do 0.
      A BIOS utilizada nesse exemplo possui somente um volume, mas no caso de mais de um volume, seria: 00 FD 27 .., 01 FD 27 ..., 02 FD 27 ...
      - Checksum é o cálculo SHA1 do volume.
      - Offset é a posição do volume dentro da BIOS. Os bytes ficam invertidos, nesse caso seria 00 00 00 48 ou seja: 48h
      - Tamanho do volume também está com os bytes invertidos, então: 1F18CEh
       
      Então é isso. Precisamos corrigir essas informações (checksum, offset e tamanho)
       
      5. Para extrair os volumes abra a BIOS com o UEFITool e veja como identificar os volumes (nosso exemplo há somente um volume, se houvessem outros estariam também dentro de EfiFirmwareFileSystemGuid):
       

       
      Na BIOS original, circulado em vermelho podemos ver o nosso volume.
      Observe que em azul temos Offset e verde o tamanho. Exatamente como verificamos acima no HxD. Já na BIOS modificada vemos que está diferente o tamanho:
      Oridinal: 1F18CEh
      Modificada: 1F12D5h (vamos precisar disso mais tarde)
       
      6. Vamos extrair esse volume escolhendo a opção “Extract as is...”
       
       
       
      7. Utilize esse comando para obter o checkum desse volume: fciv.exe -sha1 File_Volume_image_FvMainCompact.ffs
       

       
      Agora temos o checksum que é 396e0dc987219b4369b1b9e010166302ce635202
       
      8. Substitua as informações no bloco TCPABIOS:
       

       
      Observe que o tamanho do volume precisa ter os bytes invertidos, então se o total são 6 bytes e é 1F12D5h, fica D5 12 1F 00 00 00 no lugar de CE 18 1F 00 00 00.
      Se o offset for diferente, também realizar o mesmo procedimento invertendo os bytes.
      Checksum alterar de 34 2A 35 AB 41 26 39 E3 32 E5 B6 8A D6 49 5B 0B 77 F9 82 58 para 39 6E 0D C9 87 21 9B 43 69 B1 B9 E0 10 16 63 02 CE 63 52 02
       
      Faça esse procedimento para cada volume na BIOS.
       
      9. Agora precisamos gerar o checksum de todo o bloco TCPABIOS mas sem considerar os últimos 131 bytes, ou seja desconsiderar de FF FF 83 + 80 bytes da assinatura anterior.
       
      Copie para um novo arquivo no HxD e salve como tcpabios
       

       
      Utilize o comando para gerar o checksum desse bloco: fciv.exe -sha1 tcpabios
       

       
      Checksum do bloco TCPABIOS: 0da6715509839a376b0a52e81fdf9683a8e70e52
       
      Crie um novo arquivo no HxD e adicione 108 bytes com 00 e cole o checksum no final e salve como tcpabios_sha, ficando assim:
       

       
      10. Agora vamos gerar a chave privada RSA com modulus 3: openssl genrsa -3 -out my_key.pem 1024
       

       
      Assinar o arquivo tcpabios_sha: openssl rsautl -inkey my_key.pem -sign -in tcpabios_hash -raw > tcpabios_sign
       

       
      Agora aproveite para gerar a chave publica: openssl rsa -in my_key.pem -outform der -pubout -out my_key_pub.der
       

       
      E gerar modulus 3 da chave pública: openssl rsa -pubin -inform der -in my_key_pub.der -text -noout
       

       
      Copie e cole a chave em um arquivo de texto para utilizar daqui a pouco. Remova todos os “:” e coloque tudo em uma única linha, ficando assim:
       

       
      11.   Abra o arquivo tcpabios_sign no HxD, copie o conteúdo e substitua a assinatura no final do bloco TCPABIOS:
       
       
       
      12. Agora vamos localizar na BIOS o local da chave pública e substituir. Essa chave começa com 12 04 e termina com 01 03 FF e fica após o bloco TCPABBLK.
       
      A chave fica assim: 12 04 + 81 bytes + 01 03 FF. Faça uma busca por 01 03 FF para localizar mais facilmente. Verifique se antes dos 81 bytes tem os bytes 12 04 para ter certeza que achou.
       

       

       
      Agora substitua pela chave pública que ficou anotado no arquivo de texto anteriormente, ficando assim:
       

       
       
      Salve e está pronto. Sua BIOS está assinada e pronta.
       
    • By ludufre
      [GUIDE] Fix Insyde H2O BIOS signature (5 beeps on Lenovo)
       
      I recently bought a Lenovo L440 laptop to install the Mojave macOS and I replaced the wireless card with the DW1560 because the current one is not compatible. I discovered that there was a whitelist of enabled cards that manufacturers are adopting recently (in my case it uses a Phoenix Insyde BIOS H2O).
       
      I searched the BIOS Modding forums and found people who did the patch for me. But after replacing the BIOS I noticed that the computer keep beeping 5 times every time I boot. So, I went deeper into this issue and that's when I figured out how to solve it. Then I created this guide based on the information I found in some Russian forums.
       
      Preface
       
      When the BIOS integrity test fails, some Intel AMT functionality stops working and a sequence of 5 whistles is issued twice at boot.
      After modifying to remove whitelist (enable unauthorized WI-FI cards), unlock MSR 0xe2 (hackintosh), enable advanced menu, etc. the BIOS will not pass the integrity test causing this problem.
      This integrity check is done through the RSA signature of the BIOS block called TCPABIOS (more information below) with the public key in modulus 3 format also stored in the BIOS.
      This TCPABIOS block stores the checksums of each BIOS volume.
       
      What we will do is generate new checksum for those volumes that have been modified, generate a RSA (private and public) key pair, sign that block with the private key, and replace the public key.
       
       
      Tools needed
       
      - EFITool NE alpha 54: https://github.com/LongSoft/UEFITool/releases
      - HxD 2.1.0: https://mh-nexus.de/en/hxd/
      - OpenSSL: http://gnuwin32.sourceforge.net/packages/openssl.htm (Download -> Binaries)
      - Microsoft File Checksum Integrity Verifier (FCIV.exe): https://www.microsoft.com/en-us/download/details.aspx?id=11533
       
      Step by step
       
      Let's open the modified BIOS, locate the TCPABIOS block and understand its anatomy.
       
      1. Open the BIOS with HxD
       

      (We will use the modded BIOS in the MyDigitalLife.com forum by the Serg008 user for the Lenovo B590 laptop in this guide)
       
      2. Find the word TCPABIOS:
       


       
      3. The block starts with TCPABIOS and ends before TCPACPUH
       

       
      4. Anatomy:
       
      54 43 50 41 42 49 4F 53 48 31 38 34 61 31 31 2F
      32 36 2F 31 33 49 42 4D 53 45 43 55 52 00 FD 27
      34 2A 35 AB 41 26 39 E3 32 E5 B6 8A D6 49 5B 0B
      77 F9 82 58 48 00 00 00 CE 18 1F 00 00 00 03 00
      00 00 00 00 00 00 27 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 FF FF 83 04 D4
      52 52 95 C5 D7 21 55 78 0E 5C AD 47 EE C4 3D 1D
      C1 EC 69 03 2B 51 A5 42 61 96 22 F9 7B 88 57 B7
      A8 9D D0 20 DB 5B 11 10 55 07 84 6C 62 DF FA 2F
      6A A8 43 0C 8A 40 AF 79 0D 31 DB 5A 5D C8 2F EB
      F8 7C 87 B0 A6 3D 2A 88 AE 91 9D 88 E3 AA 85 E3
      5A B3 91 7F 28 68 1F BA 92 C4 7E 10 F5 1A 7E 75
      A9 6F CE C0 4F BA FA 79 A5 98 2B 50 60 BA 09 73
      7B 03 D1 0C 3E A2 9C 44 DF E9 F2 92 34 7B
       
      Gray: Name and Block Information
      Red: Volume Information (Checksum and Header)
      Blue: Separation of the list of volumes and the block signature
      Green: Signature of the TCPABIOS block are the last 128 bytes
       
      List of Volumes:
       
      Each volume has the format: 00 FD 27 34 2A 35 AB 41 26 39 E3 32 E5 B6 8A D6 49 5B 0B 77 F9 82 58 48 00 00 00 CE 18 1F 00 00 00 03 00 00 00 00 00
                                              (Prefix 3 bytes + checksum 20 bytes + offset 4 bytes + volume size 6 bytes + end delimiter 6 bytes)
       
      The volumes are enumerated and use the first byte in the prefix for this (00 FD 27), starting at 0.
      The BIOS used in this example has only one volume, but in the case of more than one volume, it would be: 00 FD 27 .., 01 FD 27 ..., 02 FD 27 ...
      - Checksum is SHA1 calculation of the volume.
      - Offset is the volume position within the BIOS. The bytes are inverted, in this case it would be 00 00 00 48, equals to 48h
      - Volume Size is also with the bytes inverted, then: 1F18CEh
       
      Then that's it. We need to correct this information (checksum, offset and size)
       
      5. To extract the volumes open the BIOS with the UEFITool and see how to identify the volumes (our example there is only one volume if there were others would also be inside EfiFirmwareFileSystemGuid):
       

       
      In the original BIOS, circled in red we can see our volume.
      Note that in blue we have offset and green the size. Exactly as we checked up on HxD. In the modified BIOS we see that the size is different:
      Original: 1F18CEh
      Modified: 1F12D5h (we'll need this later)
       
      6. Let's extract this volume to calculate the checksum by choosing the "Extract as is ..."
       
       
       
      7. Use this command to get the checksum of this volume: fciv.exe -sha1 File_Volume_image_FvMainCompact.ffs
       

       
      Now we have the checksum that is 396e0dc987219b4369b1b9e010166302ce635202
       
      8. Replace the information in the TCPABIOS block:
       

       
      Note that the volume size must have the bytes inverted, so if the total is 6 bytes and is 1F12D5h, becomes D5 12 1F 00 00 00 in place of CE 18 1F 00 00 00.
      If the offset is different, also perform the same process by inverting the bytes.
      Checksum change from 34 2A 35 AB 41 26 39 E3 32 E5 B6 8A D6 49 5B 0B 77 F9 82 58 to 39 6E 0D C9 87 21 9B 43 69 B1 B9 E0 10 16 63 02 CE 63 52 02
       
      Do this for each volume in the BIOS.
       
      9. Now we need to generate the checksum of the whole TCPABIOS block but without considering the last 131 bytes, that is to dismiss FF FF 83 + 80 bytes from the previous signature.
       
      Copy to a new file in HxD and save as tcpabios
       

       
      Use the command to generate the checksum of this block: fciv.exe -sha1 tcpabios
       

       
      Checksum of TCPABIOS block: 0da6715509839a376b0a52e81fdf9683a8e70e52
       
      Create a new file in HxD and add 108 bytes with 00 and paste the checksum at the end and save as tcpabios_hash, thus:
       

       
      10. Now let's generate the RSA private key with modulus 3: openssl genrsa -3 -out my_key.pem 1024
       

       
      Sign the file tcpabios_hash: openssl rsautl -inkey my_key.pem -sign -in tcpabios_hash -raw > tcpabios_sign
       

       
      Now enjoy to generate the public key: openssl rsa -in my_key.pem -outform der -pubout -out my_key_pub.der
       

       
      And generate public key modulus 3: openssl rsa -pubin -inform der -in my_key_pub.der -text -noout
       

       
      Copy and paste the key into a text file to use soon. Remove all ":" and put everything on a single line, thus:
       

       
      11.   Open the tcpabios_sign file in HxD, copy the contents and replace the signature at the end of the TCPABIOS block:
       
       
       
      12. Now let's locate the location of the public key in the BIOS and replace it. This key starts with 12 04 and ends with 01 03 FF and is after the TCPABBLK block.
       
      The key looks like this: 12 04 + 81 bytes + 01 03 FF. Search for 01 03 FF to locate more easily. Verify that before the 81 bytes have bytes 12 04 to make sure you found.
       

       

       
      Now substitute for the public key that was annotated in the text file previously, thus:
       

       
       
      Save and you're ready. Your BIOS is signed and ready.
    • By Drovosek
      Hello.
      I extracted .aml files via F2 to Clover, then moved iasl and patchmatic to .../bin and DSDT converted.aml to DSDT.dsl
      Then I patched the DSDT.dsl patch battery_HP-G6-2221ss.txt and clicked "Compile".

      11750, 6126, syntax error, unexpected PARSEOP_ARG1
      19689, 6126, syntax error, unexpected PARSEOP_METHOD
      19735, 6126, syntax error, unexpected PARSEOP_CLOSE_PAREN
      19738, 6126, syntax error, unexpected '}', expecting $end and premature End-Of-File

      The first error disappears if you remove all the "args", the third if you remove the closing parenthesis (but I do not know how this is the correct solution to the errors)
       

      debug_9278.zip
      battery_HP-G6-2221ss.txt
      DSDT after bat patching.dsl
      DSDT primary.dsl
    • By rio2
      I recently installed High Sierra on my Ryzen system, just to find out how crappy the USB situation really is on AMD systems. The only choice is basically most of your ports flat out not working or GenericUSBXHCI crashing every time you pull out a thumbdrive. So after some trial and error here are my findings.
      The USB ports controlled by the XHCI controller on the SoC worked fine, but the ones attached to the chipset XHCI controller didn't.
      That's when I looked at the log and saw these lines:
      PTXH@00000000: AppleUSBXHCIPCI::createPorts: port 1 unsupported protocol USB 03.10 PTXH@00000000: AppleUSBXHCIPCI::createPorts: failed to allocate port 1 It turns out that for some reason the AppleXHCIPCI driver doesn't support the first two ports on the B350 chipset (made by ASMedia) USB controller. And after the driver fails to allocate port 1 it just stops and doesn't even look at the rest of the ports. So I first tried commenting out the first two ports from the DSDT and that worked and made all the other ports show app in the IOService tree. Than I quickly tested all the USB ports and it turns out that the 2 problematic ports aren't even wired to anything. But instead of editing the DSDT I wanted a cleaner solution, because I don't want to re-edit my DSDT every time I update the BIOS or change some BIOS settings.
       
      So here is my small SSDT that disables the stock PTXH device and adds a new device XHCI, that has all the ports needed for my board (ASUS PRIME B350-PLUS).
      DefinitionBlock ("SSDT-PRIME-B350-PLUS.aml", "SSDT", 1, "APPLE", "tinySSDT", 0x00000006) { External (\_SB_.PCI0.GPP2, DeviceObj) External (\_SB_.PCI0.GPP2.PTXH, DeviceObj) Scope (\_SB_.PCI0.GPP2.PTXH) { Name (_STA, Zero) } Scope (\_SB_.PCI0.GPP2) { Device (XHCI) { Name (_ADR, Zero) Device (RHUB) { Name (_ADR, Zero) // USB3.1 back panel Device (PRT1) { Name (_ADR, 0x5) Name (_UPC, Package (0x04) { 0xFF, 0x03, Zero, Zero }) } Device (PRT2) { Name (_ADR, 0x6) Name (_UPC, Package (0x04) { 0xFF, 0x03, Zero, Zero }) } // USB3.0 front panel Device (PRT3) { Name (_ADR, 0x7) Name (_UPC, Package (0x04) { 0xFF, 0x03, Zero, Zero }) } Device (PRT4) { Name (_ADR, 0x8) Name (_UPC, Package (0x04) { 0xFF, 0x03, Zero, Zero }) } // USB2.0 Device (PRT5) { Name (_ADR, 0x9) Name (_UPC, Package (0x04) { 0xFF, Zero, Zero, Zero }) } Device (PRT6) { Name (_ADR, 0xa) Name (_UPC, Package (0x04) { 0xFF, Zero, Zero, Zero }) } Device (PRT7) { Name (_ADR, 0xb) Name (_UPC, Package (0x04) { 0xFF, Zero, Zero, Zero }) } Device (PRT8) { Name (_ADR, 0xc) Name (_UPC, Package (0x04) { 0xFF, Zero, Zero, Zero }) } Device (PRT9) { Name (_ADR, 0xd) Name (_UPC, Package (0x04) { 0xFF, Zero, Zero, Zero }) } Device (PRTA) { Name (_ADR, 0xe) Name (_UPC, Package (0x04) { 0xFF, Zero, Zero, Zero }) } } } } } Please note that this is just an example and it most likely needs to be changed for your board.
    • By crisx95
      Hi, can someone of you palese help me fix the dsdt from my HP 15 p030nl? I need battery mette, back light control and the audio work in. Pls, I'm just bad at this, and before making a mess, i'd like your help. 
      P. S. I'm on High Sierra
      DSDT.aml.zip
×