View Single Post
Old 04-18-11, 03:18 AM   #22
Registered User
Join Date: Oct 2010
Posts: 4
Default Re: No Optimus support means NO Nvidia at all or no dynamic switching?

Originally Posted by cedricv View Post
1) no support for dynamic adaptive GPU switching, which is the raison d'etre of Optimus : bringing substantial power savings.
AronP answered this already. There is currently no way to do this. Reason is the architecture of Xorg and the nvidia binary blob. Both would need work to make this possible. Xorg might get the needed bits via a GSOC Project, but it seems nvidia won't make their driver support it before Xorg is up to the task.
Originally Posted by cedricv View Post
2) no support at all, the NVidia GPU is completely OFF and cannot be ever turned ON under Linux.
This depends of the hardware in your Laptop. If the nvidia chip is wired to the display device directly it's useable and you can switch via a reboot between the integrated GPU and the nvidia GPU.

Also most Laptops do not offer a BIOS setting for this any more but use ACPI Calls to switch gpu's. For us End Users this leaves us pretty stranded in the shops because there is no way to tell from the outside (or from inside the BIOS) if a Model will work with both chips. The only way to test this is to prepare yourself a USB stick with a live image that has the nvidia drivers integrated and try to boot it. Laptops with Optimus AND a directly wired nvidia Chip use the nvidia gpu as default in linux. So if you can boot with the Live Medium to Xorg you know that nvidia will work.

To switch between the intel and nvidia gpu's you need to find the used acpi calls. In the model i'm having those calls put the Laptop into 3 different VGA Modes: Mode 1 Activates only the intel GPU and turns the nvidia GPU completly off (it's not visible via lspci and won't draw any power); Mode 2 enables the Nvidia GPU and will turn off the intel GPU (lspci reports only the nvidia gpu in this mode) and finally mode 3 enables both GPU's (this is the traditinal Optimus Mode. Both GPU's are visible via lspci but only the intel GPU is useable and the nvidia chip just draws power and does nothing.

The problem is that no Vendor publishes those acpi calls so you are left to either reverse engineer the published windows binary that does this Mode switching (Reverse Engineering a binary might get yourself into trouble => DMCA!) or dump your DSDT info (via acpidump) into a file and try those 100 of calls until you stumble upon the call that does the magic.

Once you found the magic acpi call you can write yourself a shutdown script that enables the desired GPU for the next boot, prepares the Xorg.conf file and fiddles with the glx libraries.

We managed to get all this in place for the Asus EeePC 1015PN but the principle should work for all laptops with directly wired nvidia chips.

Of course this is only a workaround until Xorg gets the code to use optimus and nvidia decides to extend their binary driver.

Last edited by mtron; 04-19-11 at 03:59 AM.
mtron is offline   Reply With Quote