Jump to content

Disabling NVIDIA Optimus on ASUS U41SV


Ivan92
 Share

2 posts in this topic

Recommended Posts

Hi all

 

I got an ASUS U41SV with a discrete NVIDIA graphics card, and I have reached a solution to disable it in OS X.

 

Spec of the laptop

  • CPU: Intel Core i5-2410M 2.3 GHz
  • Memory: 8GB DDR3 1333 MHz
  • Chipset: Intel HM65
  • Graphics: Intel HD3000 + NVIDIA GeForce GT540M
  • Display: 14" 1366 x 768
  • Audio codec: Realtek ALC269
  • WiFi: Atheros 9285

 

OS X Configuration

  • Niresh's distro of Yosemite
  • A whole SSD reserved for OS X
  • Chameleon bootloader
  • SMBIOS: MacBookPro8,1 (13-inch, Early 2011)
  • Updated to 10.10.1 via App Store

 

Disabling Optimus

 

The guide here does not fit this laptop, but after some modifications, it works on U41SV.

  • I first extracted DSDT under Windows with AIDA64
  • Back to OS X, I used MaciASL to edit the DSDT extracted from Windows
  • At the begging of the file, I added the following line:
// ...
DefinitionBlock ("iASLnv4Cgf.aml", "DSDT", 1, "_ASUS_", "Notebook", 0x00000000)
{

    // the line below was added
    External (\_SB_.PCI0.PEG0.GFX0.SGOF, MethodObj) 

// ...
  • Then I added the following method before Method (_WAK, 1, Serialized)
// ...
    Method (M_OF, 0, NotSerialized)
    {
        If (CondRefOf (\_SB.PCI0.PEG0.GFX0._OFF))
        {
            \_SB.PCI0.PEG0.GFX0._OFF ()
        }

        If (CondRefOf (\_SB.PCI0.PEG0.GFX0._PS3))
        {
            \_SB.PCI0.PEG0.GFX0._PS3 ()
        }

        If (CondRefOf (\_SB.PCI0.PEG0.GFX0.SGOF))
        {
            \_SB.PCI0.PEG0.GFX0.SGOF ()
        }
    }
// ...
  • Then called the method M_OF in the method _WAK
// ...
    Method (_WAK, 1, Serialized)
    {
        M_OF ()  // calling M_OF ()
        WAK (Arg0)
        Return (Package (0x02)
        {
            Zero, 
            Zero
        })
    }
// ...
  • And called the method M_OF again in the method _INI
// ...
   Scope (_SB.PCI0)
    {
        Method (_INI, 0, NotSerialized)
        {
            Store (0x07D0, OSYS)
            M_OF ()  // calling M_OF ()
            If (CondRefOf (\_OSI, Local0))
            {
                If (_OSI ("Linux"))
                {
                    Store (0x03E8, OSYS)
                }
// ...
  • Finally clicked compile in MaciASL, and saved the DSDT as /Extra/DSDT.aml

 

And now NVIDIA Optimus is disabled.

Edit: HDMI output working, VGA untested, able to adjust brightness of built-in display

post-1445095-0-70359500-1418096960_thumb.png

 

And here is my edited DSDT.

ASUS-U41SV-DSDT.aml.zip

 

 

Credits

Thanks to Whit3Spirit for the guide here

  • Like 4
Link to comment
Share on other sites

  • 6 months later...
 Share

×
×
  • Create New...