Monday, March 31, 2014

[Tutorial] Economizar energía en Linux


Si pueden y quieren no olviden hacer una Donación (por Paypal) para el blog chimbo así podré seguir haciendo gran contenido.


En este post les voy a mostrar algunos consejos que yo uso para poder reducir el consumo de energía en Linux

Bumblebee & Bbswitch (si tienen una tarjeta gráfica con tecnología Optimus)


Primero, antes que nada, si tienen una tarjeta gráfica NVIDIA con tecnología Optimus deben instalar bumblebee y bbswitch.

Estos programas les va a permitir apagar la tarjeta gráfica cuando no está en uso. También les va a permitir prenderla cuando quieran, por ejemplo cuando quieren lanzar juegos.

Por defecto, cuando instalan Linux es su máquina la tarjeta siempre está prendida aunque no esté en uso. Entonces luego de instalar Bumblebee van a ver una gran mejora en el tiempo que dura la carga de su batería (en mi caso fue por lo menos ganar un 50% más).

bumblebee es un "daemon" es decir un programa que se ejecuta cada vez que es llamado automáticamente por el sistema operativo y bbswitch es el módulo del núcleo que es el que se encarga de apagar o prender la tarjeta gráfica. Asegúrense de ver la página de Github sobre el proyecto bbswitch  si les interesa saber como funciona exactamente.

Para instalar los paquetes:

Desde Ubuntu 13.10, bumblebee está en los paquetes oficiales ( las dependencias van a hacer que bbswitch y el driver de NVIDIA se instalen también):

$ sudo apt-get install bumblebee

Si están en Arch deben instalar todo manualmente:

# pacman -S bumblebee bbswitch nvidia

Si tienen intel-dri y xf86-video-intel instalados, deben reinstalar todo junto para que no hayan problemas de conflictos entre intel-dri y nvidia.

También pueden escoger si quieren usar el driver privativo hecho por  NVIDIA o el driver libre Nouveau (xf86-video-nouveau). Puede ser interesante instalar bbswitch-dkms en vez de bbswitch en Arch, de esta forma el módulo del núcleo va a sobrevivir cuando se haga una actualización del núcleo linux.

Si quieren probar que su tarjeta está apagada o prendida pueden usar este comando:

# cat /proc/acpi/bbswitch


Si están en Arch asegúrense de ver la página del ArchWiki sobre Bumblebee, necesitan terminar de configurar bumblebee manualmente para poder usarlo correctamente.

Hace algunos meses hice un post mostrando como se puede usar Bumblebee y como pueden configurar el "bridge" que se usa para lanzar los programas. Si quieren pueden verlo aquí.

Gráficos Intel (jugando con Kernel Mode Settings)


Si no tienen una tarjeta gráfica pero quieren hacer unos pequeños cambios en su sistema, también hay algunas opciones para los gráficos de Intel.

Lo primero que tienen que hacer es cargar el módulo i915 manualmente editando el archivo /etc/mkinitcpio.conf:

# nano /etc/mkinitcpio.conf

Hay una línea donde encontrarán la palabra "MODULES", ahí van a añadir i915.
No estoy muy seguro si esto va a cambiar mucho en su sistema, ya que lo único que hace es iniciar este módulo durante lo que se llama "bootstrap" y no después. A lo mejor ganen milésimas de segundo de arranque.

MODULES="i915"

Luego de que hicieron eso deben regenerar el initramfs:

# mkinitcpio -p linux

Ahora los cambios para poder mejorar el rendimiento: creen o editen el archivo /etc/modprobe.d/i915.conf y añadan esta línea:

options i915 i915_enable_rc6=7 i915_enable_fbc=1 lvds_downclock=1

PowerTOP (analizar su consumo de energía)


PowerTOP es una herramienta interesante que les muestra qué programa o que proceso está consumiendo más energía en su computador.

Pueden instalarlo desde los paquetes oficiales de su distribución seguramente:

$ sudo apt-get install powertop

# pacman -S powertop

Necesitan tener derechos de super usuario para usar esta herramienta:

# powertop

Sin argumentos esta aplicación se parece a la interfaz de top, les muestra en una lista todos los servicios y programas en orden. Pueden cambiar de tabs para ver otras estadísticas como Idle, Device y Frequency.
La interfaz de PowerTOP

Hay algunas opciones interesantes en PowerTOP. Pueden crear un archivo html en el cual habrá un reporte sobre su consumo de energía, pero lo más interesante de esto es que les va a generar una página con todos los scripts que pueden utilizar para mejorar el rendimiento de su batería.

Pero antes de que PowerTOP pueda generar este reporte necesita recolectar datos. Así pueden calibrar esta herramienta con

# powertop --calibrate

Asegúrense de que su laptop está utilizando la batería y dejen a PowerTOP correr por un rato. Cuando el programa muestre la interfaz normal pueden salir de esta y volver a usar su computador. La calibración debería haberse terminado.

Después de que hicieron eso pueden generar el reporte con:

# powertop --html=report.html

Luego pueden consultar el archivo con su navegador favorito.
Un ejemplo del archivo HTML creado por PowerTOP
La primera vez que usen PowerTOP es muy probable que vean que PulseAudio está consumiendo bastante energía.

Pueden crear un archivo de configuración para remediar esto

$ sudo nano /etc/modprobe.d/audio_powersave.conf

Añadan la línea:

options snd_hda_intel power_save=1

Si usan Intel, o : 

options snd_ac97_codec power_save=1

Para ac97.

PowerTOP tiene la habilidad de hacer cambios en sus preferencias para mejorar el rendimiento de su batería. Para eso solo deben usar el comando:

# powertop --auto-tune

Pueden crear un servicio SystemD por ejemplo:

$ sudo nano /etc/systemd/system/powertop.service

[Unit]
Description=Powertop tunings
[Service]
Type=oneshot
RemainAfterExit=no
ExecStart=/usr/bin/powertop --auto-tune
Environment="TERM=xterm"

[Install]
WantedBy=multi-user.target

Después de que lo crearon solo deben habilitarlo:

# systemctl enable powertop.service

TLP


Si no usan SystemD o si su distribución no tiene la última versión de PowerTOP con la opción de "auto tune", pueden usar TLP. Hice un post anterior sobre como instalar TLP en Ubuntu.

Entonces, qué hace TLP? Es una herramienta para gestionar su consumo de energía. Va a cambiar sus preferencias dependiendo de la fuente de poder de su computador. Por ejemplo va a cambiar el gobernador de su CPU cuando estén usando su computador con su batería.

Cuando lo instalen van a tener algunas opciones por defectom que son bastante buenas y van a funcionar. Pero pueden editar las configuraciones como quieran en realidad. Asegúrense de ver la página explicando las diferentes opciones que pueden utilizar. (Requiere un gran conocimiento de Linux en general)

Si quieren instalar TLP en Arch

# pacman -S tlp tlp-rdw 

Si usan un Thinkpad (IBM/Lenovo) necesitan unos paquetes extra

# pacman -S tp_smapi acpi_call

Y para finalizar habilitan los servicios con SystemD

# systemctl enable tlp
# systemctl enable tlp-sleep

Si quieren usar tlp-rdw, necesitan habilitar el dispatcher de Network Manager

# systemctl enable NetworkManager-dispatcher

Si están en Ubuntu:

$ sudo add-apt-repository ppa:linrunner/tlp
$ sudo apt-get update 


Luego instalen los paquetes que necesiten

$ sudo apt-get install tlp tlp-rdw

(si usan un Thinkpad)

$ sudo apt-get install tp-smapi-dkms acpi-call-tools 

Aquí pueden ver como instalar TLP en otras distribuciones.

Si quieren ver las configuraciones de su sistema pueden usar TLP (necesita derechos root)

# tlp stat

Va a hacer un log enorme con toda la información que les puede interesar.
Tal vez sea interesante redirigir la salida hacia un archivo:

# tlp stat > tlpoutput.data

O pueden usar grep para encontrar una línea específica, como por ejemplo saber en qué modo está TLP en este momento?

# tlp stat | grep "TLP power save"
La primeras líneas de TLP stat

Les gustó este post? No se olviden de agregarme a sus círculos en G+ o de seguirme en Twitter: @RobertoXMed

Si pueden y quieren no olviden hacer una Donación (por Paypal) para el blog chimbo así podré seguir haciendo gran contenido.

No comments:

Post a Comment