Monday, 11 October 2010

Howto Linux hybrid graphics on Asus Eee 1215N

One of the hybrid-graphics Launchpad team members has reported about the use of a modified version of acpi_call to swich on/off the nvidia optimus card on the Asus Eee 1215N models:

[Hybrid-graphics-linux] Asus 1215N success

I successfully powered down the Nvidia device in my Asus 1215N.  I modified the apci_call module and created a script to power it off and on.  Here is the github fork:

http://github.com/peberlein/acpi_call


I owe a huge thanks to Mkottman for acpi_call and George Shearer for m11xr2hack.  Those sources were excellent for learning about acpi and buffers.

I modified the acpi_call module to allow byte buffers to be passed as parameters, and also to return the acpi_object result in /proc/acpi/call.  Being able to see the result helped me figure out some of the state in the acpi methods.


The 1215N is similar to the m11x r2 in that it requires a special method (_DSM) being called with buffer arguments before the _PS3 method will turn the power off.   I also found that the _PS0 method turns the power back on.  After turning off the power, the power state appears to be set in the _PSC object: 0x0 when on, and 0x3 when off.  Except this isn't accurate after the system has been put in standby - the power is on (according to the battery rate) but the_PSC is still 0x3.  I have to use the script to turn the power off again after coming out of standby.