Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.
Status
The first post of this thread is a WikiPost and can be edited by anyone with the appropiate permissions. Your edits will be public.

cdf

macrumors 68020
Jul 27, 2012
2,256
2,583
@startergo, thanks for all the tests. As a reference, this chart provides common use cases. According to the chart, 128 should be the best choice for the cMP, but that has not been my experience.

I have found that with no SMBIOS spoofing, 96 = 32 (with iMac Pro shiki-id) + 64 (hardware decoder for streaming) works best. However, iMac Pro spoofing (which replaces the need for 32 with iMac Pro shiki-id), apparently does something extra, even for DRM.

Case in point, @startergo and @h9826790 could you confirm that iMac Pro spoofing and 64 "enables" FairPlay 2.1 (true = $1), while no spoofing and 96 (with iMac Pro shiki-id) does not (false = $1). Unfortunately, even with spoofing, something is still missing, at least for Netflix. As an extra data point, what are your results in these cases when trying to play a trailer on Amazon?
 
Last edited:

startergo

macrumors 603
Sep 20, 2018
5,021
2,283
@startergo, thanks for all the tests. As a reference, this chart provides common use cases. According to the chart, 128 should be the best choice for the cMP, but that has not been my experience.

I have found that with no SMBIOS spoofing, 96 = 32 (with iMac Pro shiki-id) + 64 (hardware decoder for streaming) works best. However, iMac Pro spoofing (which replaces the need for 32 with iMac Pro shiki-id), apparently does something extra, even for DRM.

Case in point, @startergo and @h9826790 could you confirm that iMac Pro spoofing and 64 "enables" FairPlay 2.1 (true = $1), while no spoofing and 96 (with iMac Pro shiki-id) does not (false = $1). Unfortunately, even with spoofing, something is still missing, at least for Netflix. As an extra data point, what are your results in these cases when trying to play a trailer on Amazon?
According to that table we should add 32 to all values implicitly + board IID change otherwise it gives you the default iMac board. So far 16+32 is kernel Panick. But if we want 128+32=160 should work best for us (in theory).
 

startergo

macrumors 603
Sep 20, 2018
5,021
2,283
Breakthrough guys! FULL HEVC encode/decode and full DRM2.1 playback! Netflix, Amazon prime, TV+!
Code:
<dict>
                <key>boot-args</key>
                <string>-v keepsyms=1 -liludbgall liludump=10 debug=0x144 -no_compat_check -wegtree shikigva=144  shiki-id=Mac-7BA5B2D9E42DDD94</string>
                <key>csr-active-config</key>
                <data>dwAAAA==</data>
            </dict>
        </dict>
        <key>Block</key>
        <dict>
            <key>7C436110-AB2A-4BBB-A880-FE41995C9F82</key>
            <array>
                <string>boot-args</string>
            </array>
        </dict>
        <key>LegacyEnable</key>
        <false/>
        <key>LegacySchema</key>
        <dict/>
    </dict>
    <key>PlatformInfo</key>
    <dict>
        <key>Automatic</key>
        <true/>
        <key>Generic</key>
        <dict>
            <key>MLB</key>
            <string>generated iMac Pro MLB with OC</string>
            <key>ROM</key>
            <data>your cMP5.1 ROM</data>
            <key>SystemProductName</key>
            <string>iMacPro1,1</string>
            <key>SystemSerialNumber</key>
            <string>your cMP5.1 SSN</string>
            <key>SystemUUID</key>
            <string>your cMP5.1 UUID</string>
        </dict>
        <key>UpdateDataHub</key>
        <true/>
        <key>UpdateNVRAM</key>
        <true/>
        <key>UpdateSMBIOS</key>
        <true/>
        <key>UpdateSMBIOSMode</key>
        <string>Create</string>
    </dict>
My cMP5,1 MLB
Code:
nvram 4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:MLB | awk '{ print $NF }'
My cMP5,1 serial number of the processor tray
Code:
ioreg -l -p IODeviceTree | awk '/"processor-memory-board-serial-number"/ {gsub(/\"/,""); print $NF}'
My cMP5,1 ROM (in Base64, suitable for entry using TextEdit)
Code:
nvram 4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:ROM | awk '{split($NF,chars,""); for(n=0;n<256;n++){ord[sprintf("%c",n)]=n}; i=1; j=0; while(i<=length($NF)){if(substr($NF,i,1)=="%"){printf "%s",toupper(substr($NF,i+1,2)); i=i+2} else {printf "%x",toupper(ord[chars[i]])} j=j+2; i++} print("")}' | xxd -r -p | base64
My cMP5,1 SSN
Code:
g5@G5 ~ % ioreg -l -p IODeviceTree | awk '/"IOPlatformSerialNumber"/ {gsub(/\"/,""); print $NF}'
 

startergo

macrumors 603
Sep 20, 2018
5,021
2,283
I also added:
Code:
defaults write com.apple.AppleGVA forceATI -boolean yes 
defaults write com.apple.coremedia hardwareVideoDecoder force
Although I don't know if that makes any difference.
 

tsialex

Contributor
Jun 13, 2016
13,454
13,601
Breakthrough guys! FULL HEVC encode/decode and full DRM2.1 playback! Netflix, Amazon prime, TV+!
Code:
<dict>
                <key>boot-args</key>
                <string>-v keepsyms=1 -liludbgall liludump=10 debug=0x144 -no_compat_check -wegtree shikigva=144  shiki-id=Mac-7BA5B2D9E42DDD94</string>
                <key>csr-active-config</key>
                <data>dwAAAA==</data>
            </dict>
        </dict>
        <key>Block</key>
        <dict>
            <key>7C436110-AB2A-4BBB-A880-FE41995C9F82</key>
            <array>
                <string>boot-args</string>
            </array>
        </dict>
        <key>LegacyEnable</key>
        <false/>
        <key>LegacySchema</key>
        <dict/>
    </dict>
    <key>PlatformInfo</key>
    <dict>
        <key>Automatic</key>
        <true/>
        <key>Generic</key>
        <dict>
            <key>MLB</key>
            <string>generated iMac Pro MLB with OC</string>
            <key>ROM</key>
            <data>your cMP5.1 ROM</data>
            <key>SystemProductName</key>
            <string>iMacPro1,1</string>
            <key>SystemSerialNumber</key>
            <string>your cMP5.1 SSN</string>
            <key>SystemUUID</key>
            <string>your cMP5.1 UUID</string>
        </dict>
        <key>UpdateDataHub</key>
        <true/>
        <key>UpdateNVRAM</key>
        <true/>
        <key>UpdateSMBIOS</key>
        <true/>
        <key>UpdateSMBIOSMode</key>
        <string>Create</string>
    </dict>
My cMP5,1 MLB
Code:
nvram 4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:MLB | awk '{ print $NF }'
My cMP5,1 serial number of the processor tray
Code:
ioreg -l -p IODeviceTree | awk '/"processor-memory-board-serial-number"/ {gsub(/\"/,""); print $NF}'
My cMP5,1 ROM (in Base64, suitable for entry using TextEdit)
Code:
nvram 4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:ROM | awk '{split($NF,chars,""); for(n=0;n<256;n++){ord[sprintf("%c",n)]=n}; i=1; j=0; while(i<=length($NF)){if(substr($NF,i,1)=="%"){printf "%s",toupper(substr($NF,i+1,2)); i=i+2} else {printf "%x",toupper(ord[chars[i]])} j=j+2; i++} print("")}' | xxd -r -p | base64
My cMP5,1 SSN
Code:
g5@G5 ~ % ioreg -l -p IODeviceTree | awk '/"IOPlatformSerialNumber"/ {gsub(/\"/,""); print $NF}'
Nice! ?

Btw, AppleTV+ works with MP5,1 natively
 

cdf

macrumors 68020
Jul 27, 2012
2,256
2,583
Yes, this is great progress, and now we should try to understand precisely what triggered everything to work. In particular, 144 corresponds to 128 + 16, but there is also shiki-id, which would require 32, and 16 is apparently for IGPU systems.
 

startergo

macrumors 603
Sep 20, 2018
5,021
2,283
Yes, this is great progress, and now we should try to understand precisely what triggered everything to work. In particular, 144 corresponds to 128 + 16, but there is also shiki-id, which would require 32, and 16 is apparently for IGPU systems.
Code:
-igfxfbdump to dump native and patched framebuffer table to ioreg at IOService:/IOResources/WhateverGreen
Adding this to the boot variables will give us more info on what it is actually patching unless it only refers to IGPU
and this:
Code:
Add liludump=N to let Lilu DEBUG version dump log to /var/log/Lilu_VERSION_KERN_MAJOR.KERN_MINOR.txt after N seconds
-liludbgall liludump=10 in the boot arguments
 

h9826790

macrumors P6
Original poster
Apr 3, 2014
16,656
8,587
Hong Kong
Breakthrough guys! FULL HEVC encode/decode and full DRM2.1 playback! Netflix, Amazon prime, TV+!
Code:
<dict>
                <key>boot-args</key>
                <string>-v keepsyms=1 -liludbgall liludump=10 debug=0x144 -no_compat_check -wegtree shikigva=144  shiki-id=Mac-7BA5B2D9E42DDD94</string>
                <key>csr-active-config</key>
                <data>dwAAAA==</data>
            </dict>
        </dict>
        <key>Block</key>
        <dict>
            <key>7C436110-AB2A-4BBB-A880-FE41995C9F82</key>
            <array>
                <string>boot-args</string>
            </array>
        </dict>
        <key>LegacyEnable</key>
        <false/>
        <key>LegacySchema</key>
        <dict/>
    </dict>
    <key>PlatformInfo</key>
    <dict>
        <key>Automatic</key>
        <true/>
        <key>Generic</key>
        <dict>
            <key>MLB</key>
            <string>generated iMac Pro MLB with OC</string>
            <key>ROM</key>
            <data>your cMP5.1 ROM</data>
            <key>SystemProductName</key>
            <string>iMacPro1,1</string>
            <key>SystemSerialNumber</key>
            <string>your cMP5.1 SSN</string>
            <key>SystemUUID</key>
            <string>your cMP5.1 UUID</string>
        </dict>
        <key>UpdateDataHub</key>
        <true/>
        <key>UpdateNVRAM</key>
        <true/>
        <key>UpdateSMBIOS</key>
        <true/>
        <key>UpdateSMBIOSMode</key>
        <string>Create</string>
    </dict>
My cMP5,1 MLB
Code:
nvram 4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:MLB | awk '{ print $NF }'
My cMP5,1 serial number of the processor tray
Code:
ioreg -l -p IODeviceTree | awk '/"processor-memory-board-serial-number"/ {gsub(/\"/,""); print $NF}'
My cMP5,1 ROM (in Base64, suitable for entry using TextEdit)
Code:
nvram 4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14:ROM | awk '{split($NF,chars,""); for(n=0;n<256;n++){ord[sprintf("%c",n)]=n}; i=1; j=0; while(i<=length($NF)){if(substr($NF,i,1)=="%"){printf "%s",toupper(substr($NF,i+1,2)); i=i+2} else {printf "%x",toupper(ord[chars[i]])} j=j+2; i++} print("")}' | xxd -r -p | base64
My cMP5,1 SSN
Code:
g5@G5 ~ % ioreg -l -p IODeviceTree | awk '/"IOPlatformSerialNumber"/ {gsub(/\"/,""); print $NF}'

Wow~~~ You make it!

This is HUGE!!! The very very last piece of puzzle (at least true for single processor cMP, or for those who are running 10.14.6)

I confirm EVERYTHING now working as expected. H264 / HEVC full HWAccel, iTunes / TV+ DRM streaming, Netflix in Safari...

I use manual mode in OpenCore. Once I change the shikigva value to 144, I got everything works.

So, those default write commands are not required.

To sum up, the requirements should be

1) Use iMac Pro MLB in OpenCore
2) Rename PSX to GFX0 (I do that by using OpenCore, but can also be done via -wegtree)
3) Lilu 1.4.1 + WEG 1.3.6 (not sure if the earlier versions work, not tested yet)
4) Boot argument "shikigva=144" (shiki-id=Mac-7BA5B2D9E42DDD94 is NOT required, tested)
5) 10.14.6 or Catalina (10.14.5 may work, but not tested, and no point to stay at 10.14.5 anyway)
6) Supported GPU (for RX580, HEVC HWAccel won't work in 10.15.2)
 

startergo

macrumors 603
Sep 20, 2018
5,021
2,283
Funny thing:
they banned me from the bug tracker saying that "I was spamming" when I provided my testing results for better understanding of what actually the patches do, not "what they want them" or "what they would insist" they do :)
 
  • Like
  • Wow
Reactions: orph and Ludacrisvp

startergo

macrumors 603
Sep 20, 2018
5,021
2,283
The very very last piece of puzzle (at least true for single processor cMP, or for those who are running 10.14.6)
It is also true for dual processors in Catalina 10.15.2 what I tested recently.
To make it work I had to remove the
com.apple.driver.AppleIntelMCEReporter kext
Also I had to apply @dosdude1 patches from the USB installer. Every now and then I got kernel panic related to the USB power management described in my previous posts so I had to reapply the patches again.
 
Last edited:
  • Like
Reactions: h9826790

h9826790

macrumors P6
Original poster
Apr 3, 2014
16,656
8,587
Hong Kong
Yes, this is great progress, and now we should try to understand precisely what triggered everything to work. In particular, 144 corresponds to 128 + 16, but there is also shiki-id, which would require 32, and 16 is apparently for IGPU systems.

I re-check the WEG 1.3.5 release notes. 16 should work for AMD GPU now.
Screenshot 2019-12-16 at 3.43.53 AM.png
 

crjackson2134

macrumors 601
Mar 6, 2013
4,847
1,957
Charlotte, NC
Nice! ?

Btw, AppleTV+ works with MP5,1 natively

Not for me... It was working with the initial release, but then stopped working after the .2 release. It will load and play trailers, but when you start to watch a subscribed movie or series, it well then crash/close.

Works well on my Samsung TV however. It would be great to be able to watch on my MP51.
 
  • Like
Reactions: startergo

w1z

macrumors 6502a
Aug 20, 2013
692
481
Breakthrough guys! FULL HEVC encode/decode and full DRM2.1 playback! Netflix, Amazon prime, TV+!

Great work ?

To sum up, the requirements should be

1) Use iMac Pro MLB in OpenCore
2) Rename PSX to GFX0 (I do that by using OpenCore, but can also be done via -wegtree)
3) Lilu 1.4.1 + WEG 1.3.6 (not sure if the earlier versions work, not tested yet)
4) Boot argument "shikigva=144" (shiki-id=Mac-7BA5B2D9E42DDD94 is NOT required, tested)
5) 10.14.6 or Catalina (10.14.5 may work, but not tested, and no point to stay at 10.14.5 anyway)
6) Supported GPU (for RX580, HEVC HWAccel won't work in 10.15.2)

A couple of questions -

1. How do we generate an iMac Pro MLB?

2. Do we still need to populate the below in 'Automatic' mode?

Code:
<key>ROM</key>
<data>your cMP5.1 ROM</data>
<key>SystemProductName</key>
<string>iMacPro1,1</string>
<key>SystemSerialNumber</key>
<string>your cMP5.1 SSN</string>
<key>SystemUUID</key>
<string>your cMP5.1 UUID</string>

Thanks
 
  • Like
Reactions: Warriors Photo

Warriors Photo

macrumors newbie
Jun 6, 2011
11
1
San Diego, Ca
Hello. I know this may be a silly question. I am wondering if anyone has tried this method for the 6,1 Mac Pro models. I wouldn't mind getting one of those now that the prices are starting to come down.
 

h9826790

macrumors P6
Original poster
Apr 3, 2014
16,656
8,587
Hong Kong
Hello. I know this may be a silly question. I am wondering if anyone has tried this method for the 6,1 Mac Pro models. I wouldn't mind getting one of those now that the prices are starting to come down.

All 6,1 native GPU won’t work. Need at least Polaris to provide HWAccel.

However, 6,1 + eGPU may work. Still waiting for someone to confirm it.
 
  • Like
Reactions: Warriors Photo

h9826790

macrumors P6
Original poster
Apr 3, 2014
16,656
8,587
Hong Kong
2. Do we still need to populate the below in 'Automatic' mode?

Code:
<key>ROM</key>
<data>your cMP5.1 ROM</data>
<key>SystemProductName</key>
<string>iMacPro1,1</string>
<key>SystemSerialNumber</key>
<string>your cMP5.1 SSN</string>
<key>SystemUUID</key>
<string>your cMP5.1 UUID</string>

Thanks

Yes, that’s particularly for auto mode.

Anyway, if you visit my link above, a sample auto mode config plist file is attached.

That guide was write sometime ago, assume you generate your own serial number and UUID. But now, we believe that you can safely use your own 5,1 serial number and UUID.
 
  • Like
Reactions: w1z

w1z

macrumors 6502a
Aug 20, 2013
692
481
Yes, that’s particularly for auto mode.

Anyway, if you visit my link above, a sample auto mode config plist file is attached.

That guide was write sometime ago, assume you generate your own serial number and UUID. But now, we believe that you can safely use your own 5,1 serial number and UUID.

Just wanted to be sure. Thanks!

Cheers
 

startergo

macrumors 603
Sep 20, 2018
5,021
2,283
But now, we believe that you can safely use your own 5,1 serial number and UUID
This way all licensed programs continue to be licensed and imessage+FaceTime work too. Apparently the big bro"s automatic servers don't trigger any flag yet. Hopefully there is no manual intervention.
 
  • Like
Reactions: Chung123

edgerider

macrumors 6502
Apr 30, 2018
281
149
hi all,
any chance this become a patch that do everything in one step for dumbass morron like me. I would really like to see what kind of acceleration we got in lighroom and in première , because my RX580 is seen but not fully supported.
in lightroom it doesn’t lever the gpu at all, and in première or media encoder h264 export neither...
Also would like to see if multi-gpu scale up good or no.
so far the only software I was really able to leverage the 3 x rx580 setup is blender.

also, so far with high sierra and mojave i only manage to have 3 gpu running, with 4 gpu the mac wont boot.

I guess catalina handle at least 4 gpu, and software may be able to handle it better, so we could get a couple of year more out of our 5,1....

also I am deeply convinced that if we got enough 5,1 running with catalina and hardware encode/decode, apple will like for nvme, do something to « let us do it the easy way » I am now totally convinced that the monitor the logs of how many machine of what type do what, and they know that the performance gap is now so important with the new machine, that we just need a couple of year out of our macpro, because otherwise we go the hackintosh way. I really wish @dosdude1 could integrate this hardware acceleration in his patch....???
 

h9826790

macrumors P6
Original poster
Apr 3, 2014
16,656
8,587
Hong Kong
This way all licensed programs continue to be licensed and imessage+FaceTime work too. Apparently the big bro"s automatic servers don't trigger any flag yet. Hopefully there is no manual intervention.

Yeah, I am also using my own serial number and UUID since for more than a month now. Everything still working as expected.
 

cdf

macrumors 68020
Jul 27, 2012
2,256
2,583
Ever since it was discovered that configurations with SMBIOS spoofing could lead to firmware corruption, I have refrained from doing too much experimenting. However, this recent advance in hardware acceleration and DRM, is almost too good to pass :p

For those that have experimented, I have a few technical questions:

1) Is an iMac Pro MLB (instead of a Mac Pro MLB) necessary?

2) Proper FaceTime and iMessage apparently depends on identifiers that include the MLB. However, now that we are changing the MLB and retaining some of the other identifiers, are we putting our machines at risk of being blacklisted?

3) Is updating all of the DataHub, NVRAM, and SMBIOS sections necessary, or is just one section (likely SMBIOS) sufficient?

4) Automatic mode fills in several other details according to the model selected. On the other hand, manual mode preserves most unspecified parameters from the Mac Pro. What are the specific parameters that need to be changed?

5) Has the BootROM of a machine with this configuration been looked at to ensure no ill effects? If there are undesired blobs, is the risk level of this configuration on par with having Windows in EFI mode?

This solution is awesome. It shows for the first time that full hardware acceleration and DRM is possible on the Mac Pro 5,1. However, the ideal solution would be to get WEG to do most of the work and minimize OC system-wide modifications as much as possible.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.