Mid-2017 13" MacBook Pro wTB + [email protected] (Sonnet eGFX 350) + Win10 on External SSD [stillmoms]^  

  RSS

stillmoms
(@stillmoms)
Active Member
Joined: 1 year ago
Posts: 9
August 25, 2017 3:59 pm  

This is for folks who might want to replicate a similar setup (MBP 13" + Windows on an external USB HDD/SSD + an NVIDIA eGPU) in the future, here's what I did (in essence). I'd started a troubleshooting thread when frustrated trying to get this working so I decided to document what eventually worked out. Might add some pictures tonight or tomorrow.

Caveats:

No guarantees. Guide is current as of late August 2017. No idea how this will interact w/ 15" MBPs or iMacs that also have a dedicated GPU. You might need other threads for those bad boys. Similarly, I'm not using Boot Camp because I don't have a huge internal SSD in this laptop, so I wanted more space. I believe there are other, simpler guides for if you're doing a standard Boot Camp installation that don't take nearly as much fiddling.

This guide is pretty much only concerned with getting the eGPU working in Windows. You can disable SIP and run automate_eGPU.sh to get it working in macOS if you want, which I subsequently did.

What you'll need

  • A modern, Thunderbolt 3-equipped MacBook Pro (I have only tested this on a Mid-2017 13" MacBook Pro with Touch Bar)
  • An eGPU case w/ an NVIDIA graphics card in it (mine was the Sonnet eGFX Breakaway Box 350W)
  • A USB HDD or SSD (I went for a Samsung 850 EVO SSD in a USB-C enclosure, note about that below)
  • A PC (or VMware Fusion) for the initial install to the above external drive


What you'll do:

  1. Use a PC (or a Windows 10 VM in something like VMware, though YMMV w/ using various drives as targets for this process the VM way) to use Rufus to do a Windows To Go installation to the eventual boot drive you want using a Windows 10 ISO. Here's a good video on how to do that.
    • I did a GPT-only, not an MBR/GPT hybrid, because the modern MacBook Pros are all EFI 2.0-happy, but I don't think you HAVE to? Not totally sure.
    • NOTE: I had to do an intermediate step using a VM to do this to a SanDisk USB key and THEN boot from THAT to image my target external drive because the SSD in the enclosure wouldn't mount correctly in the VM.
  2. Copy over the Boot Camp Drivers (Boot Camp Assistant > Action > Download Windows Support Software) to that drive so they're handy without needing any other media.
  3. Shut down the VM (or safely disconnect the drive from the PC) and attach the drive to your Mac. Shut it down. Attach a USB keyboard and mouse for initial setup (important because before you install the drivers, your laptop's built-in keyboard and trackpad won't work).
  4. Cold boot holding Opt, you should see an EFI Boot option (this is the drive w/ Windows To Go on it). Select it and hit Enter.
  5. Windows should boot and take you through the setup process. Once it's done and you're at the Desktop, run the Setup.exe from the WindowsSupport/BootCamp folder you copied over previously to install all the various Apple drivers for your machine. Reboot.
  6. Windows should come up happier now, correct resolution, GUI scaling set better, Touch Bar working, all that jazz. Run Apple Software Update to make sure there aren't any newer Boot Camp drivers than what you downloaded (in my case there was a Wireless driver fix that made WiFi and Bluetooth more reliable). Probably reboot. Then run Windows Update to make sure you've got all the latest crap. You'll probably have to reboot here as well.
  7. Wouldn't be a bad idea now that you have network access to download the latest NVIDIA graphics drivers from their website, just so you have 'em ready to go.
  8. At this point there's a lot of ways to do what I did next, but here's the method I used: shut down, disconnect the Windows drive, and boot again holding Cmd+R. This will launch your Recovery HD.
  9. Once it has booted, choose Utilities > Terminal and disable SIP using the command
    1. csrutil disable
  10. Reboot into macOS.
  11. Go here and download the latest apple_set_os.efi release.
  12. Connect your Windows drive. It should mount on the Desktop.
  13. Open a Terminal window and do a:
    1. diskutil list
  14. This should show all the partitions on all connected drives. What you're looking for is the EFI NO NAME partition. Note its identifier to the far right and replace the $ signs in the command below with the correct numbers from your identifier, as it may vary depending on what disks you have attached. Then do:
    1. sudo mkdir /Volumes/efi
    2. sudo mount -t msdos /dev/disk$s$ /Volumes/efi
  15. At this point you should see the EFI partition mounted as "NO NAME" on the Desktop.
  16. Open it up and navigate to EFI/Boot
  17. Copy the apple_set_os.efi file you downloaded earlier. Rename the existing "bootx64.efi" to something else (I used "origbootx64.bak" so I'd know what it was in case it didn't work). Rename the "apple_set_os.efi" to "bootx64.efi". Eject the EFI partition.
  18. Back in the Terminal, issue the following command, subbing in your Windows' drive's name obviously:
    1. sudo bless -volume /Volumes/{$Windows_volume} -setBoot
  19. At this point you can PROBABLY go hog-wild and skip to the next step. I first made sure that booting Windows still behaved properly with the replaced efi file, for sanity's sake. Shut down the machine entirely, because you'll want to do the next bits from a cold boot.
  20. Make sure the eGPU case is ready to go (card installed, power hooked up, external display connected if applicable, Thunderbolt 3 cable attached to the case but not the computer). Make sure the PSU for the case is switched on (at least if you have a Sonnet it won't actually turn on until it detects the Thunderbolt cable is attached to a powered on computer—not sure about other cases).
  21. Cold boot the Mac, holding Opt, without the eGPU case attached to the computer. Once you're at the volume selection screen, plug in the eGPU case's Thunderbolt 3 cable. Your case should fire up and the fans on your graphics card should spin up.
    • I don't think it matters which port you use, but in case it does I used the left port closest to the back of the machine for the eGPU and plugged nothing else into that side. I attached the Windows SSD to the right back port and my other USB devices (and power) via the Apple Multiport adapter in the right front port.
  22. Select the EFI Boot volume (your Windows volume). Windows should boot up successfully*. At this point you're good to go on installing the NVIDIA drivers, but when they're complete DO NOT CHOOSE RESTART NOW. I've never gotten "warm" boots working properly, I always need to cold boot this setup to have everything happy. Choose "Restart Later" and do a clean, full shut down of the machine.
  23. Disconnect the eGPU's Thunderbolt 3 cable from the computer.
  24. Cold boot holding Option, plug the eGPU back in once you're at the volume selection screen, and choose EFI Boot.
  25. If all went well, you should now be sitting at the Desktop, no screen corruption, with the NVIDIA drivers active (check this by seeing if you can launch the NVIDIA Control Panel by right-clicking on the Desktop)
    • If you have an external display plugged in, it's probably now mirroring the internal display, which is an easy way to be tipped off that the setup is functional (right click the desktop and choose Display Settings to change this—the NVIDIA control panel won't show the internal screen and the Intel Graphics pane won't recognize the external, only the native Windows pane sees both).
         

I'm still having some trouble with some Bluetooth peripherals at this point (mostly my Logitech MX Master 2S mouse), and the Mass Storage Controller for the MacBook Pro's internal SSD refuses to install a driver, so I can't select my macOS volume from the Boot Camp control panel—basically NO "Startup Disk" type panes work in this setup. However, sound works, USB stuff works (including the MX Master when using the USB RF dongle), games work and are definitely running on the eGPU. I'm seeing 90 - 130 FPS in Overwatch on my external DisplayPort GSYNC display (GSYNC works great btw, Windows desktop can be set to 120Hz via the NVIDIA control panel), 100 - 140FPS in Diablo III, so I'm pretty happy.

 

Thanks to all posters on this forum for their helpful info, it was frustrating sorting through everything and the fact that I couldn't just move my old internal installation from my ancient Mac Pro to an external one without re-formatting was annoying*, but at this point I'm just glad it all works again.

*I have subsequently found some stuff online suggesting that an extant Windows installation CAN sometimes be turned into a Windows To Go using some third-party utilities, but I didn't find them before reformatting, so… if you're in that situation and want to test it out, I'd say MAKE A BACKUP and then let me know if it works and throw some steps up here.

Mid-2017 13" MacBook Pro wTB + [email protected] (Sonnet eGFX 350) + Win10 on External SSD


ReplyQuote
better_plain
(@better_plain)
New Member
Joined: 1 year ago
Posts: 1
August 29, 2017 11:08 pm  

Correction to my original question for future people: Download the Windows ISO from Mac. If you download it from Windows, the Media Creation Kit does not give you the version of Windows ISO that you need.

---

Thanks for the walkthrough.

In your steps, you recommend using Rufus to do a Windows To Go installation to the eventual boot drive you want using a Windows 10 ISO. Rufus doesn't support ISOs created through the Windows Media Creation link ( https://github.com/pbatard/rufus/wiki/FAQ#windows-to-go).

How were you able to get a usable Windows ISO for Windows to Go through the Microsoft process?

Soon I will add my system & eGPU details or a build link to this my signature to give context to my posts


ReplyQuote
stillmoms
(@stillmoms)
Active Member
Joined: 1 year ago
Posts: 9
September 13, 2017 10:25 pm  

Ah yes, should've pointed out I downloaded the ISO from my Mac (as though I was doing a Boot Camp install).

Mid-2017 13" MacBook Pro wTB + [email protected] (Sonnet eGFX 350) + Win10 on External SSD


ReplyQuote
masterpandaness
(@masterpandaness)
New Member
Joined: 1 year ago
Posts: 2
October 9, 2017 6:20 pm  

Hey there! 

First off thank you so much for this guide!  I have been thinking that I am not the only one trying to run egpu  and also run windows off of an external drive to save space on the Mac side.  Though I have been running into an issue on the last step to bless the volume. 

Terminal tells me that "-volume" is an unrecognized option.  I ended up using the "-mount" in place of it and it seems to work. 

Now when I reboot from the efi boot, I get a windows system crash "windows has encountered an error :(".  My guess is that this has to do with the apple_set_os.efi file and its incompatibility with my version of macOS Sierra (10.12.6) and less with the fact that I'm not using the "-volume" bless option properly. 

Any thoughts?  and thanks in advance!

Soon I will add my system & eGPU details or a build link to this my signature to give context to my posts


ReplyQuote
Eightarmedpet
(@eightarmedpet)
Noble Member
Joined: 2 years ago
Posts: 1097

ReplyQuote
masterpandaness
(@masterpandaness)
New Member
Joined: 1 year ago
Posts: 2
October 10, 2017 12:50 am  
Posted by: Eightarmedpet

My set up was a lot simpler and pretty much the same hardware... why not try a really small Bootcamp instal and then run games etc from an external?

This is what I was doing when I couldn't figure out how to do what stillmoms did.  

I don't like that option as much simply because I need the Mac side to edit a lot of video.  Even without a Boot Camp setup, I need to juggle quite a bit with my external drives for the video files.  Luckily I still have my main gaming PC for most of my gaming, but I want to use the MBP as another machine to game locally when a friend comes over.   Plus, as frustrating as it can get sometimes, it's an admittedly fun project.

Soon I will add my system & eGPU details or a build link to this my signature to give context to my posts


ReplyQuote