Jump to content

How to change working 10.x.x Framebuffer to make it work under 10.12 aka macOS SIERRA


3 posts in this topic

Recommended Posts

Hello Coders,

 

i have just noticed, that Framebuffer Repository has changed in SIERRA! See, this is the old code of JUNSAI FB in 10.11.6 AMD7000Controller.kext:

00040000 04030000 00010001 11020603
00040000 04030000 00010001 21030104
00040000 04030000 00010001 12040501
00040000 04030000 00010001 20010206
04000000 14000000 00010001 22050402
00020000 14020000 00010001 10000305

Now look, what it looks like in 10.12 AMD7000Controller.kext:

00040000 04030000 00010001 00000000 12040301 00000000
00040000 04030000 00010001 00000000 22050402 00000000
00040000 04030000 00010001 00000000 11020103 00000000
00040000 04030000 00010001 00000000 21030204 00000000
00040000 04030000 00010001 00000000 10000505 00000000
00040000 04030000 00010001 00000000 20010606 00000000

to make my SAMSUNG 46" HDMI FlatTV and my Dell U3415W 4k Monitor via DP port work, i have to change these settings to

00040000 04030000 00010001 00000000 11020603 00000000
00040000 04030000 00010001 00000000 21030104 00000000
00040000 04030000 00010001 00000000 12040501 00000000
00040000 04030000 00010001 00000000 20010206 00000000
04000000 14000000 00010001 00000000 22050402 00000000
00020000 14020000 00010001 00000000 10000305 00000000

otherwise the Dell Monitor gets recognized by Sierra, but wont display anything, cause of wrong connector-codes.

Also the ati-personality.pl script wont work or better say wont detect any FB anymore.

 

So now how to detect framebuffer codes in SIERRAs AMDx000Controller.kext?

Just run the script under EL CAPITAN with the following command: ati-personality.pl /Volumes/your SIERRA drive here/System/Library/Extensions/AMD7000Controller.kext

(Change "AMDx000Controller.kext" to the one desired for your gfx-card).

 

You will get the following output:

Script version 0.15
Kext /Volumes/macOS_SIERRA/System/Library/Extensions/AMD7000Controller.kext/Contents/MacOS/AMD7000Controller
Personality: Ramen
ConnectorInfo count in decimal: 0
Disk offset in decimal 1890192
Personality: Tako
ConnectorInfo count in decimal: 0
Disk offset in decimal 1890448
Personality: Namako
ConnectorInfo count in decimal: 0
Disk offset in decimal 1890592
Personality: Aji
ConnectorInfo count in decimal: 0
Disk offset in decimal 1890784
Personality: Buri
ConnectorInfo count in decimal: 0
Disk offset in decimal 1890880
Personality: Chutoro
ConnectorInfo count in decimal: 0
Disk offset in decimal 1890976
Personality: Dashimaki
ConnectorInfo count in decimal: 0
Disk offset in decimal 1891104
Personality: Ebi
ConnectorInfo count in decimal: 0
Disk offset in decimal 1891200
Personality: Gari
ConnectorInfo count in decimal: 0
Disk offset in decimal 1891328
Personality: Futomaki
ConnectorInfo count in decimal: 0
Disk offset in decimal 1891504
Personality: Hamachi
ConnectorInfo count in decimal: 0
Disk offset in decimal 1891600
Personality: OPM
ConnectorInfo count in decimal: 0
Disk offset in decimal 1891760
Personality: Ikura
ConnectorInfo count in decimal: 0
Disk offset in decimal 1891904
Personality: IkuraS
ConnectorInfo count in decimal: 0
Disk offset in decimal 1891936
Personality: Junsai
ConnectorInfo count in decimal: 0
Disk offset in decimal 1892080
Personality: Kani
ConnectorInfo count in decimal: 0
Disk offset in decimal 1892224
Personality: KaniS
ConnectorInfo count in decimal: 0
Disk offset in decimal 1892256
Personality: DashimakiS
ConnectorInfo count in decimal: 0
Disk offset in decimal 1892400
Personality: Maguro
ConnectorInfo count in decimal: 0
Disk offset in decimal 1892496
Personality: MaguroS
ConnectorInfo count in decimal: 0
Disk offset in decimal 1892528

Notice the Disk offset in decimal of your corresponding framebuffer. (in my case it was JUNSAI with offset 1892080)

Notice the Disk offset in decimal of the next framebuffer, that will be the beginning of the next framebuffer (in my Case it was KANI at 1892224, so JUNSAI ends at 1892220).

 

Open /Volumes/Your SIERRA Volume here/System/Library/Extensions/AMD7000Controller.kext/Contents/MacOS/AMD7000Controller in an hexeditor and jump to that offset (in my case 1892080):

Bildschirmfoto_2016_06_18_um_12_27_23.pn

Find the offset of next framebuffers beginning. Now copy the desired values to clipboard and paste in for example TextEdit:

00 04 00 00 04 03 00 00 00 01 00 01 00 00 00 00 12 04 03 01 00 00 00 00 00 04 00 00 04 03 00 00 00 01 00 01 00 00 00 00 22 05 04 02 00 00 00 00 00 04 00 00 04 03 00 00 00 01 00 01 00 00 00 00 11 02 01 03 00 00 00 00 00 04 00 00 04 03 00 00 00 01 00 01 00 00 00 00 21 03 02 04 00 00 00 00 00 04 00 00 04 03 00 00 00 01 00 01 00 00 00 00 10 00 05 05 00 00 00 00 00 04 00 00 04 03 00 00 00 01 00 01 00 00 00 00 20 01 06 06 00 00 00 00

delete all spaces and get formated like this:

00040000 04030000 00010001 00000000 12040301 00000000
00040000 04030000 00010001 00000000 22050402 00000000
00040000 04030000 00010001 00000000 11020103 00000000
00040000 04030000 00010001 00000000 21030204 00000000
00040000 04030000 00010001 00000000 10000505 00000000
00040000 04030000 00010001 00000000 20010606 00000000

Now change the BOLD values to your desired values to make the frambuffer work for your card:

 

00040000 04030000 00010001 00000000 12040301 00000000
00040000 04030000 00010001 00000000 22050402 00000000
00040000 04030000 00010001 00000000 11020103 00000000
00040000 04030000 00010001 00000000 21030204 00000000
00040000 04030000 00010001 00000000 10000505 00000000
00040000 04030000 00010001 00000000 20010606 00000000

 

In my case for JUNSAI it looks like this after changing the desired values:

 

00040000 04030000 00010001 00000000 11020603 00000000
00040000 04030000 00010001 00000000 21030104 00000000
00040000 04030000 00010001 00000000 12040501 00000000
00040000 04030000 00010001 00000000 20010206 00000000
04000000 14000000 00010001 00000000 22050402 00000000
00020000 14020000 00010001 00000000 10000305 00000000

 

The blue part are the connector type values for DP, HDMI, DVI etc. In my case just 4 times 0403 for DP and one for DVI-I and DVI-D.

 

Now delete the Line Returns so that u get just one line, like this:

00 04 00 00 04 03 00 00 00 01 00 01 00 00 00 00 12 04 03 01 00 00 00 00 00 04 00 00 04 03 00 00 00 01 00 01 00 00 00 00 22 05 04 02 00 00 00 00 00 04 00 00 04 03 00 00 00 01 00 01 00 00 00 00 11 02 01 03 00 00 00 00 00 04 00 00 04 03 00 00 00 01 00 01 00 00 00 00 21 03 02 04 00 00 00 00 00 04 00 00 04 03 00 00 00 01 00 01 00 00 00 00 10 00 05 05 00 00 00 00 00 04 00 00 04 03 00 00 00 01 00 01 00 00 00 00 20 01 06 06 00 00 00 00

do it for both parts, the original code and your modified code.

 

Now paste the following code to your "Kext to patch" section of info.plist file: NOTICE this is the example code for MY settings for JUNSAI framebuffer - use your own settings in the <data></data> section

            <dict>
                <key>Comment</key>
                <string>Framebuffer JUNSAI</string>
                <key>Disabled</key>
                <false/>
                <key>Find</key>
                <data>AAQAAAQDAAAAAQABAAAAABIEAwEAAAAAAAQAAAQDAAAAAQABAAAAACIFBAIAAAAAAAQAAAQDAAAAAQABAAAAABECAQMAAAAAAAQAAAQDAAAAAQABAAAAACEDAgQAAAAAAAQAAAQDAAAAAQABAAAAABAABQUAAAAAAAQAAAQDAAAAAQABAAAAACABBgYAAAAA</data>
                <key>Name</key>
                <string>AMD7000Controller</string>
                <key>Replace</key>
                <data>AAQAAAQDAAAAAQABAAAAABECBgMAAAAAAAQAAAQDAAAAAQABAAAAACEDAQQAAAAAAAQAAAQDAAAAAQABAAAAABIEBQEAAAAAAAQAAAQDAAAAAQABAAAAACABAgYAAAAABAAAABQAAAAAAQABAAAAACIFBAIAAAAAAAIAABQCAAAAAQABAAAAABAAAwUAAAAA</data>
            </dict>

or use PListEditor or XCode to generate the entry like this:

 

Bildschirmfoto_2016_06_18_um_12_46_23.pn

Use the desired values you just created - not mine in this example or picture  ;-) (just to make sure).

Save edited info.plist file and reboot. In my case it worked for me: Framebuffer JUNSAI in SIERRA detected and well patched.

 

Regards... Mork vom Ork

 

EDIT I: see this post for new AMD-Personality.pl script, which worx for SIERRA.

  • Like 8
  • 3 months later...

Man, I just installed Sierra with my R9 290X, and don' even boot. I mean, it boot al right, but after boot I just got a black screen, how can I at least boot to try somethig inside the OS?

×
×
  • Create New...