... no es estrictamente necesario modificar el kernel para mejorar el uso de la batería, aunque si ventajoso en la práctica de optimizar la memoria (y en consecuencia...).
El problema es que algunas "tácticas" usadas para el ahorro de batería tienen "consecuencias" negativas. Es decir, puedo ajustar los parametros de mi disco duro con hdparm para que aparque los cabezales del disco duro cada X tiempo que pase sin actividad. Este ajuste supone un importante ahorro de batería pero también un desgaste de la vida del disco duro.
De hecho, en algunos sitios ponían a Windows Vista como asesino de discos duros en portátiles por un agresivo uso del aparcado de cabezales.
Luego, con un poco de maña, puedes hacerte un script para cpufreq que vaya cambiando la frecuencia de la/las cpu según el estado de la batería.
Y para rematar, con el demonio laptop-mode podemos ajustar "millones" de parámetros como activar el modo noatime de todos los sistemas de ficheros cuando estemos con batería o decidir el tamaño del buffer de lectura del disco.
En mi portátil, prefiero sacrificar batería y preservar el vida del disco duro (mi hdparm está en 254). Cuando salgo de casa, tiro de terminal, gnu screen, vi y links -g y mi batería puede durar 4 horas o más