Jump to content
Whit3Spirit

Disabling NVIDIA Optimus card on all laptops

343 posts in this topic

Recommended Posts

We do the same thing on the ProBook. You use an External declaration to gain access to the methods in SSDT from DSDT. These are the DSDT patches we use:

into definitionblock code_regex . insert
begin
External(\_SB_.PCI0.PEGP.DGFX._OFF, MethodObj)\n
External(\_SB_.PCI0.PEGP.DGFX._ON, MethodObj)\n
end;

into method label _PTS code_regex ([\s\S]*) replace_matched
begin
If (CondRefOf(\\_SB_.PCI0.PEGP.DGFX._ON)) { \\_SB_.PCI0.PEGP.DGFX._ON() }\n
%1
end;

into method label _WAK code_regex (Return\s+\(.*) replace_matched
begin
If (CondRefOf(\\_SB_.PCI0.PEGP.DGFX._OFF)) { \\_SB_.PCI0.PEGP.DGFX._OFF() }\n
%1
end;
The paths to _ON/_OFF may be different in your SSDT, so be sure to tweak the patch as necessary.

 

 

Rehab?

 

Just a question, Why do you turn the card on, on PTS?

Share this post


Link to post
Share on other sites
Advertisement

Rehab?

 

Just a question, Why do you turn the card on, on PTS?

We found that leaving the card in _OFF mode across sleep caused problems with restart and wake. So, in _PTS we restore via _ON, and _WAK turns it back off again.

Share this post


Link to post
Share on other sites

These patches could be useful for me if i could disable the HD4600 instead of the Nvidia card as it is used to control display on external screen through HDMI, good job though :)

Share this post


Link to post
Share on other sites

I use already the latest Clover...how can I use it on the fly?

 

Go make this SSDT with clover in patched DSDT folder, normaly it's good for you. Remember to disable the DropOEM tables.

 

 

I'm not even touching the DSDT but only adding _DSM methods and other things that I need in a SSDT which is injected by Clover (DSDT free Clover config). The _PTS and _WAK methods do not exist in the SSDT where I have turned off the card. Can I reference to the _PTS and _ WAK in the SSDT? How? And will that overwrite the methods with the ones defined in DSDT? Thanks again.

 

My SSDT is similar to this one as decribed by Stevo here

DefinitionBlock ("SSDT-1.aml", "SSDT", 2, "APPLE ", "Optimus", 0x00001000)
{
    External (\_SB_.PCI0.PEG0, DeviceObj)
    External (\_SB_.PCI0.PEG0.PEGP._PS3, MethodObj)
    External (\_SB_.PCI0.PEG0.PEGP._DSM, MethodObj)
    Scope (\_SB.PCI0.PEG0)
    {
        Method (_INI, 0, NotSerialized)
        {
            \_SB.PCI0.PEG0.PEGP._DSM (Buffer (0x10)
                {
                    /* 0000 */   0xF8, 0xD8, 0x86, 0xA4, 0xDA, 0x0B, 0x1B, 0x47,
                    /* 0008 */   0xA7, 0x2B, 0x60, 0x42, 0xA6, 0xB5, 0xBE, 0xE0
                }, 0x0100, 0x1A, Buffer (0x04)
                {
                     0x01, 0x00, 0x00, 0x03
                })
            If (One)
            {
                \_SB.PCI0.PEG0.PEGP._PS3 ()
            }
        }
    }
}

Share this post


Link to post
Share on other sites

RehabMan - I already have a patched DSDT that works :)

 

I'm just trying this new method of not using a patched DSDT and using Clover to do patching on the fly. I guess I will patch in the _PTS and _WAK sections of the DSDT using Clover.

One thing you could do is rename (with Clover search/replace patching) _PTS and _WAK (to something like ZPTS/ZWAK... make sure they are not used). Then from SSDT, you can define new _PTS and _WAK, that call back into DSDTs now renamed ZPTS/ZWAK and do the extra stuff you want them to do...

Go make this SSDT with clover in patched DSDT folder, normaly it's good for you. Remember to disable the DropOEM tables.

I don't think you understand completely what webcivilian is trying to do...

Share this post


Link to post
Share on other sites

Go make this SSDT with clover in patched DSDT folder, normaly it's good for you. Remember to disable the DropOEM tables.

Always enable DropOEM when you use patched SSDT, or it will cause conflict between ssdt tables.

Share this post


Link to post
Share on other sites

One thing you could do is rename (with Clover search/replace patching) _PTS and _WAK (to something like ZPTS/ZWAK... make sure they are not used). Then from SSDT, you can define new _PTS and _WAK, that call back into DSDTs now renamed ZPTS/ZWAK and do the extra stuff you want them to do...

 

Good idea. Let me try it :)

Share this post


Link to post
Share on other sites

Restart still broken even after call the ON method on _PTS.

If you want another set of eyes, post ioreg (use IORegistryExplorer 2.1).

Share this post


Link to post
Share on other sites

OK here are the files. I have also included my modified SSDT and Clover patched DSDT. Also a patched DSDT which works.

 

Thanks again for your help.

I wasn't expecting ZPTS/ZWAK to be completely empty, but ok...

 

Looks like you just copied _WAK/_PTS to ssdt-2 and then patched (to call PINI/OPOF/etc).

 

Seems like it should work. And if I extract all your DSDT/SSDTs from ioreg and use "iasl -da *" I get successful disassembly. In addition, PNLF is loaded and attached to ACPIBacklight, so we know that ssdt-2 is loading ok.

 

Your next step would be to do some traces... Have you used ACPIDebug yet? https://github.com/RehabMan/OS-X-ACPI-Debug. It is very useful...

Share this post


Link to post
Share on other sites

I haven't used ACPIDebug yet. Let me try it and see if I find something. 

 

But can you check my working DSDT against the SSDTs. The ON and OFF methods are a little different and I'm just calling the PS3 methods from IGPU _DSM and there are no issues with restart.

Share this post


Link to post
Share on other sites

I haven't used ACPIDebug yet. Let me try it and see if I find something. 

 

But can you check my working DSDT against the SSDTs. The ON and OFF methods are a little different and I'm just calling the PS3 methods from IGPU _DSM and there are no issues with restart.

I didn't look at your "working DSDT." I assumed you were doing the *same* thing with your SSDT solution. Is that not the case? If so, why?

Share this post


Link to post
Share on other sites

There are some differences. Doix actually created the Optimus off DSDT patch for XPS laptops. I need some help understanding the difference.

I would try my way... then see if you can adapt to your desire for SSDT-based solution:

- patch SSDT to call _OFF from _INI

- patch _PTS to call _ON

- patch _WAK to call _OFF

 

I don't really think the "lets copy a bunch of code from SSDT into DSDT" technique is a good one.

Share this post


Link to post
Share on other sites

I don't understand all your work but :

 

- Why make a SSDT solution for disabled Optimus if the DSDT must be changed ?

- What is the technic for change the DSDT code on the fly in clover ? (for change WAK to ZWAK) Because if you make a SSDT solution, this is for those can't change their DSDT...

 

Can you post just a link for me so I can learn to change DSDT on the fly with clover ?

 

Thanks dudes

Share this post


Link to post
Share on other sites

@ Whit3Spirit - The DSDT doen't need to be changed because we can disable nvidia optimus from SSDT. My problem is that my computer won't restart but shutdown when I turn off Optimus so I was trying some suggestions given by Rehabman to turn on the card.

 

The technique is called Clover DSDT patching. You can read it here: http://clover-wiki.zetam.org/Configuration/ACPI#DSDT

Share this post


Link to post
Share on other sites

@ Whit3Spirit - The DSDT doen't need to be changed because we can disable nvidia optimus from SSDT. My problem is that my computer won't restart but shutdown when I turn off Optimus so I was trying some suggestions given by Rehabman to turn on the card.

 

The technique is called Clover DSDT patching. You can read it here: http://clover-wiki.zetam.org/Configuration/ACPI#DSDT

You can't, the _OFF method is called inevitably in _WAK and in _INI method and you can't call their method in a DSDT. Or i don't understand... ? :(

 

And thanks for Patches in Clovers, instructive !

Share this post


Link to post
Share on other sites

You can't, the _OFF method is called inevitably in _WAK and in _INI method and you can't call their method in a DSDT. Or i don't understand... ? :(

 

And thanks for Patches in Clovers, instructive !

I don't think you understand. You can call whatever method you want, no matter where it exists... just use External to reach it.

Share this post


Link to post
Share on other sites

I don't think you understand. You can call whatever method you want, no matter where it exists... just use External to reach it.

You can add PINI method in _WAK from SSDT then ?

 

Because you have to call the OFF method in the WAK method, not with and if you call WAK from SSDT with an External link, you can't modify it... No ?

 

Sorry if i have a very bad english :P i just learn with all your know :lol:

Share this post


Link to post
Share on other sites

You can add PINI method in _WAK from SSDT then ?

You use External to access a method defined elsewhere.

 

Because you have to call the OFF method in the WAK method, not with and if you call WAK from SSDT with an External link, you can't modify it... No ?

Not sure what you're asking.

Share this post


Link to post
Share on other sites

With clover patch :

 

Change :

Method (_WAK

base64 : TWV0aG9kIChfV0FL

 

To :

Method (PINI, 0, NotSerialized)
    {
        \_SB.PCI0.PEG0.PEGP._DSM (Buffer (0x10)
            {
                /* 0000 */   0xF8, 0xD8, 0x86, 0xA4, 0xDA, 0x0B, 0x1B, 0x47,
                /* 0008 */   0xA7, 0x2B, 0x60, 0x42, 0xA6, 0xB5, 0xBE, 0xE0
            }, 0x0100, 0x1A, Buffer (0x04)
            {
                 0x01, 0x00, 0x00, 0x03
            })
        If (One)
        {
            \_SB.PCI0.PEG0.PEGP._PS3 ()
        }
​    }
Method (_WAK

base64 : TWV0aG9kIChQSU5JLCAwLCBOb3RTZXJpYWxpemVkKQ0KICAgIHsNCiAgICAgICAgXF9TQi5QQ0kwLlBFRzAuUEVHUC5fRFNNIChCdWZmZXIgKDB4MTApDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgLyogMDAwMCAqLyAgIDB4RjgsIDB4RDgsIDB4ODYsIDB4QTQsIDB4REEsIDB4MEIsIDB4MUIsIDB4NDcsDQogICAgICAgICAgICAgICAgLyogMDAwOCAqLyAgIDB4QTcsIDB4MkIsIDB4NjAsIDB4NDIsIDB4QTYsIDB4QjUsIDB4QkUsIDB4RTANCiAgICAgICAgICAgIH0sIDB4MDEwMCwgMHgxQSwgQnVmZmVyICgweDA0KQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAweDAxLCAweDAwLCAweDAwLCAweDAzDQogICAgICAgICAgICB9KQ0KICAgICAgICBJZiAoT25lKQ0KICAgICAgICB7DQogICAgICAgICAgICBcX1NCLlBDSTAuUEVHMC5QRUdQLl9QUzMgKCkNCiAgICAgICAgfQ0K4oCLICAgIH0NCk1ldGhvZCAoX1dBSw==

 

Change :

Method (_WAK, 1, Serialized)
     {

Base64 : TWV0aG9kIChfV0FLLCAxLCBTZXJpYWxpemVkKQ0KICAgICB7

 

To :

Method (_WAK, 1, Serialized)
     {
         PINI ()

Base64 : TWV0aG9kIChfV0FLLCAxLCBTZXJpYWxpemVkKQ0KICAgICB7DQogICAgICAgICBQSU5JICgp

 

 

Change :

Method (_INI, 0, NotSerialized)
        {
            Store (0x07D0, OSYS)      

Base64 : TWV0aG9kIChfSU5JLCAwLCBOb3RTZXJpYWxpemVkKQ0KICAgICAgICB7DQogICAgICAgICAgICBTdG9yZSAoMHgwN0QwLCBPU1lTKQ==

 

To :

Method (_INI, 0, NotSerialized)
        {
            Store (0x07D0, OSYS)
            PINI()

Base64 : TWV0aG9kIChfSU5JLCAwLCBOb3RTZXJpYWxpemVkKQ0KICAgICAgICB7DQogICAgICAgICAgICBTdG9yZSAoMHgwN0QwLCBPU1lTKQ0KICAgICAgICAgICAgUElOSSgp

 

 

 

 

 

Like that in config.plist :

<key>Patches</key>
            <array>
                <dict>
                    <key>Find</key>
                    <data>TWV0aG9kIChfV0FL</data>
                    <key>Replace</key>
                    <data>TWV0aG9kIChQSU5JLCAwLCBOb3RTZXJpYWxpemVkKQ0KICAgIHsNCiAgICAgICAgXF9TQi5QQ0kwLlBFRzAuUEVHUC5fRFNNIChCdWZmZXIgKDB4MTApDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgLyogMDAwMCAqLyAgIDB4RjgsIDB4RDgsIDB4ODYsIDB4QTQsIDB4REEsIDB4MEIsIDB4MUIsIDB4NDcsDQogICAgICAgICAgICAgICAgLyogMDAwOCAqLyAgIDB4QTcsIDB4MkIsIDB4NjAsIDB4NDIsIDB4QTYsIDB4QjUsIDB4QkUsIDB4RTANCiAgICAgICAgICAgIH0sIDB4MDEwMCwgMHgxQSwgQnVmZmVyICgweDA0KQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAweDAxLCAweDAwLCAweDAwLCAweDAzDQogICAgICAgICAgICB9KQ0KICAgICAgICBJZiAoT25lKQ0KICAgICAgICB7DQogICAgICAgICAgICBcX1NCLlBDSTAuUEVHMC5QRUdQLl9QUzMgKCkNCiAgICAgICAgfQ0K4oCLICAgIH0NCk1ldGhvZCAoX1dBSw==</data>
                </dict>
                <dict>
                    <key>Find</key>
                    <data>TWV0aG9kIChfV0FLLCAxLCBTZXJpYWxpemVkKQ0KICAgICB7</data>
                    <key>Replace</key>
                    <data>TWV0aG9kIChfV0FLLCAxLCBTZXJpYWxpemVkKQ0KICAgICB7DQogICAgICAgICBQSU5JICgp</data>
                </dict>
                <dict>
                    <key>Find</key>
                    <data>TWV0aG9kIChfSU5JLCAwLCBOb3RTZXJpYWxpemVkKQ0KICAgICAgICB7DQogICAgICAgICAgICBTdG9yZSAoMHgwN0QwLCBPU1lTKQ==</data>
                    <key>Replace</key>
                    <data>TWV0aG9kIChfSU5JLCAwLCBOb3RTZXJpYWxpemVkKQ0KICAgICAgICB7DQogICAgICAgICAgICBTdG9yZSAoMHgwN0QwLCBPU1lTKQ0KICAgICAgICAgICAgUElOSSgp</data>
                </dict>
            </array>

that's good ?

Share this post


Link to post
Share on other sites

Or you can just add an SSDT file and do the following without Clover patching the DSDT:

DefinitionBlock ("SSDT-1.aml", "SSDT", 2, "DELL ", "Optimus", 0x00001000)
{
    External (\_SB_.PCI0.PEG0.PEGP._PS3, MethodObj)    
    External (\_SB_.PCI0.PEG0.PEGP._DSM, MethodObj)    
    Method (\_SB._INI, 0, NotSerialized)
    {
        \_SB.PCI0.PEG0.PEGP._DSM (Buffer (0x10)
            {
                /* 0000 */   0xF8, 0xD8, 0x86, 0xA4, 0xDA, 0x0B, 0x1B, 0x47,
                /* 0008 */   0xA7, 0x2B, 0x60, 0x42, 0xA6, 0xB5, 0xBE, 0xE0
            }, 0x0100, 0x1A, Buffer (0x04)
            {
                 0x01, 0x00, 0x00, 0x03
            })
        If (One)
        {
            \_SB.PCI0.PEG0.PEGP._PS3 ()
        }
    }
}

Share this post


Link to post
Share on other sites

Or you can just add an SSDT file and do the following without Clover patching the DSDT:

DefinitionBlock ("SSDT-1.aml", "SSDT", 2, "DELL ", "Optimus", 0x00001000)
{
    External (\_SB_.PCI0.PEG0.PEGP._PS3, MethodObj)    
    External (\_SB_.PCI0.PEG0.PEGP._DSM, MethodObj)    
    Method (\_SB._INI, 0, NotSerialized)
    {
        \_SB.PCI0.PEG0.PEGP._DSM (Buffer (0x10)
            {
                /* 0000 */   0xF8, 0xD8, 0x86, 0xA4, 0xDA, 0x0B, 0x1B, 0x47,
                /* 0008 */   0xA7, 0x2B, 0x60, 0x42, 0xA6, 0xB5, 0xBE, 0xE0
            }, 0x0100, 0x1A, Buffer (0x04)
            {
                 0x01, 0x00, 0x00, 0x03
            })
        If (One)
        {
            \_SB.PCI0.PEG0.PEGP._PS3 ()
        }
    }
}

 

This only works if there is no _SB._INI already defined in DSDT.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By fighttoby
      I have tried to install clover via no UEFI legacy mode (and with UEFI method) using the method here (http://www.tonymacx86.com/yosemite-desktop-guides/144426-how-install-os-x-yosemite-using-clover.html)
      both times I can get to just past the clover boot screen and it freezes after that.
      I have verbose (-v) selected in boot options: On the non-UEFI install then it hangs on:
      "Waiting on <dict ID="0"><key>IOProviderClass</key>...."
       
      I have had a lot of issues with trying to get the installer working and many different things that had to be disabled but now it just gets to here and stops. Some times it will glitch out on this screen and give me a the circle with the line through it and text garbage around it where the text in the pictures are.
       
      Need help please.
       
      This is the laptop im using the specs are the same nothing has changed.
      https://www.asus.com/Laptops/ASUS_VivoBook_X202E/


      config.plist
    • By End3rPower50
      Hi, i've installed on my pc MacOS Mojave but after installation my pc, sometimes, crash giving kernel panic.
      I came to the conclusion that it is a random kernel panic because sometimes it starting up and other times it isn't starting up
       
      My PC:
      CPU: Intel i7 6500U
      LAN: RTL8100
      Wi-Fi & Bluetooth: Dell DW1820A
      USB 3.1
       
      CLOVER.zip
    • By peanutman314
      As you might know the Samsung 970 EVO Plus variant causes major issues on hackintosh installs. I want to keep it plugged into my motherboard for use in Windows. However, if it's plugged in, macOS is going to try to index this disk eventually and it will crash macOS even though it's not the main install disk. 

      Because I don't need this disk under macOS I thought it would be a good solution to somehow disable/hide the unsupported disk for macOS. I looked into doing this via Clover but couldn't find anything useful. I'm hoping I can disable the slot via a DSDT patch. I only want to disable one specific M.2 slot, the others should remain functional (I have another working M.2 disk). So disabling the driver is not an option.

      I have very little experience with DSDTs and I have no idea how to do this. I recently created a USB injection patch using RehabMan's excellent guide, so I have some experience with the process, but no idea how to formulate the DSDT patch. 

      I have a Gigabyte Aurus Pro z390 motherboard. Below is a screenshot of IORegistryExplorer showing the other working drive (not the one I want to disable, that one is not plugged in yet). 
       

      I would be very grateful if anyone can point me in the right direction. If anyone knowns of a non-DSDT solution to disable a specific slot (but not all slots) then that's also fine of course.

      Thank you for your time
    • By Angelo_
      Hi, I followed the rehabman guide (linked in the vanilla guide on the side of r/Hackintosh, not sure if I can link it) for laptops for my yoga 730ILW13 with an 8265u, Conexant 11870, 8gb of ram, 13.3" fhd and I found that upon booting the installer usb I get this weird issue where the screen displays what it should but the screen is incredibly dim (though it was off before using a flashlight on it) and it flashes every few seconds for a few milliseconds to the correct brightness, I used the plist for hd615-650 (including my 620), not quite sure what could be the culprit, first time hackintoshing a laptop so it might be a stupid brightness kext I forgot but didn't find any in that post or in this forum :c 
      Attached the clover zip so that anyone with more experience than me might give an idea in what could be a way to fix this.
      Thank you in advance 
       
       
       
      CLOVER.zip
    • By rtke333
      Acer Aspire V15 V5-591G - Mojave 10.14.4
       
      (Note: mine is 55TU version, but the bootpack will work fine with another versions of 591G, for example: V5-591G-71K2, -764Z, -59PU, etc.)
      Specifications:
      - Motherboard: USOPP_SLS (Skylake-H PCH)
      - BIOS:Insyde Corp. v 1.15
      - CPU:Intel Core i5-6300HQ 2.3 GHz (Skylake)
      - GPU: NVIDIA GeForce GTX 950M 2 GB (Optimus) & Intel HD Graphics 530
      - RAM:SK hynix 4 GB DDR4 (Later I bought + KINGSTON 4 GB) 2133 MHz
      - WiFi + Bluetooth:Qualcomm Atheros QCNFA344A 5 GHz (Later -> Broadcom BRCM94352Z M.2 5 GHz WiFi + 4.0 Bluetooth)
      - Audio:Realtek HD Audio: ALC 255 
      - Ethernet: Realtek RTL8168/8111
      - Card Reader:Realtek USB 2.0 Card Reader (USB2.0-CRW)
      - Webcam:HD Webcam
      - HDD:TOSHIBA MQ01ACF032 320 GB HDD
      - SSD:SPCC M.2 230 GB SSD
      - Display:1366x768 (15.6", Matte)
      - Battery: 6 cell 56Wh / 5040mAh
      - Connectors: 
      1x SD Card Reader 2x USB 3.0 (1x USB Charging), 1x USB 2.0 1x VGA 1x HDMI 1x 3.5mm microphone/audio combined jack connector 1x Ethernet (Rj-45) - Keyboard & Touchpad:Multi-Touch & Multi-gestures ELAN 501 Touchpad, Backlight Keyboard.
      Working:  
      - Wi-Fi (with BCM94352Z)
      - Bluetooth hand-off (With BCM94352Z)
      -Full Graphics enabled on HD 530: ig-platform-id: 0x191b0000 (HD 530 Mobile)
      - Display: if default colour profile is corrupted (blue is not actual blue but purplish) Use "Rec. ITU-R BT. 709-5" Color Profile (System Pref. -> Displays -> Color)
      -HDMI & VGA Outputs: AppleGraphicsDevicePolicy.kext Clover patch
      - Audio (ALC 255):(Internal Speakers, Internal Microphone, Headphone jack with AppleALC, ALCPlugFix -> layout-id=17)
      - Ethernet Realtek 8168/8111: RealtekRTL8111.kext
      - App Store, Messages, FaceTime, Siri, iCloud(native)
      - Integrated webcam(native)
      - 3.0 USB (native)
      - Touchpad and Keyboard(ELAN501): Fn keys are good, the weird thing is the Brightness key. On my keyboard it's Pause Break:Br-up, Fn+F12:Br-dwn-> To fix this try Karabiner (VoodoPS2Controller.kext), - for gestures try SmartTouchpad drivers
      - Battery info:Install ACPIBatteryManager.kext with Kext Utility or other installer.
      - Sleep Mode
      - SSD with TRIM enabled (to enable trim, open Terminal and write "sudo trimforce enable")
      Not working:
      - Original Wi-Fi (Qualcomm Atheros QCNFA344A):  unsupported, you need switch to BCM94352Z or just use a mini usb wifi dongle.
      - NVIDIA GeForce GTX 950M: Optimus not supported.
      - Card Reader: Unsupported -> Can't really fix because I don't have any SD Card at the moment, maybe can be fixed by adding Prod & Ven IDs to AppleStorageDevices.kext, I never used it anyway. name: "USB2.0-CRW" Prod ID: "0x0129" Ven ID: "0x0bda  (Realtek Semiconductor Corp.)"
      For Wi-Fi:
      - 1st method:You can choose an external USB wifi dongle (I used TP-Link Archer T1U (5GHz support), TP-Link has official macOS drivers, you just need to install it
      -2nd and I think the best method:Replace your M.2 Qualcomm Card with a compatible BCM94352Zcard (you will have hand-off Bluetooth too), just install the kexts (enabled with BrcmFirmwareData.kext, BrcmPatchRAM2.kext, FakePCIID.kext, FakePCIID_Broadcom_WiFi.kext, they're all in my attached zip). You could buy this card from ebay, aliexpress, or amazon
       
      Issues:
      - None
      BIOS Settings:
      - BIOS version 1.15 (irrelevant)
      - Secure Boot: Disabled
      - Touchpad: Advanced
      - Boot mode:UEFI
      Getting ready for Installation:
      - Download the install zip (bootpack & postinstall): Click here -> acer_aspire_v591g_installfiles.zip
      Installation:
      - Create an installer with any method you know (- Mac: createinstallmedia - Windows: Transmac, Vmware, Win32diskimager)
      - Copy my Clover folder to the USB's EFI folder
      - Boot with the Installer USB
      - If you stuck in boot, reboot and in the Clover bootloader select "config_debug.cfg" -> you'll have more informations about the freeze
       
      Please open the README.rtf in my install zip for more informations about the USB Installer & Post installation!
      If you have a single RAM and getting panic at boot, then you need to edit the "config.plist" with these (SMBIOS->after "Version 1.0"):
      ->Edit "Frequency" and "Size" to match your RAM values
      <key>Version</key> <string>1.0</string> <key>Memory</key> <dict> <key>Channels</key> <integer>1</integer> <key>SlotCount</key> <integer>1</integer> <key>Modules</key> <array> <dict> <key>Slot</key> <integer>0</integer> <key>Size</key> <integer>8192</integer> <key>Frequency</key> <integer>2133</integer> <key>Type</key> <string>DDR4</string> </dict> </array> </dict> </dict>  
      PowerManagement  fix:
      Set HWPEnable=YES in Clover (already set), CPUFloor to "700", Frequency to "2300" and "3200"(Normal and Turbo, if you have i7-6700HQ version then it should be "2600", "3500") and "FrequencyVectors" from "0x0d000000" to "0x07000000" in "S/L/E/IOPlatformPluginFamily.kext/Contents/PlugIns/X86PlatformPlugin.kext/Contents/Resources/Mac-A5C67F76ED83108C.plist", MSR _xcpm_idle Patch to KernelToPatch in Clover (If you have High Sierra, change "MatchOS" to 10.13):

      <key>KernelToPatch</key> <array> <dict> <key>Comment</key> <string>MSR 0xE2 _xcpm_idle instant reboot(c) Pike R. Alpha</string> <key>Disabled</key> <false/> <key>Find</key> <data> ILniAAAADzA= </data> <key>MatchOS</key> <string>10.14</string> <key>Replace</key> <data> ILniAAAAkJA= </data> </dict> </array> Reboot, and it's 800MHz in idle state, same on Windows.
       

       
      Before updating to a new version of Mojave please update kexts (and clover if necessary) to newer versions to avoid kernel panics.
      Generate a serial number with Clover Configurator.app (open up your config.plist with CC then -> SMBIOS -> Serial Number -> Generate New)
      Mojave & Windows 10 Dual-Boot:
      Dual-boot clean install (on one drive), UEFI Only:
       
       Boot into your Mac installer, Create 2 partitions in GUID table (1 for Win (I used FAT32 but I think it doesn't matter what you choose), 1 for Mac),   Install Mac, boot with your USB, mount your EFI partition (use terminal or an EFI mounter app), create an EFI folder (if there is no folder), copy the CLOVER folder I attached to the EFI folder, restart,  Boot into your Win installer, Format the partition you created for Win, install.   Now, it's automatically booting into Windows. To use Clover open cmd in administrator, type:  bcdedit /set {bootmgr} path \EFI\CLOVER\CLOVERX64.efi       5.  You're done! It will booting into Clover when you start the system, and you can select Win or Mac (or another OS if installed on a 3rd partition).
       
      Dual-boot with Windows installed first (on one drive), UEFI Only:
      If you already have Windows and you don't want to lose all your data there is a hope:
      I created a video from this restore method: [Hackintosh] Dual-Boot High Sierra & Windows - when Windows already installed - no data waste - UEFI
      You need bootable Mac Installer and a full system restore image (link is in my video's description).
      (You may see errors if your EFI partition is not 200 MB)
       Boot into your Windows, resize your partition or create one for Mac.  Boot into your Mac installer and in Disk Utility format the partition you created.  Restore from image: select your full system restore image.  When it's finished restoring you just need to restart, then boot to the system with your usb.  When you successfully booted to Mac desktop, mount your EFI partition (use terminal or an EFI mounter app), open EFI, you will see there is a Microsoft folder already (don't touch that!). Copy my CLOVER folder to the EFI folder then Restart.  Now, it's automatically booting into Windows. To use Clover open cmd in administrator, type:  bcdedit /set {bootmgr} path \EFI\CLOVER\CLOVERX64.efi       7.  You're done! You can select your old Windows and your new macOS!
      (Only tried with Windows 8/8.1/10. I don't know Windows 7,etc.)
       
      IF YOU GETTING ERRORS DURING MAC RESTORE:
      - Make sure you have partitions in GPT
      - Windows using 100 MB EFI and will annoy the Mac restore. Don't worry, just ignore the errors.
       
      IF YOU GETTING ERRORS DURING WINDOWS INSTALLATION (could not be formatted, etc):
      - Make sure you have GPT partitions, and GPT (UEFI) installer, also disconnect all external storage drives (except the installer USB)
       
      IF YOU USED RESTORE METHOD THEN CAN'T MOUNT YOUR EFI PARTITION (No EFI partition found):
      - It's because your EFI is not 200 MB or not an "Apple" original EFI,  but do not worry, try another EFI mounter, or mount from terminal (I used EFI mounter v3: Getting errors, but you can mount and use without problem)
      - You also could "mount" the EFI from Windows:
      1st method: open cmd in administrator mode and type:
      diskpart
      list vol (Now select the "System" volume,(FAT 32) For example I select 4)
      sel vol 4
      list part(Select System type partition, for example 2)
      sel part 2
      assign letter=b(This will "mount" your EFI partition)
      Open Explorer++ or TotalCommander in administrator mode to manage EFI
      remove letter=b (This will "unmount" your EFI)
      2nd method: open cmd in administrator mode and type:
      mountvol b: /s (This will mount your EFI)
      Open Explorer++ or TotalCommander in administrator mode to manage EFI
      mountvol b: /d (This will unmount your EFI)
      Thanks to all OSXLatitude members for helping me out! (Jake Lo, Hervé, Bronxteck, black.dragon74)!
      Notes:
      2019.03.30: Fixed USB 3.0 ports, fixed Bluetooth crashes after sleep -> updated bootpack
      2019.03.28: Updated to 10.14.4. Unexpected crashes while updating to 10.14.4 -> fixed by updating Clover to the latest (v4910) version. Bluetooth crashes appeared -> fixed by downgraded Brcm*.kexts. Updated bootpack.
      2019.02.24: Bluetooth crashes after sleep -> fixed, updated bootpack. 
      2019.02.22: Updated to 10.14.3. Fixed HDMI Audio by installing "FakePCIID_Intel_HDMI_Audio.kext" -> fixed freezing during boot. Fixed brightness levels by installing "AppleBacklightFixup.kext". Also updated bootpack & postinstall zip down in attachments.
      2019.01.21: Removed FakeSMC.kext, SMCHelper-64.efi, replaced by VirtualSMC.kext, VirtualSMC.efi because I got random freezes when booting system (kextd stall[0], (120s): 'AppleACPICPU' -> CPU is at 100%, fans are spinning fast), also updated bootpack in the attachments "acer_aspire_v591g-55tu_clover.zip"-> Freeze continued, brought back FakeSMC, deleted VirtualSMC (caused BT crashes).
      2019.01.18: HDMI Audio is fixed, I didn't do anything HDMI Audio is not fixed, sometimes it worked but most likely not. (no idea why)
      2018.12.09: Updated to 10.14.2 -> did without any complication
      2018.11.28: Fixed combo-jack garbage sound output by installing ALCPlugFix and CodecCommander.kext
      2018.11.01: Updated to 10.14.1 -> HDMI & VGA ports are gone again. -> Fixed by "AppleIntelSKLGraphicsFramebuffer.kext" rollback from 10.14.
      2018.09.28: Updated to Mojave 10.14 -> Fixed HDMI & VGA Outputs by adding "AppleGraphicsDevicePolicy.kext" patches to config.plist, HDMI audio not working
×