[Sticky] [APP] NVIDIA eGPU support for High Sierra (NVIDIAEGPUSupport)  

Page 1 / 19 Next
 

yifanlu
Eminent Member
Joined:4 weeks  ago
Posts: 41
October 24, 2017 4:13 am  

10.13.1 installer (update &, just checked on my MBA) and 10.13.0 installer (original &)

Source:  NVIDIAEGPUSupport (source fork).  Note: yifanlu’s installer package is no longer hosted on GitHub

 


Download >>   NVIDIAEGPUSupport v1   (ceased Oct-31)

  

This is only needed for High Sierra and should enable NVIDIA Web drivers to work with your eGPU box. No plist modifications needed. Installation is simple:

  1. Remove/undo any Info.plist modifications (they aren’t needed anymore and might conflict).
  2. Install NVIDIA Web drivers if you haven’t done so. This must be done with SIP enabled!
  3. Disable SIP (or just enable unsigned drivers with csrutil enable --without kext)
  4. Install the package linked above!

 


 Successes

 

 


Troubleshooting

 

Some people report that if it doesn’t work initially (both external + internal display black or internal display showing artifacts), you should try:

  1. Logging in without the eGPU attached
  2. Plugging in the eGPU (check in system profiler that it is detected)
  3. Logging out and logging in again

 

Success after the above:

 

If it still does not work, please report: symptoms, model of your mac, model of your egpu box, model of your graphics card, model of your display(s), and the kind of cable you used. I’ll try to keep a list here to triage the problem.

 

External display connected to eGPU does not show an image (black screen) but OSX thinks a display is active and connected. Might see cursor on the black external screen. Might show “fuzzy” desktop image on the internal display.

Edited: 3 weeks  ago

NVIDIAEGPUSupport - Nvidia eGPU support for macOS High Sierra
Clover-DSDT+apple_set_os.efi - Macbook Pro Windows error 12 & iGPU fixed Bootloader
---
late-2016 13" MacBook Pro Touchbar + GTX1060@16Gbps-TB3 (HP OMEN Accelerator) + macOS HS & Win10


fiddy, fishblimp, rmus and 17 people liked
ReplyQuote
andrewtch
Active Member
Joined:4 weeks  ago
Posts: 6
October 24, 2017 10:25 am  

Hi, I registered on this forum just to say that you are AWESOME!

Is NVIDIA already detected as CUDA device with your fix?

Is it hot-pluggable? )

Edited: 4 weeks  ago

Eydawn liked
ReplyQuote
goalque
Honorable Member Admin
Joined:12 months  ago
Posts: 724
October 24, 2017 11:06 am  

@yifanlu: Good job. Is the attached-gpu-control-path now visible under ioreg display properties and “AGPM::start” & “gpuDict by GPU display” lines appear in the system log?

If you can, try to run Apple’s new AGDCDiagnose that prints all active GPUs, accelerators and FBs.

Edited: 4 weeks  ago

automate-eGPU.shapple_set_os.efi
--
late-2016 13" Macbook Pro nTB + Vega64@32Gbps-TB3 (Netstor HL23T) + macOS & Win10
late-2016 13" Macbook Pro nTB + GTX980/RX580@32Gbps-TB3 (Netstor HL23T) + macOS & Win10


theitsage liked
ReplyQuote
yifanlu
Eminent Member
Joined:4 weeks  ago
Posts: 41
October 24, 2017 2:43 pm  

(EDIT: that dump was incorrect as I forgot I turned SIP back on so my driver didn’t get loaded)

I’ve also seen that the tree in IORegistryExplorer (as well as the key-values) match what’s constructed in Sierra (with the exception that my NVDAPatched classes are used). It also says NVIDIA GeForce 1060 6GB in system profiler. I think the drivers are loaded correctly, it’s just a matter of getting them to work correctly.

Edited: 4 weeks  ago

NVIDIAEGPUSupport - Nvidia eGPU support for macOS High Sierra
Clover-DSDT+apple_set_os.efi - Macbook Pro Windows error 12 & iGPU fixed Bootloader
---
late-2016 13" MacBook Pro Touchbar + GTX1060@16Gbps-TB3 (HP OMEN Accelerator) + macOS HS & Win10


ReplyQuote
goalque
Honorable Member Admin
Joined:12 months  ago
Posts: 724
October 24, 2017 5:34 pm  

Not hot-pluggable. The way it used to work with automate-eGPU.sh and Rastafabi’s eGPU enabler.



automate-eGPU.shapple_set_os.efi
--
late-2016 13" Macbook Pro nTB + Vega64@32Gbps-TB3 (Netstor HL23T) + macOS & Win10
late-2016 13" Macbook Pro nTB + GTX980/RX580@32Gbps-TB3 (Netstor HL23T) + macOS & Win10


nando4, theitsage and lexine liked
ReplyQuote
yifanlu
Eminent Member
Joined:4 weeks  ago
Posts: 41
October 24, 2017 5:43 pm  
Posted by: andrewtch

Hi, I registered on this forum just to say that you are AWESOME!

Is NVIDIA already detected as CUDA device with your fix?

Haven’t tried, but I’m sure that’s not an issue provided everything else works 😉

Posted by: andrewtch

Is it hot-pluggable? )

 No but even the Sonnet box + AMD card doesn’t support hot plugging. You just get a notification telling you to log out or if there’s multiple users connected, to restart. Getting that message to show up won’t be too difficult, but that’s not my focus right now.

 

NVIDIAEGPUSupport - Nvidia eGPU support for macOS High Sierra
Clover-DSDT+apple_set_os.efi - Macbook Pro Windows error 12 & iGPU fixed Bootloader
---
late-2016 13" MacBook Pro Touchbar + GTX1060@16Gbps-TB3 (HP OMEN Accelerator) + macOS HS & Win10


ReplyQuote
lexine
Eminent Member
Joined:2 months  ago
Posts: 21
October 24, 2017 5:48 pm  

Am I missing something ? Is this really a thing : -) is it working already ? 🙂

2017 13" MacBook Pro TouchBar + GTX1070@32Gbps-TB3 (Aorus Gaming Box) + Win10


ReplyQuote
goalque
Honorable Member Admin
Joined:12 months  ago
Posts: 724
October 24, 2017 5:49 pm  

CUDA works as well. Here’s the AGDCDiagnose output (GTRACEDATASTREAM data excluded):

goalques-MBP:~ goalque$ sudo /System/Library/Extensions//AppleGraphicsControl.kext/Contents/MacOS/AGDCDiagnose -a

AGDCDiagnose Version: 3.16.19
## ScanPort – Start ##

[1] IOService:/IOResources/AppleGPUWrangler
Vendor: Apple [0000106b]: AppleGPUWrangler [8 10000] (0)

[2] IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/IGPU@2/AppleIntelFramebufferController/IntelFBClientControl
Vendor: AppleIntelFramebufferController [0000106b]: IntegratedGPU [1 10000] (0)
FBs: 3
Ports: 0xe mst:0xc ddc:0xc aux:0xe
Streams: dp:0 dvi:0 mst:2 max:3
FB: 00 : Group: 0 Address[ 1.0], Flags:[online fixed ], Stream:N/A
FB: 01 : Group: 0 Address[ 0.0], Flags:[offline ], Stream:N/A
FB: 02 : Group: 0 Address[ 0.0], Flags:[offline ], Stream:N/A
Port: 01 : [DP, 1.1, 4 x HBR] set [4 x 3_24 : status: 3333] Sink OUI:0-16-250 eDeaa [101-68-19-101-97-97] HW Version: 16 FW Version:2.11
Port: 02 : empty
Port: 03 : empty
## Register Dump Port 1 – Start ##
000000: 0x11 0x0a 0x84 0x41 0x00 0x00 0x01 0x80 0x02 0x00 0x00 0x00 0x0f 0x0b 0x00 0x00
Reg: 000000: 11 : DPCD_REV: 1.1
Reg: 000001: 0a : MAX_LINK_RATE: HBR
Reg: 000002: 84 : MAX_LANE_COUNT: 4, TPS3_SUPPORTED: 0, ENHANCED_FRAME_CAP: 1
Reg: 000003: 41 : MAX_DOWNSPREAD: 0.5% down, NO_AUX_HANDSHAKE_LINK_TRAINING: 1
Reg: 000004: 00 : NORP: 0
Reg: 000005: 00 : DOWNSTREAMPORT_PRESENT: DWN_STRM_PORT_PRESENT: 0, DWN_STRM_PORT_TYPE: [0] DisplayPort, FORMAT_CONVERSION: 0, DETAILED_CAP_INFO_AVAILABLE: 0
Reg: 000006: 01 : MAIN_LINK_CHANNEL_CODING: ANSI 8B/10B
Reg: 000007: 80 : DOWN_STREAM_PORT_COUNT: DWN_STRM_PORT_COUNT: 0, MSA_TIMING_PAR_IGNORED: 0, OUI: 1
Reg: 000008: 02 : RECEIVE_PORT0_CAP_0: LOCAL_EDID_PRESENT: 1, ASSOCIATED_TO_PRECEDING_PORT: 0
Reg: 000009: 00 : RECEIVE_PORT0_CAP_1: BUFFER_SIZE: 32
Reg: 00000a: 00 : RECEIVE_PORT1_CAP_0:
Reg: 00000b: 00 : RECEIVE_PORT1_CAP_1:
Reg: 00000c: 0f : I2C Speed: 1Kbps 5Kbps 10Kbps 100Kbps
Reg: 00000d: 0b : eDP_CONFIGURATION_CAP: ALTERNATE_SCRAMBLER_RESET_CAPABLE: 1, FRAMING_CHANGE_CAPABLE: 1
Reg: 00000e: 00 : TRAINING_AUX_RD_INTERVAL: 100 us, EXTENDED_RECEIVER_CAPABILITY_FIELD_PRESENT: NO
Reg: 00000f: 00 : ADAPTER_CAP: FORCE_LOAD_SENSE_CAP: 0, ALTERNATE_I2C_PATTERN_CAP: 0
000020: 0x00 0x00 0x00
Reg: 000020: 00 : FAUX_CAP: FAUX_CAP: 0
Reg: 000021: 00 : MSTM_CAP: MST_CAP: 0
Reg: 000022: 00 : NUMBER_OF_AUDIO_ENDPOINTS: 0
000100: 0x0c 0x84
Reg: 000100: 0c : LINK_BW_SET: 3_24
Reg: 000101: 84 : LANE_COUNT_SET: LANE_COUNT_SET 4, ENHANCED_FRAME_EN: 1
000107: 0x00
Reg: 000107: 00 : DOWNSPREAD_CTRL: SPREAD_AMP: 0, MSA_TIMING_PAR_IGNORE_EN: 0
00010a: 0x01
Reg: 00010a: 01 : eDP_CONFIGURATION_CAP_SET: ALTERNATE_SCRAMBLER_RESET_CAPABLE: 1, FRAMING_CHANGE_CAPABLE: 0
000111: 0x00
Reg: 000111: 00 : MSTM_CTRL: UPSTREAM_IS_SRC:0 UP_REQ_EN:0 MST_EN:0
000200: 0x01 0x00 0x77 0x77 0x81 0x01 0x00 0x00
Reg: 000200: 01 : SINK_COUNT: SINK_COUNT 1, CP_READY: 0
Reg: 000202: 77 : LANE0: CR_DONE: 1, CHANNEL_EQ_DONE: 1, SYMBOL_LOCKED: 1
Reg: 000202: 77 : LANE1: CR_DONE: 1, CHANNEL_EQ_DONE: 1, SYMBOL_LOCKED: 1
Reg: 000203: 77 : LANE2: CR_DONE: 1, CHANNEL_EQ_DONE: 1, SYMBOL_LOCKED: 1
Reg: 000203: 77 : LANE3: CR_DONE: 1, CHANNEL_EQ_DONE: 1, SYMBOL_LOCKED: 1
Reg: 000205: 01 : SINK_STATUS: RECEIVE_PORT_0_STATUS: 1, RECEIVE_PORT_1_STATUS: 0
Reg: 000206: 00 : LANE0: VOLTAGE_SWING: 0, PRE-EMPHASIS: 0
Reg: 000206: 00 : LANE1: VOLTAGE_SWING: 0, PRE-EMPHASIS: 0
Reg: 000207: 00 : LANE2: VOLTAGE_SWING: 0, PRE-EMPHASIS: 0
Reg: 000207: 00 : LANE3: VOLTAGE_SWING: 0, PRE-EMPHASIS: 0
068028: 0x00
Reg: 068028: 00 : HDCP_CAPABLE: 0, REPEATER: 0
06921d: 0x00 0x00 0x00
Reg: 06921d: 00 : HDCP_CAPABLE: 0, REPEATER: 0
Reg: 06921f: 00 : VERSION: 0
## Register Dump Port 1 – End ##

[3] IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/IGPU@2/AppleIntelFramebufferController/IntelFBClientControl/AppleGraphicsDevicePolicy/AGDPClientControl
Vendor: AppleIntelFramebufferController [0000106b]: IntegratedGPU [1 10000] (0)
FBs: 3
Ports: 0xe mst:0xc ddc:0xc aux:0xe
Streams: dp:0 dvi:0 mst:2 max:3
FB: 00 : Group: 0 Address[ 1.0], Flags:[online fixed ], Stream:N/A
FB: 01 : Group: 0 Address[ 0.0], Flags:[offline ], Stream:N/A
FB: 02 : Group: 0 Address[ 0.0], Flags:[offline ], Stream:N/A
Port: 01 : [DP, 1.1, 4 x HBR] set [4 x 3_24 : status: 7777] Sink OUI:0-16-250 eDeaa [101-68-19-101-97-97] HW Version: 16 FW Version:2.11
Port: 02 : empty
Port: 03 : empty
## Register Dump Port 1 – Start ##
000000: 0x11 0x0a 0x84 0x41 0x00 0x00 0x01 0x80 0x02 0x00 0x00 0x00 0x0f 0x0b 0x00 0x00
Reg: 000000: 11 : DPCD_REV: 1.1
Reg: 000001: 0a : MAX_LINK_RATE: HBR
Reg: 000002: 84 : MAX_LANE_COUNT: 4, TPS3_SUPPORTED: 0, ENHANCED_FRAME_CAP: 1
Reg: 000003: 41 : MAX_DOWNSPREAD: 0.5% down, NO_AUX_HANDSHAKE_LINK_TRAINING: 1
Reg: 000004: 00 : NORP: 0
Reg: 000005: 00 : DOWNSTREAMPORT_PRESENT: DWN_STRM_PORT_PRESENT: 0, DWN_STRM_PORT_TYPE: [0] DisplayPort, FORMAT_CONVERSION: 0, DETAILED_CAP_INFO_AVAILABLE: 0
Reg: 000006: 01 : MAIN_LINK_CHANNEL_CODING: ANSI 8B/10B
Reg: 000007: 80 : DOWN_STREAM_PORT_COUNT: DWN_STRM_PORT_COUNT: 0, MSA_TIMING_PAR_IGNORED: 0, OUI: 1
Reg: 000008: 02 : RECEIVE_PORT0_CAP_0: LOCAL_EDID_PRESENT: 1, ASSOCIATED_TO_PRECEDING_PORT: 0
Reg: 000009: 00 : RECEIVE_PORT0_CAP_1: BUFFER_SIZE: 32
Reg: 00000a: 00 : RECEIVE_PORT1_CAP_0:
Reg: 00000b: 00 : RECEIVE_PORT1_CAP_1:
Reg: 00000c: 0f : I2C Speed: 1Kbps 5Kbps 10Kbps 100Kbps
Reg: 00000d: 0b : eDP_CONFIGURATION_CAP: ALTERNATE_SCRAMBLER_RESET_CAPABLE: 1, FRAMING_CHANGE_CAPABLE: 1
Reg: 00000e: 00 : TRAINING_AUX_RD_INTERVAL: 100 us, EXTENDED_RECEIVER_CAPABILITY_FIELD_PRESENT: NO
Reg: 00000f: 00 : ADAPTER_CAP: FORCE_LOAD_SENSE_CAP: 0, ALTERNATE_I2C_PATTERN_CAP: 0
000020: 0x00 0x00 0x00
Reg: 000020: 00 : FAUX_CAP: FAUX_CAP: 0
Reg: 000021: 00 : MSTM_CAP: MST_CAP: 0
Reg: 000022: 00 : NUMBER_OF_AUDIO_ENDPOINTS: 0
000100: 0x0c 0x84
Reg: 000100: 0c : LINK_BW_SET: 3_24
Reg: 000101: 84 : LANE_COUNT_SET: LANE_COUNT_SET 4, ENHANCED_FRAME_EN: 1
000107: 0x00
Reg: 000107: 00 : DOWNSPREAD_CTRL: SPREAD_AMP: 0, MSA_TIMING_PAR_IGNORE_EN: 0
00010a: 0x01
Reg: 00010a: 01 : eDP_CONFIGURATION_CAP_SET: ALTERNATE_SCRAMBLER_RESET_CAPABLE: 1, FRAMING_CHANGE_CAPABLE: 0
000111: 0x00
Reg: 000111: 00 : MSTM_CTRL: UPSTREAM_IS_SRC:0 UP_REQ_EN:0 MST_EN:0
000200: 0x01 0x00 0x77 0x77 0x81 0x01 0x00 0x00
Reg: 000200: 01 : SINK_COUNT: SINK_COUNT 1, CP_READY: 0
Reg: 000202: 77 : LANE0: CR_DONE: 1, CHANNEL_EQ_DONE: 1, SYMBOL_LOCKED: 1
Reg: 000202: 77 : LANE1: CR_DONE: 1, CHANNEL_EQ_DONE: 1, SYMBOL_LOCKED: 1
Reg: 000203: 77 : LANE2: CR_DONE: 1, CHANNEL_EQ_DONE: 1, SYMBOL_LOCKED: 1
Reg: 000203: 77 : LANE3: CR_DONE: 1, CHANNEL_EQ_DONE: 1, SYMBOL_LOCKED: 1
Reg: 000205: 01 : SINK_STATUS: RECEIVE_PORT_0_STATUS: 1, RECEIVE_PORT_1_STATUS: 0
Reg: 000206: 00 : LANE0: VOLTAGE_SWING: 0, PRE-EMPHASIS: 0
Reg: 000206: 00 : LANE1: VOLTAGE_SWING: 0, PRE-EMPHASIS: 0
Reg: 000207: 00 : LANE2: VOLTAGE_SWING: 0, PRE-EMPHASIS: 0
Reg: 000207: 00 : LANE3: VOLTAGE_SWING: 0, PRE-EMPHASIS: 0
068028: 0x00
Reg: 068028: 00 : HDCP_CAPABLE: 0, REPEATER: 0
06921d: 0x00 0x00 0x00
Reg: 06921d: 00 : HDCP_CAPABLE: 0, REPEATER: 0
Reg: 06921f: 00 : VERSION: 0
## Register Dump Port 1 – End ##

[4] IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/RP05@1C,4/IOPP/UPSB@0/IOPP/DSB1@1/IOPP/UPS0@0/IOPP/pci-bridge@1/IOPP/display@0/NVDC/AppleGraphicsDevicePolicy/AGDPClientControl
Vendor: NVIDIA [000010de]: DiscreteGPU [2 10002] (0)
WARNING: getDeviceCaps failed

[5] IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/RP05@1C,4/IOPP/UPSB@0/IOPP/DSB1@1/IOPP/UPS0@0/IOPP/pci-bridge@1/IOPP/display@0/NVDC
Vendor: NVIDIA [000010de]: DiscreteGPU [2 10002] (0)
WARNING: getDeviceCaps failed
## ScanPort – End ##

## Display Metrics – Start ##
Display Metric Tool Version: 1.2
Display Metric Plugin Version: 1.2 AGDC Version: 3.16.19
Dumping Metric Logs: currentlog(6) logsize(32768) numberlogs(819)
Total lines: 7
7768604> kAGDCPluginMetricsDisplayInfo(4108) Port: 1 dpcd_rev:0x11 max_link_rate:0xa max_lane_count:0x84 max_downspread:0x41 downstreamport_present:0 mstm_cap:0 number_of_audio_endpoints:0
7768846> kAGDCPluginMetricsMonitorInfo(4109) Port: 1 mfgName:B]M mfgID:0xbad productID:0xf00d
7769710> kAGDCPluginMetricsDisplayInfo(4108) Port: 1 dpcd_rev:0x11 max_link_rate:0xa max_lane_count:0x84 max_downspread:0x41 downstreamport_present:0 mstm_cap:0 number_of_audio_endpoints:0
7769946> kAGDCPluginMetricsMonitorInfo(4109) Port: 1 mfgName:B]M mfgID:0xbad productID:0xf00d
8927709> kAGDCPluginMetricsDisplayInfo(4108) Port:14 dpcd_rev:0x12 max_link_rate:0x14 max_lane_count:0xc4 max_downspread:0x1 downstreamport_present:0 mstm_cap:0 number_of_audio_endpoints:0
8928189> kAGDCPluginMetricsMonitorInfo(4109) Port:14 mfgName:SAM mfgID:0x4c2d productID:0xb80

## Display Metrics – End ##

 

## Mux state – Start ##

## Mux state – End ##

## PD – Start ##
running 358 sec (started Tue Oct 24 20:10:55 2017, now Tue Oct 24 20:16:53 2017)
boardID: Mac-473D31EABEB93F9B
featureMask: 0x100000
platformFlags: 0
extraSupportFlags: 0
wranglerFlags: 0
launcher[0]: acpiNode ‘IGPU’, state 1, managerState 1, vendor class/id/version 0x5 0x106b 0x10000
launcher[1]: acpiNode ‘RP05’, state 1, managerState 1, vendor class/id/version 0x5 0x106b 0x10000
gpu[0]: index=0 state=0x5 (Published) events=() dispPolicyState=0x1 (Managed) dispPolicyLaunchIndex=0
gpu 0x715f flags 0xb0000000 (published,quiet,pubSched)
gpu 0x715f pci 0x1000001fe IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/IGPU@2
gpu 0x715f gpuc 0x000000000 (null)
gpu 0x715f agdp 0x100000446 IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/IGPU@2/AppleIntelFramebufferController/IntelFBClientControl/AppleGraphicsDevicePolicy/AGDPClientControl
gpu 0x715f accel 0x1000003f4 IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/IGPU@2/IntelAccelerator
gpu 0x715f fb0:-1 0x1000003f6 IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/IGPU@2/AppleIntelFramebuffer@0
gpu 0x715f fb1:-1 0x1000003f7 IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/IGPU@2/AppleIntelFramebuffer@1
gpu 0x715f fb2:-1 0x1000003f8 IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/IGPU@2/AppleIntelFramebuffer@2
gpu[1]: index=1 state=0x5 (Published) events=() dispPolicyState=0x1 (Managed) dispPolicyLaunchIndex=1
gpu 0xfbb9 flags 0xb0000002 (published,removable,quiet,pubSched)
gpu 0xfbb9 pci 0x1000002b5 IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/RP05@1C,4/IOPP/UPSB@0/IOPP/DSB1@1/IOPP/UPS0@0/IOPP/pci-bridge@1/IOPP/display@0
gpu 0xfbb9 gpuc 0x000000000 (null)
gpu 0xfbb9 agdp 0x1000004f2 IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/RP05@1C,4/IOPP/UPSB@0/IOPP/DSB1@1/IOPP/UPS0@0/IOPP/pci-bridge@1/IOPP/display@0/NVDC/AppleGraphicsDevicePolicy/AGDPClientControl
gpu 0xfbb9 accel 0x1000003e7 IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/RP05@1C,4/IOPP/UPSB@0/IOPP/DSB1@1/IOPP/UPS0@0/IOPP/pci-bridge@1/IOPP/display@0/nvAccelerator
gpu 0xfbb9 fb0:0 0x1000003fd IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/RP05@1C,4/IOPP/UPSB@0/IOPP/DSB1@1/IOPP/UPS0@0/IOPP/pci-bridge@1/IOPP/display@0/NVDA,Display-A@0/NVDAPatched
gpu 0xfbb9 fb1:1 0x100000411 IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/RP05@1C,4/IOPP/UPSB@0/IOPP/DSB1@1/IOPP/UPS0@0/IOPP/pci-bridge@1/IOPP/display@0/NVDA,Display-B@1/NVDAPatched
gpu 0xfbb9 fb2:2 0x100000417 IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/RP05@1C,4/IOPP/UPSB@0/IOPP/DSB1@1/IOPP/UPS0@0/IOPP/pci-bridge@1/IOPP/display@0/NVDA,Display-C@2/NVDAPatched
gpu 0xfbb9 fb3:3 0x10000041c IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/RP05@1C,4/IOPP/UPSB@0/IOPP/DSB1@1/IOPP/UPS0@0/IOPP/pci-bridge@1/IOPP/display@0/NVDA,Display-D@3/NVDAPatched
gpu 0xfbb9 fb4:4 0x100000421 IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/RP05@1C,4/IOPP/UPSB@0/IOPP/DSB1@1/IOPP/UPS0@0/IOPP/pci-bridge@1/IOPP/display@0/NVDA,Display-E@4/NVDAPatched
gpu 0xfbb9 fb5:5 0x100000426 IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/RP05@1C,4/IOPP/UPSB@0/IOPP/DSB1@1/IOPP/UPS0@0/IOPP/pci-bridge@1/IOPP/display@0/NVDA,Display-F@5/NVDAPatched

automate-eGPU.shapple_set_os.efi
--
late-2016 13" Macbook Pro nTB + Vega64@32Gbps-TB3 (Netstor HL23T) + macOS & Win10
late-2016 13" Macbook Pro nTB + GTX980/RX580@32Gbps-TB3 (Netstor HL23T) + macOS & Win10


ReplyQuote
goalque
Honorable Member Admin
Joined:12 months  ago
Posts: 724
October 24, 2017 5:52 pm  
Posted by: lexine

Am I missing something ? Is this really a thing : -) is it working already ? 🙂

Yes, my 2016 13″ MBP (non-touch) and HL23T is nearly plug-and-play 🙂

automate-eGPU.shapple_set_os.efi
--
late-2016 13" Macbook Pro nTB + Vega64@32Gbps-TB3 (Netstor HL23T) + macOS & Win10
late-2016 13" Macbook Pro nTB + GTX980/RX580@32Gbps-TB3 (Netstor HL23T) + macOS & Win10


ReplyQuote
andrewtch
Active Member
Joined:4 weeks  ago
Posts: 6
October 24, 2017 5:55 pm  

Marvellous, I can upgrade now. CUDA was the only thing I actually needed, and all this with some lines of code.

Btw, @goalque, what is needed to implement hotplug without crashing on this solution?


ReplyQuote
yifanlu
Eminent Member
Joined:4 weeks  ago
Posts: 41
October 24, 2017 5:56 pm  

Wait really? My 2016 13″ MBP doesn’t work. But I didn’t run automate-eGPU.sh or Rastafabi’s eGPU enabler. Are you telling me that it will work after running that? No changes needed?

NVIDIAEGPUSupport - Nvidia eGPU support for macOS High Sierra
Clover-DSDT+apple_set_os.efi - Macbook Pro Windows error 12 & iGPU fixed Bootloader
---
late-2016 13" MacBook Pro Touchbar + GTX1060@16Gbps-TB3 (HP OMEN Accelerator) + macOS HS & Win10


ReplyQuote
lexine
Eminent Member
Joined:2 months  ago
Posts: 21
October 24, 2017 5:58 pm  

Well as per yifanlu first post I thought it was not possible to get pass via login screen … but as per your screens it looks like it was fixed ? 

2017 13" MacBook Pro TouchBar + GTX1070@32Gbps-TB3 (Aorus Gaming Box) + Win10


ReplyQuote
Rycco
Estimable Member
Joined:10 months  ago
Posts: 170
October 24, 2017 6:02 pm  

Is this already a thing? I don’t need eGPU acceleration, I just need the monitor to display the image thru the eGPU. Is it already possible?

mid-2017 15" Macbook Pro RP555 + GTX1080i@32Gbps-TB3 (Mantiz Venus) + macOS & Win10


ReplyQuote
goalque
Honorable Member Admin
Joined:12 months  ago
Posts: 724
October 24, 2017 6:12 pm  
Posted by: yifanlu

Wait really? My 2016 13″ MBP doesn’t work. But I didn’t run automate-eGPU.sh or Rastafabi’s eGPU enabler. Are you telling me that it will work after running that? No changes needed?

I didn’t do any extra steps. Just the NVIDIAEGPUSupport.kext in /Library/Extensions and rebuilt cache (a snippet from automate-eGPU.sh). What’s your eGPU hardware?

automate-eGPU.shapple_set_os.efi
--
late-2016 13" Macbook Pro nTB + Vega64@32Gbps-TB3 (Netstor HL23T) + macOS & Win10
late-2016 13" Macbook Pro nTB + GTX980/RX580@32Gbps-TB3 (Netstor HL23T) + macOS & Win10


ReplyQuote
Rastafabi
Trusted Member Moderator
Joined:9 months  ago
Posts: 92
October 24, 2017 6:18 pm  
Posted by: yifanlu

Wait really? My 2016 13″ MBP doesn’t work. But I didn’t run automate-eGPU.sh or Rastafabi’s eGPU enabler. Are you telling me that it will work after running that? No changes needed?

It used to work this way, before macOS 10.13 High Sierra was released. 😉

Creator of the update-redundant macOS 10.12 eGPU enabler package for NVIDIA

AKiTiO Thunder 2 PCIe Expansion Box
NVIDIA GTX 750Ti
MacBook Pro 9.2 ••• until being stolen.
Thanks to the community for helping getting me going again.


theitsage liked
ReplyQuote
Excubitoro
Eminent Member
Joined:11 months  ago
Posts: 44
October 24, 2017 6:24 pm  

So to get this straight, you only need to do yifanlu’s step and this? “rebuilt cache (a snippet from automate-eGPU.sh)”

 

What’s a snippet from automate-eGPU, is it a part of the script? I have a 1070 gaming box, if I do yifanlu’s step from github, do I also need some part of automate-eGPU to get this to work?


ReplyQuote
lexine
Eminent Member
Joined:2 months  ago
Posts: 21
October 24, 2017 6:26 pm  

I guess it should be the RebuildCaches function 😉 … but I am waiting for confirmation as well … I lost patience and downgrade to Sierra over weekend 😀

2017 13" MacBook Pro TouchBar + GTX1070@32Gbps-TB3 (Aorus Gaming Box) + Win10


ReplyQuote
yifanlu
Eminent Member
Joined:4 weeks  ago
Posts: 41
October 24, 2017 6:27 pm  
Posted by: goalque
Posted by: yifanlu

Wait really? My 2016 13″ MBP doesn’t work. But I didn’t run automate-eGPU.sh or Rastafabi’s eGPU enabler. Are you telling me that it will work after running that? No changes needed?

I didn’t do any extra steps. Just the NVIDIAEGPUSupport.kext in /Library/Extensions and rebuilt cache (a snippet from automate-eGPU.sh). What’s your eGPU hardware?

I have a 2016 MBP with touchbar running 1060 6GB on an HP OMEN Accelerator. It might also be because I’ve mucked around with the OS so much in testing and debugging the problem. I’ll do a clean install when I get home and report back.

 

I’ve updated the code to support Tesla devices as well. Also I’ve posted a prebuild kext in the releases section.

NVIDIAEGPUSupport - Nvidia eGPU support for macOS High Sierra
Clover-DSDT+apple_set_os.efi - Macbook Pro Windows error 12 & iGPU fixed Bootloader
---
late-2016 13" MacBook Pro Touchbar + GTX1060@16Gbps-TB3 (HP OMEN Accelerator) + macOS HS & Win10


imcalledandy, lexine, theitsage and 1 people liked
ReplyQuote
punk.kaos
Active Member
Joined:8 months  ago
Posts: 8
October 24, 2017 6:36 pm  

Just had to pop in and say thanks! Compiled your driver, rebooted, and Boom. It just worked.

My Macbook Air (13-inch, 2017) with my homebrewed dock(Echo ExpressCard PRO to GDC Beast) With a GTX750ti just worked. Right out of the gate!

Edited: 4 weeks  ago

ReplyQuote
theitsage
Noble Member Admin
Joined:12 months  ago
Posts: 1693
October 24, 2017 6:36 pm  

This escalated quick! Any chances NVIDIAEGPUSupport.kext works better with older Nvidia GPUs than 10-series?

Numerous implementation guides


ReplyQuote
goalque
Honorable Member Admin
Joined:12 months  ago
Posts: 724
October 24, 2017 6:39 pm  
Posted by: Excubitoro

So to get this straight, you only need to do yifanlu’s step and this? “rebuilt cache (a snippet from automate-eGPU.sh)”

 

What’s a snippet from automate-eGPU, is it a part of the script? I have a 1070 gaming box, if I do yifanlu’s step from github, do I also need some part of automate-eGPU to get this to work?

I am not absolutely sure if there are other changes… I will confirm with a clean macOS 10.13 installation on the Late 2013 13″ MBP.

function RebuildCaches().

automate-eGPU.shapple_set_os.efi
--
late-2016 13" Macbook Pro nTB + Vega64@32Gbps-TB3 (Netstor HL23T) + macOS & Win10
late-2016 13" Macbook Pro nTB + GTX980/RX580@32Gbps-TB3 (Netstor HL23T) + macOS & Win10


ReplyQuote
lexine
Eminent Member
Joined:2 months  ago
Posts: 21
October 24, 2017 6:43 pm  

Well, I am always for some testing … upgrading to HS now : -)

2017 13" MacBook Pro TouchBar + GTX1070@32Gbps-TB3 (Aorus Gaming Box) + Win10


ReplyQuote
yifanlu
Eminent Member
Joined:4 weeks  ago
Posts: 41
October 24, 2017 6:45 pm  
Posted by: theitsage

This escalated quick! Any chances NVIDIAEGPUSupport.kext works better with older Nvidia GPUs than 10-series?

If you look at the code, it’s pretty simple. I’m just telling IOAccelerator to ignore the fact that we’re a tunneled device to bypass this check added in High Sierra. In theory it would make it the same behavior as in Sierra. The other thing it does is add the IOPCITunnelCompatible flag to its own Info.plist so you are not required to modify any other kext. I don’t think it would make any hardware run better.

NVIDIAEGPUSupport - Nvidia eGPU support for macOS High Sierra
Clover-DSDT+apple_set_os.efi - Macbook Pro Windows error 12 & iGPU fixed Bootloader
---
late-2016 13" MacBook Pro Touchbar + GTX1060@16Gbps-TB3 (HP OMEN Accelerator) + macOS HS & Win10


ReplyQuote
theitsage
Noble Member Admin
Joined:12 months  ago
Posts: 1693
October 24, 2017 7:06 pm  
Posted by: yifanlu

If you look at the code, it’s pretty simple. I’m just telling IOAccelerator to ignore the fact that we’re a tunneled device to bypass this check added in High Sierra. In theory it would make it the same behavior as in Sierra. The other thing it does is add the IOPCITunnelCompatible flag to its own Info.plist so you are not required to modify any other kext. I don’t think it would make any hardware run better.

Thank you for explaining the inner workings of NVIDIAEGPUSupport.kext. You won EPIC 1st post on eGPU.io forum.

Numerous implementation guides


yifanlu liked
ReplyQuote
goalque
Honorable Member Admin
Joined:12 months  ago
Posts: 724
October 24, 2017 7:06 pm  

Any clue why Apple is replacing IOFramebuffer with ATIFramebuffer? For plug-and-play?

/System/Library/Extensions/AMDFramebuffer.kext/Contents/Resources/GpuWrangler.command

As if this was left for us… 😉 no real reason to use PlistBuddy 🙂 It led me to create automate-eGPU.kext for older AMDs.

IOFramebuffer is deprecated:

https://developer.apple.com/documentation/kernel/ioframebuffer?language=objc

Hopefully they continue supporting ‘ndrv’ drivers.

automate-eGPU.shapple_set_os.efi
--
late-2016 13" Macbook Pro nTB + Vega64@32Gbps-TB3 (Netstor HL23T) + macOS & Win10
late-2016 13" Macbook Pro nTB + GTX980/RX580@32Gbps-TB3 (Netstor HL23T) + macOS & Win10


ReplyQuote
gh3go
Active Member
Joined:2 months  ago
Posts: 9
October 24, 2017 7:17 pm  

Dunno but for me it is not working, it always recognise the generic

csrutil is disabled, kext put in place, and cache updated

Any idea?

MBP 2016 touch + Sonnet + 980Ti


ReplyQuote
yifanlu
Eminent Member
Joined:4 weeks  ago
Posts: 41
October 24, 2017 7:18 pm  
Posted by: goalque

Any clue why Apple is replacing IOFramebuffer with ATIFramebuffer? For plug-and-play?

/System/Library/Extensions/AMDFramebuffer.kext/Contents/Resources/GpuWrangler.command

As if this was left for us… 😉 no real reason to use PlistBuddy 🙂 It led me to create automate-eGPU.kext for older AMDs.

IOFramebuffer is deprecated:

https://developer.apple.com/documentation/kernel/ioframebuffer?language=objc

Hopefully they continue supporting ‘ndrv’ drivers.

There is no ATIFramebuffer class. What’s changed is the IOMatchCategory which after hours of searching I still have no firm grasp of what it’s used for. I’ve fully reversed ATIGpuWrangler when I thought that was the main culprit (spoiler: it’s useless) and how it works is that in AMD-land, ATIGpuWrangler is the first match driver and it sets up the other drivers as well as the ports. However in NVIDIA-land, NVDAStartup(Web) does a similar task–but not in the same way which is why that IOFramebuffer::attach function fails. It’s a bit complicated and I might write a longer post in the future, but the upshot is that the AMD driver setup process is slightly different and I believe at some point it used IOMatchCategory to “find” the other parts of the drivers. But in the end they decided to introduce new keys like “LoadController” instead.

Posted by: gh3go

Dunno but for me it is not working, it always recognise the generic

csrutil is disabled, kext put in place, and cache updated

Any idea?

MBP 2016 touch + Sonnet + 980Ti

 I recently committed some changes that are completely untested. If you build the commit from yesterday, it might work better.

Edited: 4 weeks  ago

NVIDIAEGPUSupport - Nvidia eGPU support for macOS High Sierra
Clover-DSDT+apple_set_os.efi - Macbook Pro Windows error 12 & iGPU fixed Bootloader
---
late-2016 13" MacBook Pro Touchbar + GTX1060@16Gbps-TB3 (HP OMEN Accelerator) + macOS HS & Win10


ReplyQuote
goalque
Honorable Member Admin
Joined:12 months  ago
Posts: 724
October 24, 2017 7:32 pm  

grep -r ATIFramebuffer /System/Library/Extensions/*
grep -r isEGPUSupported /System/Library/Extensions/*

Interesting keywords and binary matches. AMDSupport especially. Something is in there. We are, of course, curious. We don’t reverse engineer.

I am sure Apple takes care of it when the Spring 2018 comes closer 🙂

automate-eGPU.shapple_set_os.efi
--
late-2016 13" Macbook Pro nTB + Vega64@32Gbps-TB3 (Netstor HL23T) + macOS & Win10
late-2016 13" Macbook Pro nTB + GTX980/RX580@32Gbps-TB3 (Netstor HL23T) + macOS & Win10


theitsage liked
ReplyQuote
gh3go
Active Member
Joined:2 months  ago
Posts: 9
October 24, 2017 7:41 pm  

I do confirm for me the commit `f233ad3ccf11b8752425a8e4974c0606f5552db4` works, later one the card is not recognised


theitsage liked
ReplyQuote
yifanlu
Eminent Member
Joined:4 weeks  ago
Posts: 41
October 24, 2017 7:48 pm  

For those of you who have it working (me not included 🙁 ), can you test if  https://github.com/mologie/NVWebDriverLibValFix is needed?

Specifically

… issue with transparent windows without content, which appear for applications that use Metal and have Library Validation enabled.

I want to know if I need to bundle NVWebDriverLibValFix.kext as well because I’m pretty sure egpu users will suffer from the metal+library validation problems as well.

NVIDIAEGPUSupport - Nvidia eGPU support for macOS High Sierra
Clover-DSDT+apple_set_os.efi - Macbook Pro Windows error 12 & iGPU fixed Bootloader
---
late-2016 13" MacBook Pro Touchbar + GTX1060@16Gbps-TB3 (HP OMEN Accelerator) + macOS HS & Win10


ReplyQuote
  
Working

Please Login or Register