Tweaks To Extend The Battery Life Of Intel Linux Notebooks
While the Linux power consumption may be up on recent kernels depending upon your hardware configuration, there's a few known but not too commonly used tweaks for reducing your system power consumption and extending your battery life when using Intel integrated graphics on your favorite Linux distribution.
Similar to how PCI Express Active-State Power Management (PCI-E ASPM) can be forced by adding "pcie_aspm=force" to your kernel's boot arguments, to bypass the cause of the major Linux kernel power regression due to the ASPM change in Linux 2.6.38, there's separately a number of arguments that can be passed to the open-source Intel Linux DRM kernel driver to reduce the power consumption on that front. These enable power-saving features of the Intel Linux graphics driver that aren't enabled by default at this time, commonly because for some hardware configurations they can cause stability problems or other issues.
i915.i915_enable_rc6=1 - RC6 was enabled by default for a while, but then it ended up being too buggy for some hardware configuration so it had to be disabled. For affected systems on the current code-base, enabling RC6 can cause GPU hangs. The Intel RC6 feature allows the GPU to enter a lower power state when the GPU is idling.
i915.i915_enable_fbc=1 - This kernel option enables FBC (frame-buffer compression) for the Intel graphics driver. Frame-buffer compression is not enabled by default since for some systems when frame-buffer compression is active there is a bug where the screen is not being properly repainted when using a compositing window manager. As implied by the name, frame-buffer compression will compress the buffer of what's to be drawn to the screen so that less memory bandwidth is used on screen refreshes, and as a result, less memory being confused.
i915.lvds_downclock=1 - This kernel option will down-clock the LVDS refresh rate, which can increase power savings as a result. However, for systems that do not properly support LVDS down-clocking, the screen can begin to flicker during use.
These options can be added to GRUB boot-loader when booting the system, to the grub.cfg file to be made permanent, or can be passed if manually loading the Intel i915 kernel module.
If you're not using the Intel Linux graphics driver but another DRM/KMS driver, these options do not carry over to the other Linux drivers.
To show the affect that each of these module options has on the overall system power consumption / battery life, the HP EliteBook was used with Intel Sandy Bridge HD 3000 graphics. An Intel Core i5 2520M quad-core CPU is found in this notebook with 4GB of RAM, and 160GB Intel SSD. An Ubuntu 11.10 snapshot from 22 August was used with the Linux 3.1 kernel Git as of 23 August. Also being built from Git on this Ubuntu 11.10 snapshot was the xf86-video-intel DDX and Mesa 7.12-devel git-8f26b59. The Unity 3D desktop was in use along with X.Org Server 1.10.3 RC2, GCC 4.6.1, and an EXT4 file-system.