Interesting NVRAM Option To Disable TBT?
We all know that
macs some macs with discrete NVIDIA GPUs don't boot with a Thunderbolt 3 enclosure with a NVIDIA eGPU inside it. We have always used @goalque's tbt-options workaround to do this, but the problem with that was that subsequent boots would clear this value, and cause the problem again. This, however, sticks forever:
sudo nvram tbt-options="BA=="
In my testing, the EFI has yet to clear this variable and I have booted into both macOS and Windows 4-5 times with eGPU plugged in. But eGPU does not seem to function in this case (fans ramp up, but nothing else happens). Don't really understand what's going on here, but such values could be key to discovering some more interesting things.
Is that a base64 encoded string, 04? A login hook kept the tbt-options value up-to-date: https://support.apple.com/en-us/HT2420 However, I decided to remove this functionality from the EFI app. Shutting down wasn't reliable and I guess this worked at 60% success rate.
EDIT: Just noticed that eGPU doesn't function. Maybe because your MBP firmware (pre Late-2014) does not support hot plugging?
Be careful in modifying this setting, the value may get stuck so that the Mac doesn't POST at all, happened once for me (different setting, though).
@goalque Just read your warning right now - fortunately nothing went south. I tested few values - apparently as long as you provide some Base64 value (AA, AQ, etc), EFI won't detect eGPU (fans ramp up - nothing else), but this in turn likely disables device enumeration in IOThunderboltFamily.kext, which in turn disables GPU detection. You might be correct in saying that hot-plug may not be supported in the firmware. And tbt-options has some weird values for when the EFI does detect the GPU (and fails POST). Some values are %801>, %00 & @==. Such a weird variable.
Value 4 seems to have something to do with firmware updating:
Some hackintosh sites show %04
%04 is not retained. It changes to %00 on next boot. BA is retained. Interesting results.
nvram value has 4 possible data types: CFBoolean, CFNumber, CFString or CFData. In EFI it is always in byte presentation, fixed length.
Setting values from terminal may not work properly if the nvram parser cannot determine the correct data type from the user input.
Just a quick intrusion into something that is technically well over my head to say not all nVidia dGPU macs can't boot with a TB3 nVidia eGPU attached :). The 2012 Retina MBP 15" with 650m boots fine with a Thunderbolt 3 nVidia 1070 attached (in fact the only way to get the eGPU to work is to attach before boot).
Now, I'm very interested in trying to get goalque's new Hybrid modification to work on this mac if possible.
@ozzy good to know. In my case, the only way to get an NVIDIA eGPU working is to delay plugging in (or using NVRAM mods). Corrected original post.