Whit3Spirit Posted May 9, 2014 Author Share Posted May 9, 2014 No methods working under osx 10.9.2 even the DSDT method... you know that ? Link to comment https://www.insanelymac.com/forum/topic/295584-disabling-nvidia-optimus-card-on-all-laptops/page/4/#findComment-2018300 Share on other sites More sharing options...
RehabMan Posted May 9, 2014 Share Posted May 9, 2014 SSDT method don't work with my laptop. I have the _INI method in the _SB scope. Read post #74 carefully. No methods working under osx 10.9.2 even the DSDT method... you know that ? On the contrary. I know of several examples of people using my method to disable discrete cards on 10.9.2. It is a very detail oriented task, however. One detail wrong, and it won't work... with little indication as to what the mistake is. Link to comment https://www.insanelymac.com/forum/topic/295584-disabling-nvidia-optimus-card-on-all-laptops/page/4/#findComment-2018303 Share on other sites More sharing options...
pokenguyen Posted May 9, 2014 Share Posted May 9, 2014 Read post #74 carefully. On the contrary. I know of several examples of people using my method to disable discrete cards on 10.9.2. It is a very detail oriented task, however. One detail wrong, and it won't work... with little indication as to what the mistake is. Agree, I always use ssdt/dsdt manually patching method and it works on tons of laptops: hp, asus, dell, acer, etc... I only need to repatch them after BIOS update. Also, it's easy: use "iasl -da *.aml", then add _off to _ini. Link to comment https://www.insanelymac.com/forum/topic/295584-disabling-nvidia-optimus-card-on-all-laptops/page/4/#findComment-2018308 Share on other sites More sharing options...
RehabMan Posted May 9, 2014 Share Posted May 9, 2014 ... Also, it's easy: use "iasl -da *.aml", then add _off to _ini. Yes, it is easy in concept. It is the details that trip people up. Details: - you must find the appropriate _INI method (the _INI on a device related to your discrete card... the one with _OFF) - older machines do not have _OFF but contain similar methods... you have to search for them (use your brain) - errors are reduced with 'iasl -da' but you may still have errors... fix them prior to applying patches - even after your files are patched, errors corrected, if you open the patched/compiled .aml files, your errors may come back. The errors are not real, as they are created by the disassembly process. Always disassemble in a group with 'iasl -da' - edit the resulting .dsl files, not .aml files when making changes - save the resulting files as .aml files (format: ACPI Machine Language Binary). Not surprisingly, AppleACPIPlatform does not like loading text files into ACPI. - if you rename devices in DSDT, you must do the same rename in all SSDTs you plan on loading (eg. GFX0->IGPU, B0D3->HDAU must be done universally) - SSDTs that contain duplicate method (any duplicate object, actually) definitions will be thrown away (eg. DTGP can be defined only in one place; best not to use DTGP) - SSDTs must be placed where the bootloader will load them. Chameleon, in Extra: SSDT.aml, SSDT-1.aml, SSDT-2.aml, no gaps in the numbers (Chameleon stops at first file not found... at first gap). Clover, in EFI/CLOVER/ACPI/patched, SSDT.aml, SSDT-? (where ? is a digit), gaps in the numbers allowed. - you must drop each OEM SSDT you are patching. Best strategy: drop them all, add the ones you need (patched or not patched) - some people experience problems with sleep/restart/shutdown when the discrete card is left in the off state... call _ON from DSDT _PTS and _OFF from DSDT _WAK. Use External to access the methods from DSDT. You must refer to the actual path (eg. _SB.PCI0.PEGP.PEG0._OFF) - if the device with _INI in it (eg. PEG0.PEGP) is not active, OS X will not call _INI. An inactive device is one that returns Zero from _STA. Usually points to other issues with DSDT... - if you upgrade hardware or BIOS, you must repeat the process... Having a basic understanding of ACPI, ACPI namespace, how SSDTs are loaded, goes a long way. One way to troubleshoot an issue is to extract all *patched* DSDT/SSDTs *binaries* from your running system (from ioreg). Then disassemble them with 'iasl -da'. If iasl finds errors in loading all your DSDT/SSDTs into a namespace, so will OS X have the same problems. 2 Link to comment https://www.insanelymac.com/forum/topic/295584-disabling-nvidia-optimus-card-on-all-laptops/page/4/#findComment-2018310 Share on other sites More sharing options...
Whit3Spirit Posted May 10, 2014 Author Share Posted May 10, 2014 DSDT for ASUS N56vz with Optimus removed : https://www.dropbox.com/s/4et2tbbxwy35ud8/DSDT%20ASUS%20N56vz.aml I post it because this DSDT don't need external link. _OFF and _ON method are in DSDT. Link to comment https://www.insanelymac.com/forum/topic/295584-disabling-nvidia-optimus-card-on-all-laptops/page/4/#findComment-2018575 Share on other sites More sharing options...
RehabMan Posted May 11, 2014 Share Posted May 11, 2014 Just out of interest, and I apologise for off topic, but, does the _ON/_OFF method work for iGPU as well. I'm pretty sure it is not there at all... Optimus and other dual graphics technologies on PCs (aka. "switching") work by having the discrete card "go through" the integrated chip's framebuffer/hardware. So the IGPU is the conduit for everything going to the display. Turning it off doesn't make any sense because then neither would work. At least that is my basic understanding. I'm a software guy not a hardware guy, so I'm probably leaving out some valuable information or am off on the technical details. Link to comment https://www.insanelymac.com/forum/topic/295584-disabling-nvidia-optimus-card-on-all-laptops/page/4/#findComment-2018587 Share on other sites More sharing options...
pokenguyen Posted May 11, 2014 Share Posted May 11, 2014 DSDT for ASUS N56vz with Optimus removed : https://www.dropbox.com/s/4et2tbbxwy35ud8/DSDT%20ASUS%20N56vz.aml I post it because this DSDT don't need external link. _OFF and _ON method are in DSDT. Most Haswell laptops have _OFF in SSDT. Link to comment https://www.insanelymac.com/forum/topic/295584-disabling-nvidia-optimus-card-on-all-laptops/page/4/#findComment-2018592 Share on other sites More sharing options...
RehabMan Posted May 11, 2014 Share Posted May 11, 2014 Thanks for info, still off topic, I have my MB via VGA with iGPU (G1610) and HD7750 via DVI to ONE monitor, just trying to figure out how to switch from VGA to DVI without the manual switch on monitor. As per my post VGA and DVI using single monitor Just want to know if this is possible with DSDT edit. Any info appreciated. I don't think you're going to solve that with ACPI. Celeron integrated graphics aren't even supported by OS X. Is there a driver loading for it? Link to comment https://www.insanelymac.com/forum/topic/295584-disabling-nvidia-optimus-card-on-all-laptops/page/4/#findComment-2018597 Share on other sites More sharing options...
Whit3Spirit Posted May 11, 2014 Author Share Posted May 11, 2014 Topic edited in information about patch, i make the patch for MaciASL and Chameleon Wizard next week. Link to comment https://www.insanelymac.com/forum/topic/295584-disabling-nvidia-optimus-card-on-all-laptops/page/4/#findComment-2018638 Share on other sites More sharing options...
webcivilian Posted May 13, 2014 Share Posted May 13, 2014 Why do you have both calls? \_SB_.PCI0.PEG0.PEGP._ON()\_SB_.PCI0.PEG0.PEGP._PS0() Shouldn't it just work with either? Link to comment https://www.insanelymac.com/forum/topic/295584-disabling-nvidia-optimus-card-on-all-laptops/page/4/#findComment-2019099 Share on other sites More sharing options...
Whit3Spirit Posted May 13, 2014 Author Share Posted May 13, 2014 PS0 is for PState, this is just to be sure everything is disabled. I know it's just work with _OFF or just with _PS3 but like that i'm very sure Link to comment https://www.insanelymac.com/forum/topic/295584-disabling-nvidia-optimus-card-on-all-laptops/page/4/#findComment-2019142 Share on other sites More sharing options...
artimess Posted May 19, 2014 Share Posted May 19, 2014 Could you please look at my DSDT and tell me what is wrong?. First I tried you M_OFF and M_ON method. Did not work and I looked at your own dsdt with Otimus disabled. Noticed you are using another technique PINI, I tried that one two with no success. In the enclosed zip you will find my dsdt; ssdt and ioreg dump. Do apprecite your help Thanks Artimess OptimusDisable.zip Link to comment https://www.insanelymac.com/forum/topic/295584-disabling-nvidia-optimus-card-on-all-laptops/page/4/#findComment-2020746 Share on other sites More sharing options...
RehabMan Posted May 19, 2014 Share Posted May 19, 2014 Could you please look at my DSDT and tell me what is wrong?. First I tried you M_OFF and M_ON method. Did not work and I looked at your own dsdt with Otimus disabled. Noticed you are using another technique PINI, I tried that one two with no success. In the enclosed zip you will find my dsdt; ssdt and ioreg dump. Do apprecite your help Thanks Artimess In DSDT, _SB.PCI0.GFX0 is renamed to _SB.PCI0.IGPU, but not in SSDT2. Link to comment https://www.insanelymac.com/forum/topic/295584-disabling-nvidia-optimus-card-on-all-laptops/page/4/#findComment-2020760 Share on other sites More sharing options...
artimess Posted May 19, 2014 Share Posted May 19, 2014 In DSDT, _SB.PCI0.GFX0 is renamed to _SB.PCI0.IGPU, but not in SSDT2. I see, but the problem is SSDT2 gives lots of compile error! Is this normal? Could I please ask you give me some hint, I do not know even where to start. I wanted to copy paste the errors here are some of the errors! What i did was use Macaisl to generate the ssdt and compile it and here is the result! Thanks for your help. Artimess 5/19/14, 9:13:50 PM, Pass 2 parse of [sSDT] 5/19/14, 9:13:50 PM, Parsing Deferred Opcodes (Methods/Buffers/Packages/Regions) 5/19/14, 9:13:50 PM, ........................ 5/19/14, 9:13:50 PM, Parsing completed 5/19/14, 9:13:50 PM, Disassembly completed, written to "iASLVPpaKa.dsl" 5/19/14, 9:15:47 PM, iASLCRH0XG.dsl(30) : Error 4065 - Object not found or not accessible from scope (DGEN) 5/19/14, 9:15:47 PM, iASLCRH0XG.dsl(128) : Error 4096 - syntax error, unexpected PARSEOP_FIELD 5/19/14, 9:15:47 PM, iASLCRH0XG.dsl(132) : Error 4064 - Object does not exist (BPCI) 5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(194) : Error 4064 - Object does not exist (_PSC) 5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(197) : Error 4064 - Object does not exist (\_SB.PCI0.P0P2.PEGP._ON) 5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(204) : Error 4064 - Object does not exist (_PSC) 5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(209) : Error 4064 - Object does not exist (OPCE) 5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(213) : Error 4064 - Object does not exist (\_SB.PCI0.P0P2.PEGP._OFF) 5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(217) : Error 4064 - Object does not exist (OPCE) 5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(220) : Error 4064 - Object does not exist (_PSC) 5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(371) : Remark 5111 - Use of compiler reserved name (_T_0) 5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(384) : Error 4064 - Object does not exist (\_SB.PCI0.P0P2.PEGP.GOBT) 5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(403) : Error 4064 - Object does not exist (OPCE) 5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(414) : Error 4064 - Object does not exist (OPCM) 5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(449) : Error 4068 - Object is not accessible from this scope (LLGE) 5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(450) : Error 4068 - Object is not accessible from this scope (LGGE) 5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(451) : Error 4068 - Object is not accessible from this scope (PEPO) 5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(452) : Error 4068 - Object is not accessible from this scope (ROE0) 5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(453) : Error 4068 - Object is not accessible from this scope (ROE1) 5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(454) : Error 4068 - Object is not accessible from this scope (ROE2) 5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(455) : Error 4068 - Object is not accessible from this scope (ROE3) 5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(456) : Error 4068 - Object is not accessible from this scope (ROE4) 5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(457) : Error 4068 - Object is not accessible from this scope (ROE5) 5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(458) : Error 4068 - Object is not accessible from this scope (ROE6) 5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(459) : Error 4068 - Object is not accessible from this scope (ROE7) 5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(460) : Error 4068 - Object is not accessible from this scope (ROE8) 5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(461) : Error 4068 - Object is not accessible from this scope (ROE9) 5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(462) : Error 4068 - Object is not accessible from this scope (ROEA) 5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(463) : Error 4068 - Object is not accessible from this scope (ROEB) 5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(464) : Error 4068 - Object is not accessible from this scope (ROEC) 5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(465) : Error 4068 - Object is not accessible from this scope (ROED) 5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(466) : Error 4068 - Object is not accessible from this scope (ROEE) 5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(467) : Error 4068 - Object is not accessible from this scope (ROEF) 5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(468) : Error 4068 - Object is not accessible from this scope (PCGE) 5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(469) : Error 4068 - Object is not accessible from this scope (HCLQ) 5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(470) : Error 4068 - Object is not accessible from this scope (PEDQ) 5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(471) : Error 4068 - Object is not accessible from this scope (LNKD) 5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(472) : Error 4068 - Object is not accessible from this scope (LLGE) 5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(473) : Error 4068 - Object is not accessible from this scope (LGGE) 5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(479) : Error 4068 - Object is not accessible from this scope (LNKS) 5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(487) : Error 4064 - Object does not exist (VGAR) 5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(494) : Error 4064 - Object does not exist (VGAR) 5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(496) : Error 4068 - Object is not accessible from this scope (LLGE) 5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(497) : Error 4068 - Object is not accessible from this scope (LGGE) 5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(498) : Error 4068 - Object is not accessible from this scope (LNKD) 5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(499) : Error 4068 - Object is not accessible from this scope (LNKS) 5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(504) : Error 4068 - Object is not accessible from this scope (PEDQ) 5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(505) : Error 4068 - Object is not accessible from this scope (LNKD) 5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(506) : Error 4068 - Object is not accessible from this scope (PIDQ) 5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(511) : Error 4068 - Object is not accessible from this scope (PCGE) 5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(512) : Error 4068 - Object is not accessible from this scope (HCLQ) 5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(513) : Error 4068 - Object is not accessible from this scope (PEPO) 5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(514) : Error 4068 - Object is not accessible from this scope (ROE0) 5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(515) : Error 4068 - Object is not accessible from this scope (ROE1) 5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(516) : Error 4068 - Object is not accessible from this scope (ROE2) 5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(517) : Error 4068 - Object is not accessible from this scope (ROE3) 5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(518) : Error 4068 - Object is not accessible from this scope (ROE4) 5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(519) : Error 4068 - Object is not accessible from this scope (ROE5) 5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(520) : Error 4068 - Object is not accessible from this scope (ROE6) 5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(521) : Error 4068 - Object is not accessible from this scope (ROE7) 5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(522) : Error 4068 - Object is not accessible from this scope (ROE8) 5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(523) : Error 4068 - Object is not accessible from this scope (ROE9) 5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(524) : Error 4068 - Object is not accessible from this scope (ROEA) 5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(525) : Error 4068 - Object is not accessible from this scope (ROEB) 5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(526) : Error 4068 - Object is not accessible from this scope (ROEC) 5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(527) : Error 4068 - Object is not accessible from this scope (ROED) 5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(528) : Error 4068 - Object is not accessible from this scope (ROEE) 5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(529) : Error 4068 - Object is not accessible from this scope (ROEF) 5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(530) : Error 4068 - Object is not accessible from this scope (LLGE) 5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(531) : Error 4068 - Object is not accessible from this scope (LGGE) 5/19/14, 9:15:48 PM, iASLCRH0XG.dsl(538) : Error 4096 - syntax error, unexpected PARSEOP_SCOPE, expecting $end 5/19/14, 9:15:48 PM, ASL Input: iASLCRH0XG.dsl - 539 lines, 19234 bytes, 214 keywords 5/19/14, 9:15:48 PM, Compilation complete. 70 Errors, 0 Warnings, 1 Remarks, 0 Optimizations 5/19/14, 9:16:47 PM, Loading Acpi table from file iASLEpFLS0.aml 5/19/14, 9:16:47 PM, Acpi table [sSDT] successfully installed and loaded 5/19/14, 9:16:47 PM, Pass 1 parse of [sSDT] 5/19/14, 9:16:47 PM, Pass 2 parse of [sSDT] 5/19/14, 9:16:47 PM, Parsing Deferred Opcodes (Methods/Buffers/Packages/Regions) 5/19/14, 9:16:47 PM, ........................ 5/19/14, 9:16:47 PM, Parsing completed 5/19/14, 9:16:47 PM, Found 2 external control methods, reparsing with new information 5/19/14, 9:16:47 PM, Pass 1 parse of [sSDT] 5/19/14, 9:16:47 PM, Pass 2 parse of [sSDT] 5/19/14, 9:16:47 PM, Parsing Deferred Opcodes (Methods/Buffers/Packages/Regions) 5/19/14, 9:16:47 PM, ........................ 5/19/14, 9:16:47 PM, Parsing completed 5/19/14, 9:16:47 PM, Disassembly completed, written to "iASLEpFLS0.dsl" 5/19/14, 9:16:53 PM, iASL4gXWsX.dsl(30) : Error 4065 - Object not found or not accessible from scope (DGEN) 5/19/14, 9:16:53 PM, iASL4gXWsX.dsl(128) : Error 4096 - syntax error, unexpected PARSEOP_FIELD 5/19/14, 9:16:53 PM, iASL4gXWsX.dsl(132) : Error 4064 - Object does not exist (BPCI) 5/19/14, 9:16:53 PM, iASL4gXWsX.dsl(194) : Error 4064 - Object does not exist (_PSC) 5/19/14, 9:16:53 PM, iASL4gXWsX.dsl(197) : Error 4064 - Object does not exist (\_SB.PCI0.P0P2.PEGP._ON) 5/19/14, 9:16:53 PM, iASL4gXWsX.dsl(204) : Error 4064 - Object does not exist (_PSC) 5/19/14, 9:16:53 PM, iASL4gXWsX.dsl(209) : Error 4064 - Object does not exist (OPCE) 5/19/14, 9:16:53 PM, iASL4gXWsX.dsl(213) : Error 4064 - Object does not exist (\_SB.PCI0.P0P2.PEGP._OFF) 5/19/14, 9:16:53 PM, iASL4gXWsX.dsl(217) : Error 4064 - Object does not exist (OPCE) 5/19/14, 9:16:53 PM, iASL4gXWsX.dsl(220) : Error 4064 - Object does not exist (_PSC) 5/19/14, 9:16:53 PM, iASL4gXWsX.dsl(371) : Remark 5111 - Use of compiler reserved name (_T_0) 5/19/14, 9:16:53 PM, iASL4gXWsX.dsl(384) : Error 4064 - Object does not exist (\_SB.PCI0.P0P2.PEGP.GOBT) 5/19/14, 9:16:53 PM, iASL4gXWsX.dsl(403) : Error 4064 - Object does not exist (OPCE) 5/19/14, 9:16:53 PM, iASL4gXWsX.dsl(414) : Error 4064 - Object does not exist (OPCM) 5/19/14, 9:16:53 PM, iASL4gXWsX.dsl(449) : Error 4068 - Object is not accessible from this scope (LLGE) 5/19/14, 9:16:53 PM, iASL4gXWsX.dsl(450) : Error 4068 - Object is not accessible from this scope (LGGE) 5/19/14, 9:16:53 PM, iASL4gXWsX.dsl(451) : Error 4068 - Object is not accessible from this scope (PEPO) 5/19/14, 9:16:53 PM, iASL4gXWsX.dsl(452) : Error 4068 - Object is not accessible from this scope (ROE0) 5/19/14, 9:16:53 PM, iASL4gXWsX.dsl(453) : Error 4068 - Object is not accessible from this scope (ROE1) 5/19/14, 9:16:53 PM, iASL4gXWsX.dsl(454) : Error 4068 - Object is not accessible from this scope (ROE2) 5/19/14, 9:16:53 PM, iASL4gXWsX.dsl(455) : Error 4068 - Object is not accessible from this scope (ROE3) 5/19/14, 9:16:53 PM, iASL4gXWsX.dsl(456) : Error 4068 - Object is not accessible from this scope (ROE4) 5/19/14, 9:16:53 PM, iASL4gXWsX.dsl(457) : Error 4068 - Object is not accessible from this scope (ROE5) 5/19/14, 9:16:53 PM, iASL4gXWsX.dsl(458) : Error 4068 - Object is not accessible from this scope (ROE6) 5/19/14, 9:16:53 PM, iASL4gXWsX.dsl(459) : Error 4068 - Object is not accessible from this scope (ROE7) 5/19/14, 9:16:53 PM, iASL4gXWsX.dsl(460) : Error 4068 - Object is not accessible from this scope (ROE8) 5/19/14, 9:16:53 PM, iASL4gXWsX.dsl(461) : Error 4068 - Object is not accessible from this scope (ROE9) 5/19/14, 9:16:53 PM, iASL4gXWsX.dsl(462) : Error 4068 - Object is not accessible from this scope (ROEA) 5/19/14, 9:16:53 PM, iASL4gXWsX.dsl(463) : Error 4068 - Object is not accessible from this scope (ROEB) 5/19/14, 9:16:53 PM, iASL4gXWsX.dsl(464) : Error 4068 - Object is not accessible from this scope (ROEC) Link to comment https://www.insanelymac.com/forum/topic/295584-disabling-nvidia-optimus-card-on-all-laptops/page/4/#findComment-2020775 Share on other sites More sharing options...
RehabMan Posted May 19, 2014 Share Posted May 19, 2014 I see, but the problem is SSDT2 gives lots of compile error! Is this normal? Could I please ask you give me some hint, I do not know even where to start. I wanted to copy paste the errors here are some of the errors! What i did was use Macaisl to generate the ssdt and compile it and here is the result! Thanks for your help. Artimess Disassemble your SSDT correctly and you likely will not have so many errors... Collect all native DSDT/SSDT, place in single directory, then use 'iasl -da *.aml' in Terminal to disassemble them as a group. Work with the resulting .dsl files. This has been discussed in this thread quite a bit... Link to comment https://www.insanelymac.com/forum/topic/295584-disabling-nvidia-optimus-card-on-all-laptops/page/4/#findComment-2020777 Share on other sites More sharing options...
artimess Posted May 19, 2014 Share Posted May 19, 2014 Disassemble your SSDT correctly and you likely will not have so many errors... Collect all native DSDT/SSDT, place in single directory, then use 'iasl -da *.aml' in Terminal to disassemble them as a group. Work with the resulting .dsl files. This has been discussed in this thread quite a bit... Thanks I will do, which compiler you think I should use? there so many floating around? A url would be appreciated. Artimess Link to comment https://www.insanelymac.com/forum/topic/295584-disabling-nvidia-optimus-card-on-all-laptops/page/4/#findComment-2020783 Share on other sites More sharing options...
RehabMan Posted May 19, 2014 Share Posted May 19, 2014 Thanks I will do, which compiler you think I should use? there so many floating around? A url would be appreciated. Artimess I build my own from (slightly modified) Intel sources: https://github.com/RehabMan/acpica Link to comment https://www.insanelymac.com/forum/topic/295584-disabling-nvidia-optimus-card-on-all-laptops/page/4/#findComment-2020784 Share on other sites More sharing options...
Whit3Spirit Posted May 19, 2014 Author Share Posted May 19, 2014 Hi, try with that : https://www.dropbox.com/s/54lueabwxkl9nqr/DSDT%28artimess%29.aml Link to comment https://www.insanelymac.com/forum/topic/295584-disabling-nvidia-optimus-card-on-all-laptops/page/4/#findComment-2020795 Share on other sites More sharing options...
artimess Posted May 19, 2014 Share Posted May 19, 2014 Hi, try with that : https://www.dropbox.com/s/54lueabwxkl9nqr/DSDT%28artimess%29.aml First do appreciate your help. But it did not work... I am really puzzled why it does not ... Any other suggestion? Link to comment https://www.insanelymac.com/forum/topic/295584-disabling-nvidia-optimus-card-on-all-laptops/page/4/#findComment-2020812 Share on other sites More sharing options...
RehabMan Posted May 19, 2014 Share Posted May 19, 2014 First do appreciate your help. But it did not work... I am really puzzled why it does not ... Any other suggestion? Verify that the code is being executed as you think it should. Use ACPIDebug: https://github.com/RehabMan/OS-X-ACPI-Debug Link to comment https://www.insanelymac.com/forum/topic/295584-disabling-nvidia-optimus-card-on-all-laptops/page/4/#findComment-2020813 Share on other sites More sharing options...
artimess Posted May 19, 2014 Share Posted May 19, 2014 Verify that the code is being executed as you think it should. Use ACPIDebug: https://github.com/RehabMan/OS-X-ACPI-Debug Thanks, I will do it. It is midnight here, Will try tracing it tomorrow... Will post the result. And by the way I built your version of the compiler and thank again. Link to comment https://www.insanelymac.com/forum/topic/295584-disabling-nvidia-optimus-card-on-all-laptops/page/4/#findComment-2020816 Share on other sites More sharing options...
artimess Posted May 20, 2014 Share Posted May 20, 2014 Verify that the code is being executed as you think it should. Use ACPIDebug: https://github.com/RehabMan/OS-X-ACPI-Debug Hi RehabMan, I used your ACPIDebug test and here is the result. It seems it calls _OFF but it never gets back! May 20 21:55:13 localhost kernel[0]: ACPIDebug: Version 0.1.0 starting May 20 21:55:13 localhost kernel[0]: ACPIDebug: "In _INI before call to PINI" May 20 21:55:13 localhost kernel[0]: ACPIDebug: "Entering PINI" May 20 21:55:13 localhost kernel[0]: ACPIDebug: "In PINI, before call to _OFF" And here is my PINI code: Method (PINI, 0, NotSerialized) { \RMDT.PUSH ("Entering PINI") If (CondRefOf (\_SB.PCI0.P0P2.PEGP._OFF)) { \RMDT.PUSH ("In PINI, before call to _OFF") \_SB.PCI0.P0P2.PEGP._OFF (\RMDT.PUSH ("In PINI, after call to _OFF")) } If (CondRefOf (\_SB.PCI0.P0P2.PEGP._PS3)) { \RMDT.PUSH ("In PINI, _PS3") \_SB.PCI0.P0P2.PEGP._PS3 () } \RMDT.PUSH ("Exiting PINI") } Any thoughts? Link to comment https://www.insanelymac.com/forum/topic/295584-disabling-nvidia-optimus-card-on-all-laptops/page/4/#findComment-2021029 Share on other sites More sharing options...
keiner99 Posted May 20, 2014 Share Posted May 20, 2014 can someone help me to patch my DSDT? i use a intel hd 3000 and a nvidia gt610m! when i patch the dsdt with chameleon i got these errors: /Users/PC/cw_dsdt/dsdt.dsl 3782: \_SB.PCI0.PEG0.PEGP._ON (\_SB.PCI0.PEG0.PEGP._PS0 ()) Error 4084 - Object does not exist ^ (\_SB.PCI0.PEG0.PEGP._ON) /Users/PC/cw_dsdt/dsdt.dsl 3782: \_SB.PCI0.PEG0.PEGP._ON (\_SB.PCI0.PEG0.PEGP._PS0 ()) Error 4084 - Object does not exist ^ (\_SB.PCI0.PEG0.PEGP._PS0) /Users/PC/cw_dsdt/dsdt.dsl 3790: \_SB.PCI0.PEG0.PEGP._OFF (\_SB.PCI0.PEG0.PEGP._PS3 ()) Error 4084 - Object does not exist ^ (\_SB.PCI0.PEG0.PEGP._OFF) /Users/PC/cw_dsdt/dsdt.dsl 3790: \_SB.PCI0.PEG0.PEGP._OFF (\_SB.PCI0.PEG0.PEGP._PS3 ()) Error 4084 - Object does not exist ^ (\_SB.PCI0.PEG0.PEGP._PS3) attached is my DSDT! thank you DSDT.aml.zip Link to comment https://www.insanelymac.com/forum/topic/295584-disabling-nvidia-optimus-card-on-all-laptops/page/4/#findComment-2021032 Share on other sites More sharing options...
RehabMan Posted May 20, 2014 Share Posted May 20, 2014 Hi RehabMan, I used your ACPIDebug test and here is the result. It seems it calls _OFF but it never gets back! May 20 21:55:13 localhost kernel[0]: ACPIDebug: Version 0.1.0 starting May 20 21:55:13 localhost kernel[0]: ACPIDebug: "In _INI before call to PINI" May 20 21:55:13 localhost kernel[0]: ACPIDebug: "Entering PINI" May 20 21:55:13 localhost kernel[0]: ACPIDebug: "In PINI, before call to _OFF" And here is my PINI code: Method (PINI, 0, NotSerialized) { \RMDT.PUSH ("Entering PINI") If (CondRefOf (\_SB.PCI0.P0P2.PEGP._OFF)) { \RMDT.PUSH ("In PINI, before call to _OFF") \_SB.PCI0.P0P2.PEGP._OFF (\RMDT.PUSH ("In PINI, after call to _OFF")) } If (CondRefOf (\_SB.PCI0.P0P2.PEGP._PS3)) { \RMDT.PUSH ("In PINI, _PS3") \_SB.PCI0.P0P2.PEGP._PS3 () } \RMDT.PUSH ("Exiting PINI") } Any thoughts? This construct... \_SB.PCI0.P0P2.PEGP._OFF (\RMDT.PUSH ("In PINI, after call to _OFF")) ... doesn't make any sense. I'm assuming it is due to incorrect disassembly, not how you wrote it and that you actually wrote: \_SB.PCI0.P0P2.PEGP._OFF () \RMDT.PUSH ("In PINI, after call to _OFF") In which case... it seems your \_SB.PCI0.POP2.PEGP._OFF is aborting (because we never see 'Exiting PINI'). Add additional traces there to see where/why... Link to comment https://www.insanelymac.com/forum/topic/295584-disabling-nvidia-optimus-card-on-all-laptops/page/4/#findComment-2021051 Share on other sites More sharing options...
artimess Posted May 20, 2014 Share Posted May 20, 2014 This construct... \_SB.PCI0.P0P2.PEGP._OFF (\RMDT.PUSH ("In PINI, after call to _OFF")) ... doesn't make any sense. I'm assuming it is due to incorrect disassembly, not how you wrote it and that you actually wrote: \_SB.PCI0.P0P2.PEGP._OFF () \RMDT.PUSH ("In PINI, after call to _OFF") In which case... it seems your \_SB.PCI0.POP2.PEGP._OFF is aborting (because we never see 'Exiting PINI'). Add additional traces there to see where/why... Yes it is the disassembling problem. My challenge is to get SSDTs compiled... Even disassembling with -da *.aml leaves errors... I am working on it, let you know if I ever succeed. Link to comment https://www.insanelymac.com/forum/topic/295584-disabling-nvidia-optimus-card-on-all-laptops/page/4/#findComment-2021056 Share on other sites More sharing options...
Recommended Posts