NetBSD-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

A kernel module to disable nvidia/intel optimus graphics card


the nvidia/intel optimus cards built into many laptops can be used
with the intel driver but the second unused nvidia card causes a
lot of heat and power drain. Jukka Ruohonen explained how to switch
this off with a kernel module. On my system small changes were 
necessary, which I would like to document to help other users
of this graphic card. The basis is Jukka's small howto in:

My laptop is an Asus R503V i3 with a Geforce 610M (X55VD 1.0 in dmesg).
The relevant parts about the graphic cards in dmesg are

acpivga0 at acpi0 (PEGP): ACPI Display Adapter
acpivga1 at acpi0 (GFX0): ACPI Display Adapter
vga0 at pci0 dev 2 function 0: vendor 0x8086 product 0x0166 (rev. 0x09)

In Jukka's nvidia.c I had to change the two defines 

#define NVIDIA_ON "\\_SB.PCI0.PEG1.GFX0._ON"
#define NVIDIA_OFF "\\_SB.PCI0.PEG1.GFX0._OFF"


#define NVIDIA_ON "\\_SB.PCI0.PEG0.PEGP._ON"

I deduced this by running  acpidump -dt | less  as root and searching
for the string '_OFF'. All other occurences have no connection with
graphic cards and PEGP is the ACPI name shown in the dmesg line for 
acpivga0. I am sure this will be different on other systems, but this
should lead your way.

After building the module nvidia.kmod do a  modload ./nvidia.kmod
and within seconds the fan will begin to slow down as the temperature
lowers. envstat shows only a slight decrease of temperatures by about
8 degrees in my case, but the fans are no longer running at high speed
to cool the system.  

Thank you Jukka! No more noise and heat on my system.


Home | Main Index | Thread Index | Old Index