Git Product home page Git Product logo

purge-wrangler's Introduction

Header

Script Version macOS Support Github All Releases paypal

Document Revision: 6.0.0+

purge-wrangler.sh enables unsupported external GPU configurations on macOS for almost all macs. Before proceeding, please read through this entire document to familiarize yourself with the script, the community, and the resources available you in case you find that you need help.

Requirements

Configuration Specification When Description
macOS 10.13.4+ Always Use automate-eGPU.sh for older macOS versions. Also read Apple's external GPU support document.
System Integrity Protection Disabled Always When enabled, SIP prevents patching macOS. SIP can be disabled as described in this article.
Secure Boot on T2 No Security Always When active, this prevents booting of patched versions of macOS. Settings can be adjusted as shown in this article.
External Boot on T2 Enabled Optional An optional but recommended setting. You can change this as described here.
Backup Recommended Always A system backup is always recommended before modifying core operating system components.

Installation

Few things of note before you install:

  • If you are using an NVIDIA 9xx or newer GPU, only macOS High Sierra is supported. Newer macOS versions do not have available web drivers to accelerate these GPUs. The script will not proceed to patch if appropriate web drivers are not available for your system.
  • If you have a Ti82 enclosure such Razer Core V1 and Akitio Thunder3, the script will not be able to determine the GPU installed inside it automatically. In this scenario, the script will ask you what GPU you are using (AMD or NVIDIA).
  • If you are using an AMD GPU not listed in Apple's eGPU support document, such as the R9 Nano, legacy support will have to be enabled. In most cases, this will be done automatically. However, as above, if you have a Ti82 enclosure, the script will ask you if you would like to install this.

Download and install using Terminal:

curl -qLs $(curl -qLs https://bit.ly/2WtIESm | grep '"browser_download_url":' | cut -d'"' -f4) > purge-wrangler.sh; bash purge-wrangler.sh; rm purge-wrangler.sh

Future use:

purge-wrangler

Re-use the full installation command if the shortcut fails to function. purge-wrangler.sh requires administrator privileges to function.

Script Options

Menu CLI Arg Description
Setup eGPU -a Automatically set up eGPU based on your system configuration and external GPU.
Uninstall -u Uninstalls any system modifications made by the script in-place. This is the recommended uninstallation mechanism.
Recovery -r Restores untouched macOS configuration prior to script modifications from a clean component backup. This is a more robust cleanup.
System Status -s Shows the current status of some of the components of the system and any modifications made using the script.

Running without arguments launches the menu.

Recovery

If you are unable to boot into macOS, boot while pressing โŒ˜ + S, then enter the following commands:

mount -uw /
purge-wrangler

This will restore your system to a clean state.

Hardware Chart

With NVIDIA GPUs, hot-unplugging capability is not supported. Additionally, NVIDIA Web Drivers are not required for Kepler-based GPUs as macOS already includes the drivers.

Integrated GPU Discrete GPU External GPU Dependency Complications
Intel None AMD macOS Drivers Some models may require plugging in the eGPU after boot.
Intel None NVIDIA NVIDIA Web Drivers Drivers need to be available for the running macOS version.
None NVIDIA AMD macOS Drivers Only internal monitor can be used. Apps can be accelerated using set-eGPU.sh.
None NVIDIA NVIDIA NVIDIA Web Drivers OpenCL/GL compute capabilities may be lost due to NVIDIA Web Drivers.
None AMD AMD macOS Drivers Native or like-native support without any significant complications.
None AMD NVIDIA NVIDIA Web Drivers Conflicting framebuffers may require hot-plugging eGPU and then logging out and in.
Intel NVIDIA AMD macOS Drivers Use purge-nvda.sh if you need external monitors over eGPU.
Intel NVIDIA NVIDIA NVIDIA Web Drivers Use purge-nvda.sh to resolve OpenCL/GL compute loss, and use this boot procedure.
Intel AMD AMD macOS Drivers Native or native-like support without any significant complications.
Intel AMD NVIDIA NVIDIA Web Drivers Slow/black screens which may require switching mux to the iGPU or logging out and in after hot-plugging.

Troubleshooting

This section includes a nifty FAQ and additional resources that you can use to get help.

FAQ

These are some of the most frequently asked questions regarding this script and eGPU support in general. Of course, the list is not exhaustive, so always search for more information via other resources for questions not listed here.

Why did the script fail to detect my enclosure?

Assuming hardware is appropriately configured and not defective, the only case when the script fails to detect eGPU configurations is when the enclosure has a Ti82 controller, which macOS does not support by default. Hence detection fails. Simply answer the questions the script asks to proceed with your setup.

Do I require NVIDIA Web Drivers?

If asked this question while setting up your eGPU, the answer depends on the NVIDIA GPU you are using. See the installation notes for more insight. Essentially, you don't need these if you are using Kepler GPUs.

Why do patched NVIDIA drivers not work on macOS Mojave or later?

In macOS Mojave, Apple removed the necessary APIs that NVIDIA-provided graphics drivers used for accelerating their graphics processors. The script uses a simple check to see if it is possible to run NVIDIA drivers for an older macOS version, and patches it for the new version if so. If not, then patching terminates.

Should I enable AMD Legacy Support if asked?

As explained in the installation section, you only need this for AMD GPUs not mentioned in Apple's eGPU Support document. Enabling this for any other GPUs yields no benefit, but is also not harmful.

Get Help

If you are stuck somewhere, reach out to fellow users:

Advanced Users & Developers

For advanced users and developers willing to test unreleased versions of the script or contributing to the development of the script or its patches, consider reading the PurgeWrangler for Advanced Users & Developers document.

References

Many thanks to:

  • @itsage: For testing the recent releases of the script.
  • @fricorico: For help in investigating patches for Thunderbolt 1/2 macs.
  • @goalque: For finding patches for NVIDIA eGPUs.
  • @fr34k: For investigating macOS components for NVIDIA patches.

And the eGPU.io community for their support and insightful discussion.

Disclaimer

This script moves core system files associated with macOS. While any of the potential issues with its application are recoverable, please use this script at your discretion. I will not be liable for any damages to your system.

License

The bundled license prevents any commercial use, redistribution, and compilation/assembly to obscure code for any purposes. This software comes without any warranty or guaranteed support. By using the script, you agree to adhere to this license. See the LICENSE.

Support

Consider starring the repository or donating via:

paypal

Thank you for using purge-wrangler.sh.

purge-wrangler's People

Contributors

crumpair avatar icedawn avatar mayankk2308 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.