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»
[…] # Thinkfan Seguir este artículo […]