domingo, 24 de outubro de 2010

Superaquecimento da placa de vídeo

Iow

Sexta-feira passada, após longas horas extras no trabalho devido a inúmeros problemas urgentes, finalmente cheguei em casa, pronto para incansáveis e intermináveis batalhas cooperativas com a namorada em Borderlands (baita programa romântico... Vida de nerd é assim =) ).

Eis que, como sempre, liguei o PC e dei boot no Ubuntu, para fazer o trabalho do dia-a-dia (ler notícias, ver e-mails etc.). Operacional feito, hora de dar boot no Windows para jogar. Boot feito, na tela de entrada do game, pãããã: tela azul (aka BSoD, Blue Screen of Death).

"Mas que m...." pensei. Seria problema do jogo? Seria problema do Windows? Seria problema da minha máquina? Seria problema do alinhamento de Órion com a terceira lua de Júpiter?

Nova tentativa, e tela azul de novo. Poderia ser zica do sistema. Entrei novamente no Linux e... Kernel Panic??? (Citando Anakin Skywalker ao saber que Padmé havia morrido) Nooooooooooooooo!!!

Definitivamente não tinha como ser sistema operacional. O problema era hardware (ainda mais com o dump do kernel panic escrevendo enfaticamente "This is not a software problem!"). E agora? Memórias? HDs? Processador? Placa mãe? Placa de vídeo?

Desliguei tudo e comecei o ritual: abre gabinete, limpa a poeira dos coolers, limpa as memórias, fixa placas, desconecta e conecta cabos...

Novo boot, mesmo bug. Já estava querendo acender uma vela de rest-in-peace pro PC... Até que coloquei a mão na placa de vídeo... Dava para fritar um ovo nela. Dava para acender a tal vela só encostando o pavio nela. O treco estava absurdamente quente.

Então vamos lá: está claro, a placa não deveria estar tão quente assim. Enquanto esperava os ânimos esfriarem, comecei a pesquisar sobre o que fazer. E foi isso que fiz:

Primeiro passo: melhorando a ventilação.

A minha placa de vídeo, uma NVidia GeForce 8800 GT (fabricada pela EVGA), possui um cooler e um baita dissipador. E para deixar a placa estilosa, tem uma capa em metal, com o logo da companhia e tudo mais. Antes de mais nada, tirei a capa, para facilitar a ventilação.

EVGA GeForce 8800 GT
Com a capa retirada, ficou fácil de remover a poeira do cooler e do dissipador. Não estava tão empoeirado assim, mas uma faxina sempre ajuda.

Com a placa limpa, mudei a configuração de coolers do meu gabinete (um XBlade preto). Peguei o cooler lateral, que pega o ar fresco de fora e manda pra dentro, e foquei ele pra cima do dissipador da placa de vídeo. Assim melhorou a refrigeração.

Gabinete XBlade preto
 Segundo passo: atualização de drivers.

Com o hardware limpo e refrigerado, religuei a máquina, entrando no Windows em modo de segurança (para não forçar a placa de vídeo). Fui para o site da NVidia, e verifiquei que meus drivers não estavam na última versão. Baixei e instalei. Sempre é bom. Volta-e-meia aparecem correções de bugs referentes a velocidade de ventiladores de placa de vídeo.

Terceiro passo: acompanhando a temperatura.

Com os drivers atualizados, baixei um gadget (aquelas firulas que ficam rodando no desktop) que monitora a placa de vídeo. Há várias por aí, mas a que eu baixei foi a GPU Observer Gadget. Com ela instalada, verifiquei que a placa de vídeo permanecia entre 65°C e 69°C sem fazer nada. E o ventilador, sempre a 30%, não importando o que acontecesse.

GPU Observer Gadget
Quarto passo: Hasta la vista, ventilador.

Estava claro para mim que o problema era com o ventilador da placa de vídeo. Comecei até a procurar preços de placa de vídeo na internet, já prevendo que teria que trocar tudo. Mas antes, o que será que os bytes poderiam fazer por mim? Comecei a procurar em fóruns da NVidia se exista alguma solução.

E encontrei. Por padrão a NVidia não disponibiliza para os usuários finais as opções de tunagem da placa de vídeo, ou seja, opções para modificar clock da GPU, voltagem, e velocidade de ventilador. Porém basta baixar e instalar um pacote a mais (o NVidia System Tools with ESA support), que essas opções aparecem na tela de configuração da placa de vídeo.

Com as system tools instaladas, e ciente da incapacidade do meu hardware de aumentar a rotação do ventilador automaticamente, alterei a opção de "Auto" para "Manual" na velocidade do ventilador, e lacrei em 100%.

Fora o ruído extra que essa opção gerou, a temperatura da placa caiu rapidamente para 40°C. Muito bom, muito bom... Agora é hora de testar com um game.

Entrei em Borderlands, dei uns tiros, andei no mapa, me meti com hordas de inimigos, minimizei o game e a gadget indicava 70ºC. Joguei mais uns minutos, de forma mais frenética, minimizei o game e os mesmos 70ºC. Parece que isso era o melhor que poderia ser feito. Não travou mais, então estava tudo bem.

Quinto passo: e o Linux?

Como muitos outros nerds, eu só utilizo o Windows para jogar, e fico no Linux para todo o resto. Por não jogar no Linux, então não teria problemas com a placa de vídeo, certo?

Errado. Mesmo depois de fazer funcionar tudo bonitinho no Windows, depois de uns 10 minutos de uso no Linux, deu de novo kernel panic, e a placa de vídeo torrando. E agora, como proceder? Retirar os efeitos do Compiz não estava em questão.

Foi aí que, depois de uma pequena pesquisa, encontrei um utilitário em linha de comando (no melhor estilo Linux de ser) para alterar a velocidade do ventilador da placa de vídeo. O NVClock.

Com ele preparado (./configure), compilado (make) e instalado (make install), novamente no melhor estilo Linux de ser, bastou executar o comando

nvclock -F 100 -f

E voilà, tudo em 100% novamente. E nada mais de problemas de temperatura.

Sexto passo: executando na entrada do sistema operacional.

O chato de toda essa história é ter que configurar o ventilador toda santa vez em que se inicia o sistema. No caso do Windows, diz a lenda que existe uma maneira de configurar o nTune para executar determinadas ações no boot do sistema, porém não consegui fazê-las funcionar (nos fóruns diz-se que isso é bugado mesmo e não há o que fazer). Paciência.

No Linux é só colocar o comando para ser executado no logon. Gostoso como a vida deve ser.

Configurando a execução automática do NVClock no Ubuntu 10.10
 Esse tutorial se aplica tanto para pessoas com problemas de temperatura na placa de vídeo como eu, quanto para quem quer mesmo é dar overclock na placa. Citei fontes da NVidia, mas o processo é semelhante para placas da ATI/AMD.

Mais sobre: http://www.recipester.org/Recipe:Change_nvidia_video_card_fan_speed_27843686

Até que o ventilador não aguente mais, não precisarei trocar de placa de vídeo =)

Té++

Nenhum comentário: