Jump to content

nvidia optimus on dsdt


Mohamed Khairy
 Share

24 posts in this topic

Recommended Posts

so now i understood how nvidia optimums work and apple two cards work

 

apple ones every display connector have two pathway one from intel and one from nvidia or amd

 

 

but our nvidia optimus every display receive only one pathway from intel gfx

and nvidia card is connected only to intel gfx

 

it is like some how when you use nvidia card for physx beside amd card

 

so from that to me

 

i mange to remove two connector on nvidia dsdt patch

so now no connectors appear on system from nvidia

then edit power management to manage nvidia gfx card so make card so quiet

 

and then edit connector for intel hd 3000

 

i think this is the best we do with nvidia optimus B)

Link to comment
Share on other sites

i didnt get nvidia optimus to work

there are differnce between hardware of real mac and our notebooks

 

real mac work with mux linking and tried to add mux dsdt part on dsdt of macbookpro 8.2

but kext cant loaded for it as no hardware to load for it

 

 

so if you want to mac nvidia card to work you must port software for it like luinx tool bumblebee

 

and need works above my level

Link to comment
Share on other sites

we could make acpi module like bumblebee in linux and , turn off the nvidia so we can adjust the power management and make the battery last longer , and may be we can cool the cpu a little bit

 

i already did power managment for nvidia card

the fan of the notebook works on relation to cpu temp

on mac the threshold of temp to make fan to work low so fan nearly all the time work but the notebook temp is low

Link to comment
Share on other sites

see

till now the only working for me is intel hd 3000 on notebook screen no vga no hdmi

 

about nvidia card the only i can do to it to make this card identified and kexts loaded but frambuffer for connector wont work as there are changes on pathway from mac

 

and add power managment for card on AGPM kext

 

nothing more i can do for it

 

			<key>MacBookPro8,2</key>
		<dict>
			<key>LogControl</key>
			<integer>1</integer>
			<key>Vendor10deDevice0df5</key>
			<dict>
				<key>BoostPState</key>
				<array>
					<integer>0</integer>
					<integer>1</integer>
					<integer>2</integer>
					<integer>3</integer>
				</array>
				<key>BoostTime</key>
				<array>
					<integer>3</integer>
					<integer>3</integer>
					<integer>3</integer>
					<integer>3</integer>
				</array>
				<key>Heuristic</key>
				<dict>
					<key>ID</key>
					<integer>0</integer>
					<key>IdleInterval</key>
					<integer>250</integer>
					<key>SensorOption</key>
					<integer>1</integer>
					<key>SensorSampleRate</key>
					<integer>4</integer>
					<key>TargetCount</key>
					<integer>1</integer>
					<key>Threshold_High</key>
					<array>
						<integer>57</integer>
						<integer>70</integer>
						<integer>88</integer>
						<integer>100</integer>
					</array>
					<key>Threshold_Low</key>
					<array>
						<integer>0</integer>
						<integer>68</integer>
						<integer>75</integer>
						<integer>95</integer>
					</array>
				</dict>
				<key>control-id</key>
				<integer>17</integer>
			</dict>
			<key>IGPU</key>
			<dict>
				<key>Heuristic</key>
				<dict>
					<key>BusyDownThresholdPercent</key>
					<integer>70</integer>
					<key>BusyUpThresholdPercent</key>
					<integer>90</integer>
					<key>DiagnosticModeDefault</key>
					<integer>0</integer>
					<key>EvaluateDownInterval</key>
					<integer>350000</integer>
					<key>EvaluateUpInterval</key>
					<integer>66000</integer>
					<key>ID</key>
					<integer>2</integer>
					<key>SensorOption</key>
					<integer>1</integer>
				</dict>
				<key>control-id</key>
				<integer>16</integer>
				<key>max-power-state</key>
				<integer>15</integer>
				<key>min-power-state</key>
				<integer>0</integer>
			</dict>
		</dict>

 

i use macbookpro 8.2 smbios

so i eidted info plist of applegraphicspowermanagment.kext on part of macbookpro 8.2

to be like the above code

be sure about your nvidia card id the id above is for my card 525M

<key>Vendor10deDevice0df5</key>

 

nvidia-optimus-mobile,T-C-238224-13.pngnvidia-optimus-mobile,T-A-238222-13.png

Link to comment
Share on other sites

  • 1 month later...

Hi guys, hi Maldon, I was playing with optimus and discovered something:

 

1 - The optimus driver turn the nvidia card on and off by using ACPI CALLS, see here: https://github.com/MrMEEE/bumblebee/blob/ma...acpicall.UBUNTU

 

Every model and combination of chips have a different call, SEE THE FILES OF THE LINUX GUYS: https://github.com/MrMEEE/bumblebee/tree/ma...-files/opensuse

 

2 - I tried to call it in windows using the Everest info program and in linux unsing the bumblebee of the links above __/\ and it worked fine I see the leds changing on every acpi command.

 

3 - I tried to make the call by using the _ON and the _OFF methods of my nvidia GPU but i discovered that it can be done with the _PS0 and _PS3 methods, I tried using this way:

I created a method called PINI like below to turn off the nvidia

 

Method (PINI, 0, NotSerialized)

{

\_SB.PCI0.PEG0.PEGP._PS3 () // Desliga a Nvidia

}

 

and called it like below:

 

Scope (_SB.PCI0)

{

Method (_INI, 0, NotSerialized)

{

PINI ()

... the rest of the method...

 

but it not worked like windows and linux, BUT I am new in this thing of DSDT

 

and I ask all of you what is better to do, make an app that calls the ACPI commands (I think this will be pretty good as we can turn the board ON and OFF by running the program) or make it by dsdt (this I think will be more static) what is better ?

 

thank you all

Link to comment
Share on other sites

  • 3 weeks later...

I experimented based on IDDPioneers work, the problem as i see it is that Intel HD one has priority over the damn nvidia card, with or without DSDT the card is powered and detected, but without nvidia optimus support on real macs, the OS doesn't know how to switch to the other card and power it as main.

 

Note: i frankly don't give a shoe for optimus on mac, i jus want proper GPU support.

Link to comment
Share on other sites

  • 3 weeks later...
  • 1 month later...

In case someone is still watching this topic.

 

I have a Dell l502X, using DSDT i did power the card fully (proper Info is showing in IOReg and PCI Card + the detection of the HDAU part of the Nvidia card). I know that people with modded bioses (that can change in bios the primary card to use) and 3D displays, have nvidia working properly because the system doesn't "load" the IGPU. I tried disabling IGPU via DSDT the same way the nvidia card got powered but i got KP at boot "NO Hpets available .. cpus configured incorectly" this made me think that the modded bios (&3D displays) doesn't actually disable the IGPU but rather hide it from the system so OS X detects only the Nvidia one and loads it properly because atm the IGPU gets in the way and NVDAResman can;t initialize properly (console log: rmStart failed...)

 

A solution would be kext editing i guess.. or managing to HIDE not DISABLE the IGPU using DSDT... if that is possible.

 

More info:

http://www.projectosx.com/forum/index.php?showtopic=2315

  • Like 2
Link to comment
Share on other sites

  • 3 weeks later...

Anyone know if my system contains Optimus?

 

Onboard GFX: Intel HD3000

PCIe: nVidia GeForce GTX 560M

 

I first thought yes, but in the unlocked Bios I have the following options...

PowerXpress Setting

1. Muxed Fixed Scheme

2. Muxless Fixed Scheme

3. Muxless Dynamic Scheme

4. Muxless Fixed and Dynamic Scheme

Primary Display

1. IGFX

2. PEG

3. PCI

4. SG

 

System is an Alienware M17XR3, running 10.7.3 using HD3000. Is it possible if I use "MUXed Fixed Scheme" it can be made to work through DSDT like a real mac? Or is this a red herring?

 

I have no knowledge about how mac does these things.

 

Thanks in advance!

Link to comment
Share on other sites

  • 1 year later...

Hi, guys!

I'm wondering about getting to work nVIDIA Optimus on my Dell Inspiron N5110 laptop, like Mohamed's one with GT 525M 1GB.

I think that it would be good if someone made some Optimus.kext and designed the proper PINI _PS0 and _PS3 methods for nVIDIA card and some workaround for switching IGPU to transit graphics from nVIDIA card.

 

Could any professional do some good job there?

Link to comment
Share on other sites

 Share

×
×
  • Create New...