Mork vom Ork Posted June 18, 2016 Share Posted June 18, 2016 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): 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 0000000000040000 04030000 00010001 00000000 22050402 0000000000040000 04030000 00010001 00000000 11020103 0000000000040000 04030000 00010001 00000000 21030204 0000000000040000 04030000 00010001 00000000 10000505 0000000000040000 04030000 00010001 00000000 20010606 00000000 In my case for JUNSAI it looks like this after changing the desired values: 00040000 04030000 00010001 00000000 11020603 0000000000040000 04030000 00010001 00000000 21030104 0000000000040000 04030000 00010001 00000000 12040501 0000000000040000 04030000 00010001 00000000 20010206 0000000004000000 14000000 00010001 00000000 22050402 0000000000020000 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: 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. 8 Link to comment Share on other sites More sharing options...
charlesmottion Posted September 25, 2016 Share Posted September 25, 2016 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? Link to comment Share on other sites More sharing options...
PuckBoy18 Posted September 28, 2016 Share Posted September 28, 2016 Dude, you rock!!! This worked great on my Radeon HD 5650 Mobility in a Lenovo Y460p. I've got full (1366x768) resolution again. Thanks!!! Link to comment Share on other sites More sharing options...
Recommended Posts