Thinkpad e problemas de temperatura

132111705_624Há algum tempo atrás meu notebook (Thinkpad X201) contava com um disco rígido tradicional de 320Gb e 5400rpm. Desde que troquei-o por um disco SSD tive um enorme ganho de performance, foi uma troca que valeu muito o investimento.

Porém, agora quando eu preciso realizar algumas tarefas mais intensas e que demandam mais acessos a disco, passei a ter algumas dificuldades com a temperatura do meu notebook (que chegou a desligar diversas vezes).
Não que o SSD seja “culpado” pelo excesso de aquecimento, mas acho que o disco anterior era lento demais e, ao trocá-lo, passei a ter um disco que consegue responder melhor às minhas necessidades técnicas de processamento. Mas é claro que isso acaba por gerar outras externalidades, como o aquecimento excessivo.

Ao tentar pesquisa e entender melhor o problema, descobri que diversos notebooks da Lenovo, linha Thinkpad, possuem algumas dificuldades com o kernel Linux no que se refere a “gerenciamento de temperatura” (na verdade o problema é com o controle da “ventoinha” [fan]). O problema é que o “driver” responsável por aumentar e diminuir a velocidade da ventoinha não funciona muito bem, e ela fica “estagnada” numa determinada velocidade (por volta das 3500rpm).

Para alguém que mora num país nórdico isso não deve ser problema, mas para alguém que mora num país tropical isso começa a ser relevante. Nas últimas vezes que fui fazer importações e análises de grandes volumes de informações no projeto Radar Parlamentar sem usar os artifícios relatados abaixo meu notebook atingiu a temperatura limite de 95°C e desligou.

Enfim, como a comunidade é grande e colaborativa, encontrei uma solução para o problema e relatarei ela abaixo, de acordo com o que funcionou para mim. =)

Solução

A solução é basicamente instalar um programa que nos permitirá ter acesso às “configurações da ventoinha e montar alguns scripts para facilitar as alterações e configurações da mesma de acordo com o que quisermos.

Passo 1: Instalar o programa thinkfan
O Thinkfan pode ser encontrado por padrão nos repositórios do Ubuntu/Debian, então sua instalação é muito simples e requer apenas que você abra o terminal/console e digite o comando:

sudo apt-get install -y thinkfan

Passo 2: Configurar o thinkfanEm seguida precisamos configurar o thinkfan, adicionando “options thinkpad_acpi fan_control=1” ao arquivo de configuração (/etc/modprobe.d/thinkfan.conf). Para tanto, você pode usar um editor de texto qualquer ou executar no terminal o seguinte comando:

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

Lembre-se apenas que este comando deve ser executado por um usuário com poderes de “sudo”.

Passo 3: Habilitando o módulo do thinkfan
Agora iremos habilitar os módulos instalados e configurados para que eles possam fazer seu trabalho:

sudo modprobe -rv thinkpad_acpi
sudo modprobe -v thinkpad_acpi

Passo 4: Setando o thinkfan para iniciar automaticamente
Agora, obviamente queremos que o thinkfan seja iniciado sempre que o computador seja ligado. Para isso vamos abrir o arquivo /etc/default/thinkfan e adicionar nele (ou descomentar) a configuração START=yes. Para abrir o arquivo utilizaremos o comando:

gksudo gedit /etc/default/thinkfan

Agora, com o arquivo aberto, caso a linha “START=yes” existe, mas esteja comentada (com um # na frente) basta remover o #. Caso ela não existe, basta adicionar uma linha com “START=yes“. Salve e feche o arquivo.

Passo 5: Iniciar o programa thinkfan
Para iniciar o thinkfan basta executar:

sudo service thinkfan start

Agora seu thinkfan está instalado e funcionando, o que lhe permite ter mais controle sobre a ventoinha de seu notebook.

Scripts de uso diário

Com o thinkfan instalado e funcionando, eu criei 4 scripts relativo à questão de temperatura para facilitar minha vida. 2 deles são relativos a “acompanhamento” e dois deles são relativos a “modificações”. Eles são super simples, mas é só para não precisar lembrar dos comandos… Estou colocando-os em anexo a este post: thinkfap_thermal.tar

O primeiro deles é o “check_fan.sh“, cujo objetivo é apenas verificar qual a configuração e velocidade atual da ventoinha. Seu conteúdo é:

#!/bin/bash
cat /proc/acpi/ibm/fan

O segundo deles é o “check_temp.sh“, cujo objetivo é verificar a temperatura atual do processador:

#!/bin/bash
cat /proc/acpi/ibm/thermal

O terceiro é o “fan_auto_speed.sh“, que configura a ventoinha para funcionar de forma “automática” (padrão) – atenção, eu não confio muito nesse automático para “casos extremos!

#!/bin/bash
echo level auto | tee /proc/acpi/ibm/fan

O último deles é o “fan_full_speed.sh“, cujo objetivo é configurar a ventoinha para funcionar em velocidade máxima (isso aumenta o barulho do notebook):

#!/bin/bash
echo level disengaged > /proc/acpi/ibm/fan

Os dois primeiros scripts, de verificação, podem ser executados por qualquer usuário. Já os dois de modificação precisam ser executados usando o comando “sudo”.

Para o funcionamento “automático” do thinkfan existe um arquivo de configuração que define qual o “nível” de velocidade de acordo com a temperatura do processador. Este arquivo é o “/etc/thinkfan.conf“.

Eu encontrei diversas sugestões de como modificar os parâmetros dele, mas não tive muito tempo de testar, por enquanto estou alternando entre “full” e “auto” quando preciso (via linha de comando mesmo).

Mas eu acho que vale ler as referências que coloquei abaixo e tentar encontrar o que melhor se adequa às suas necessidades.

Espero ter ajudado. =)

Referências

http://overtag.dk/wordpress/2012/03/to-all-my-thinkpad-friends-running-linux/comment-page-1/#comment-27318

http://ubuntuforums.org/showthread.php?p=10866947#post10866947

http://thinkwiki.de/Thinkfan#Keine_Funktion_auf_X220.2C_T420.2C_L420_mit_Ubuntu_11.04_.2F_Kernel_2.6.38

http://en.usenet.digipedia.org/thread/18716/39767/

https://bugs.launchpad.net/ubuntu/+source/linux/+bug/751689?comments=all

http://ubuntuforums.org/showthread.php?t=836958