Categorías
Blog

Solucionando problemas de temperatura y consumo en lenovo X220 con kernels 3.x

Al parecer existe un pequeño «bug» en los kernels posteriores a la versión 3.0 de linux con plataformas Sandy Bridge (i5, i7 y similares). Los sintomas son Alto/altisimo consumo energetico (de 13W hacia arriba incluso en reposo, llegando fácilmente a los 20w). Temperaturas bastante altas en reposo y alta actividad del ventilador , esto último es lo que genera el alto consumo de energia. El ventilador por si solo puede consumir hasta 7w en estado de reposo, eso es una barbaridad y mas teniendo en cuenta que las tasas de consumo de un Thinkpad X220 han de ser menores por ejemplo que las de un x200 (equipado con procesadores core2duo de bajo voltaje). Parece que el problema tiene relación con el chipset gráfico y el driver (i915). La palabra clave es » power regression»

 

http://www.taringa.net/posts/linux/15310475/Power-Regression-en-el-Linux-kernel-3-5.html

Peleando y probando varios kernels parece que el problema no está solventado, he probado la 3.2, 3.4.75 3.12.5 3.12.6 3.10….

incluso la 3.13.rc6…

Así que rebuscando he encontrado un workarround que de momento parece funcionar. Se basa en controlar «manualmente» el ventilador y poner un par de parámetros en el arranque del kernel.

Lo primero es poner el ventilador en manual(mas que manual es en habilitar el control no automático) :

echo "options thinkpad_acpi fan_control=1" | sudo tee /etc/modprobe.d/thinkpad_acpi.conf

lo siguiente es instalar thinkfan.

$ sudo apt-get install thinkfan

Una vez instalado habilitamos el arranque como daemon del mismo

En /etc/default/thinkfan modificamos:
START=yes

Vale, ahora toca configurar thinkfan. Thinkfan es una aplicación que permite controlar el funcionamiento del ventilador en función de las temperaturas captadas por los sensores.

Lo suyo es hacer un $ sudo sensors-detect De esta manera detectaremos los sensores del sistema (la aplicación irá haciendo preguntas, dale a todo que si).

ahora si hacemos: $ find /sys/devices -type f -name "temp*_input"

Sacaremos una lista de sensores disponibles, estos sensores son los que vamos a añadir en /etc/thinkfan.conf , quedando asi:

sensor /sys/devices/virtual/hwmon/hwmon0/temp1_input
sensor /sys/devices/platform/coretemp.0/temp3_input
sensor /sys/devices/platform/coretemp.0/temp1_input
sensor /sys/devices/platform/coretemp.0/temp2_input

Thinkfan trae configurado unos valores de funcionamiento por defecto, yo los he modificado un  poco y de momento me van bien, son estos:

(0,    0,    55)
(1,    55,    65)
(2,    60,    70)
(3,    68,    75)
(6,    70,    85)
(7,    73,    32767)

Lo último es modificar los parametros de arranque del kernel. Para hacer esto tenemos que editar el archivo /etc/default/grub.

Buscamos la variable GRUB_CMDLINE_LINUX_DEFAULT y dejamos la linea como sigue:

GRUB_CMDLINE_LINUX_DEFAULT=»i915.i915_enable_rc6=1 pcie_aspm=force acpi=noirq quiet splash»

El «quiet» y el «splash»  ya estaban tu quizá los tengas o no, lo importante es lo demás.

Reiniciamos y listo.

De momento el consumo ha bajado , las temperaturas también y el rendimiento sigue igual.

Porcierto, para mejorar el consumo (a veces a costa del rendimiento) puedes usar laptop-mode, lo instalas desde apt y se configura en /etc/laptop-mode/laptop-mode.conf, es bastante intuitivo.

Una respuesta a «Solucionando problemas de temperatura y consumo en lenovo X220 con kernels 3.x»

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.