Como obtenho o controle do ventilador funcionando?

34

Eu sei que existe algo chamado controle de ventilador, que permite controlar a velocidade da ventilação do seu sistema. Gostaria de deixar meus fãs girarem um pouco mais rápido, pois meu laptop está esquentando muito facilmente. Todos os tutoriais e coisas que encontrei são para versões antigas do Ubuntu e parecem não estar mais funcionando.

Alguém pode me explicar ou me fornecer um bom link sobre como fazê-lo funcionar no Ubuntu? Algo diferente com o mesmo efeito também está bom.

RobinJ
fonte
Obter mais informações sobre o hardware provavelmente ajudaria, como marca do laptop, nome / número do modelo e tipo / versão do BIOS.
filescraps 29/09/11
@filescraps Dell Latitude D620: paste.ubuntu.com/699801
RobinJ
5
@ RobinJ - você já fez as verificações habituais de problemas de superaquecimento - verifique se há poeira / bloqueios - veja também o dissipador de calor do processador. Atualize seu BIOS para o mais recente disponível. Você já tentou adicionar "acpi_osi = Linux" ao seu grub? Você está usando alguma opção extra de inicialização? Basicamente, o que quero dizer é que - os problemas de superaquecimento são coisas do tipo poeira / ACPI - você nunca precisa controlar manualmente o seu ventilador.
fossfreedom
Bem, o ventilador só começa a funcionar mais rápido quando está a cerca de 65 ° C, e parece que é tarde demais porque, uma vez que começa a subir, não diminui mais de 75 ° C muito rapidamente. É um laptop e não estou confiante o suficiente com o hardware para separá-lo. O que acpi_osi=Linuxfaz? Nenhuma opção extra de inicialização, apenas o GRUB padrão.
RobinJ
11
@ RobinJ - não esqueça que o estilo do site é adicionar informações relevantes de volta à sua pergunta, em vez de enterrá-la nos comentários.
fossfreedom

Respostas:

8

O i8kutils trabalha para controlar o ventilador do meu laptop Dell Vostro 3350.

# Apenas para laptop Dell:
$ sudo apt-get install i8kutils 
$ i8kfan 1 2 # Coloque o ventilador esquerdo em baixa velocidade (1); a correta em alta velocidade (2).
user1902715
fonte
Parece que alguma coisa na BIOS sempre volta ao seu valor anterior após alguns segundos: P De qualquer forma, mesmo que seja um pouco tarde, ainda é a resposta mais útil.
RobinJ
funciona no meu Alienware m14x. Mas, ainda não é possível definir o cooler para sua velocidade máxima e isso ainda está causando o laptop rodar em temperaturas mais altas. Isso é significativamente mais quente do que era no Windows ...
iLemming
O BIOS o define novamente, então eu adicionei um cronjob a cada 2 minutos: crontab -ee */2 * * * * /usr/bin/i8kfan 1 1. funciona perfeitamente por enquanto
goksel 15/11
14

Provavelmente, você poderá resolver seu problema com outra coisa substituindo os comandos do ventilador do i8kctl pelo método fornecido nesta resposta. Para ser completo, incluirei algumas notas gerais sobre o controle dos ventiladores nos laptops da Dell e instruções completas para i8kutils.

O que provavelmente não vai funcionar

Dois meios comuns e diretos de controlar o ventilador nos laptops são através do ACPI e dos pinos do PWM, no entanto, infelizmente:

  • Os laptops da Dell não possuem capacidade de controle de ventilador ACPI (* 1)

    • como conseqüência, tentar com os parâmetros de inicialização do ACPI e similares irá falhar
  • Os laptops Dell Latitude, até onde eu sei, não possuem ventiladores controláveis ​​por pwm (* 2)

    • como conseqüência, o programa fancontrol/ pwmconfignão funcionará

Use o i8kutils

No entanto, há um pacote chamado i8kutilsque foi escrito para controlar o ventilador nos laptops Dell Inspiron por meio do BIOS SMM . Vários usuários relatam sucesso também em seus laptops Dell Laitude (eu sou um deles, em um Dell Latitude E7440) - no entanto, muitas vezes é necessário um truque para se livrar do controle de ventilador do BIOS que interfere. Você sofre disso também, de acordo com um comentário anterior.

Instalar i8kutils:

$ sudo apt-get install i8kutils

Tente:

$ i8kfan 2 2     # set to max speed
$ i8kfan 0 0     # set to 0 speed

... e ouça para ver se funciona.

Desabilitar o controle do ventilador do BIOS

Se funcionar, mas outra coisa está contra a velocidade definida (relatada por muitos usuários nos laptops Dell Latitude), isso ocorre devido às sessões SMM programadas que alteram a velocidade do ventilador. Felizmente, há uma maneira de desativar o controle do ventilador do BIOS gravando nos registros SMM .

Aviso: consulte o aviso na parte superior de smm.c. Este método irá gravar nos registros SMM. No entanto, não vi nenhum relatório de usuário sobre isso causando problemas. Além disso, todos os relatórios sobre essa tentativa indicaram êxito na desativação do controle do ventilador do BIOS.

i8kutilsinclui a fonte de um programa, smmmas o i8kutilspacote não inclui o binário compilado. O que faremos é baixar o código-fonte i8kutils, compilar o programa smme executá-lo com um argumento apropriado para desativar o controle do ventilador do BIOS gravando nos registros SMM.

Faça o download dos pacotes necessários para a construção:

$ sudo apt-get build-dep i8kutils

Faça o download do i8kutilscódigo fonte, extraia e entre no diretório (nomes exatos, dependendo da versão do i8k):

$ apt-get source i8kutils
$ tar xvf i8kutils_1.33.tar.gz
$ cd i8kutils-1.33/

Compilar smm:

  • Se estiver em um sistema de 32 bits :

    $ make
    

    (Acima será executado gcc -g -O2 -Wall -I. -o smm smm.c.)

  • Se estiver em um sistema de 64 bits :

    $ gcc -g -O2 -Wall -I. -o smm -m32 smm.c
    

Execute smmcom argumento 30a3para desativar o controle do ventilador SMM:

$ sudo ./smm 30a3

Agora, o controle do ventilador do BIOS deve estar desativado. Tente definir velocidades com i8kctl, ouça o ventilador e verifique se a velocidade persiste.

Nota: Essa é uma configuração que persistirá nas reinicializações e desligamentos. O controle do ventilador do BIOS pode ser ativado novamente com $ sudo ./smm 31a3.


* 1: Eu vi uma fonte oficial sobre isso, não consigo encontrá-la agora. Se você deseja verificar se o seu hardware não possui, siga as instruções aqui: https://wiki.ubuntu.com/DebuggingACPI

* 2: para verificar isso, pwmconfig executar: sudo apt-get install fancontrol, sudo pwm-configdirá se uma ventoinha PWM com capacidade está presente ou não

Carl
fonte
Na verdade, usei o parâmetro ACPI acpi_osi='!Windows 2012', para controlar os ventiladores do meu Dell Inspiron 15R 5520, pois eles sempre giravam na velocidade máxima, independentemente da temperatura.
user311982
Essa deve ser a resposta correta. É bem informado e muito relevante!
ppr
Ótima resposta. Também encontrado aqui
malat 28/11
11
Muito obrigado, isso funcionou para mim depois de tentar todo o resto sem sucesso. Quando tentei compilar o smm, estava faltando o sys / cdefs.h, mas o sudo apt-get install g++-multilibtrouxe (como mencionado em askubuntu.com/questions/470796/… )
Philip Daniels
Posso estar um pouco atrasado, mas há alguma desvantagem em colocá-lo na velocidade máxima?
Zerquix18
14

O pacote lm-sensores Instalar sensores lm pode ser o que você está procurando.

E como você sugeriu o controle de fãs Instale o fancontrol .

Verifique se todos os ventiladores que você está tentando controlar via software possuem o conector de 4 pinos.

"Uma ventoinha compatível com PWM é normalmente conectada a um conector de 4 pinos (pinagem: terra, + 12V, sensor, controle)." fonte

Quando corro, pwmconfigque faz parte do controle de fãs, recebo

/usr/sbin/pwmconfig: There are no pwm-capable sensor modules installed Ele o guiará se você tiver hardware compatível.

Aqui estão alguns scripts para usar em conjunto com o arquivo de configuração gerado. Presumo que você possa definir um valor mais alto aqui.

label fan1 "Side Fan"
set fan1_min 1000
label fan2 "PSU Fan"
set fan2_min 1000
label fan5 "CPU Fan"
set fan5_min 1000

Mas, como eu disse, não posso testar isso sozinho, já que meu hardware não suporta, posso controlar meus fãs a partir do BIOS, mas é uma nota 3. Eu o uso para manter o ventilador lento e silencioso.

filescraps
fonte
11
/ usr / sbin / pwmconfig: Não há módulos de sensores compatíveis com pwm instalados. Há outras maneiras?
precisa saber é o seguinte
Você geralmente precisa rodar sensors-detectprimeiro e carregar um módulo para obter a leitura da temperatura e da velocidade do ventilador, e então o pwmconfig pode manipulá-lo.
psusi 30/09/11
@ RobinJ, parece que você não possui um chip reconhecido / suportado.
Psusi 7/10/11
Vou conceder a recompensa a você, pois essa foi a resposta mais informativa que poderia ajudar a maioria das outras pessoas.
RobinJ
5

Ok, talvez essa não seja a resposta que você está procurando, mas meus problemas de superaquecimento foram resolvidos quando removíamos a poeira colocando um aspirador nas entradas de ventilação. Se houver superaquecimento em baixas frequências de CPU, pode valer a pena tentar. Esteja ciente de que talvez peças pequenas possam ser sugadas. Se você tiver sorte, esse método poderá resolver problemas de superaquecimento.

Ewald
fonte
Concordei com a recompensa pela resposta acima, porque era a mais informativa, mas meu problema parece estar relacionado ao hardware; portanto, sua resposta ficou mais próxima da solução. Mas como não estou confiante o suficiente para mexer com o hardware do meu laptop, apenas o trouxe para a loja, pois ele ainda estava na garantia.
RobinJ
Eu apenas tentei isso e funcionou. Obrigado! Meu ventilador começou a ficar mais alto e eu tive um ou dois desligamentos devido ao superaquecimento. Espero que isso tenha corrigido isso. A ventoinha agora liga e desliga com a utilização normal da CPU, o que é ótimo (antes de permanecer ligado o tempo todo).
Cymen
@ Cyymen Certifique-se de que o vácuo é anti-estático, para ser seguro. Uso uma lata de ar comprimido para limpar os respiradouros, o que você também pode fazer como alternativa.
user311982
3

Eu tenho um Dell Latitude e4200 e o seguinte funcionou para mim porque o BIOS estava substituindo a configuração do i8kfan. A temperatura inicial do meu computador era de 105F graus e cerca de 10 minutos depois de seguir estas etapas (configuração do ventilador = 2), a temperatura da CPU / Core caiu para 96F graus. Este procedimento já havia sido publicado por alguém:

Etapa 1. Baixe e instale o i8ktutils:

# sudo apt-get install i8kutils

Etapa 2. Substitua o BIOS para impedir que ele interrompa as configurações personalizadas do ventilador. Faça o download do código-fonte e compile um programa (SMM) para fazer isso:

# sudo apt-get build-dep i8kutils

então:

# apt-get source i8kutils

Etapa 3. Extraia o código-fonte e o cd no diretório:

# tar xvf i8kutils_1.33.tar.gz

então:

# cd i8kutils-1.33/

Etapa 4. Compile o SMM

For 32-bit systems:

# make SMM

(Output: # gcc -g -O2 -Wall -I. -o smm smm.c.)

For 64-bit systems

# make SMM:

(Output: # gcc -g -O2 -Wall -I. -o smm -m32 smm.c)

Etapa 5. Execute o SMM com os parâmetros:

# sudo ./smm 30a3

Etapa 6. Defina as velocidades do ventilador:

# i8kfan 2 2 (Listen as this will set fans to maximum speed)

# i8kfan 1 1 (This will set fans to slow speed)

Agora, o controle do ventilador do BIOS não deve substituir as configurações do ventilador. Essa configuração permanecerá mesmo se o sistema for reiniciado. Para devolver o controle ao BIOS por algum motivo, execute o seguinte procedimento:

# sudo ./smm 31a3.

Há também uma maneira de verificar a temperatura usando lm_sensors:

http://www.cyberciti.biz/faq/howto-linux-get-sensors-information/
user245946
fonte
11
Tentei isso na versão mais recente do i8kutils-1.41 no Ubuntu 14.04 e obtive "No arquivo incluído em /usr/include/stdio.h:27abled, em smm.c: 27: /usr/include/features.h: 374: 25: erro fatal: sys / cdefs.h: Nenhum tal lima ou diretório "no entanto, este correções problema askubuntu.com/questions/470796/...
k-den