How-to: Force nVidia Powermizer performance in Linux

You may wish to force the nVidia Powermizer performance level of your Linux laptop for whatever reason. I do it personally because the nVidia 8400GS in my system can run Compiz-Fusion “OK” at the lowest performance level; thus I get a great animated desktop and retain my battery life!

Edit: Jump to this comment for an alternative way to achieve this.

This is rather simple to achieve, as fortunately the Linux nVidia driver retains a mechanism to read Windows registry values. How do you pass Windows registry values to the nVidia Linux driver? I’m glad you asked! Just like this:

  1.  
  2. Section "Device"
  3.     Identifier     "Videocard0"
  4.     Driver         "nvidia"
  5.     VendorName     "NVIDIA Corporation"
  6.     BoardName      "GeForce 8400M GS"   
  7. # force Powermizer to a certain level at all times
  8. # PLEASE NOTE:
  9. # ENSURE you change the ‘x’ if you copied and pasted to an actual letter ‘x’
  10. # WordPress is doing some funky formatting to change it to a multiplication symbol
  11. # level 0×1 = highest
  12. # level 0×2 = med
  13. # level 0×3 = lowest
  14.     Option  "RegistryDwords"    "PowerMizerLevel=0×3"
  15. EndSection
  16.  

That’s the relevant excerpt from my xorg.conf; it’s simply a matter of defining the “RegistryDword” option under the Device section, and passing in the appropriate arguments. In this case, we want to tell PowerMizerLevel to be a certain value.

You can copy and paste the above code, but you must be mindful of one thing: change the ‘x’ character above to an actual “x” – WordPress is doing some funky auto-formatting to change the character from a regular letter ‘x’ to a multiplication symbol as it lies between two numerals. After you’ve changed it, restart X, start up Compiz-Fusion or another 3D app, and keep a watch on the performance level in the nVidia utility. It doesn’t change!


About this entry