Como controlar a velocidade do ventilador?


178

Como posso controlar a velocidade do ventilador do computador?

No Windows, existe um programa maravilhoso chamado SpeedFan .


11
Coloquei solução cron simples para placas ATI aqui askubuntu.com/a/875241/375427
Pavel Niedoba

11
No linux, fancontrolé configurado usando pwmconfig. Use watch sensorspara observar sensores sob carga de CPU e GPU. Use esses valores em marcha lenta e carga total para definir MINTEMPe MAXTEMP, respectivamente, com INTERVAL=1. Isso aumenta seus fãs em tempo real à medida que a carga aumenta. Esse é o resfriamento mais ativo, fornecendo uma linha de base para ajustes adicionais. Execute pwmconfiguma vez e edite /etc/fancontroldiretamente. Corra sudo service fancontrol restartapós cada ajuste.
Dominic Cerisano

Respostas:


149

Nota antes de começar:

Essa funcionalidade depende do seu hardware e software. Se o seu hardware não suportar controles de velocidade dos ventiladores ou não os mostrar para o sistema operacional, é muito provável que você não possa usar esta solução. Se sim, mas o software (também conhecido como kernel) não sabe como controlá-lo, você está sem sorte.


  1. Instale os pacotes lm-sensores e fancontrol .
  2. Configurar sensores lm

    1. No tipo de terminal, sudo sensors-detectresponda SIM a todas as perguntas SIM / sem perguntas.
      (Potencialmente, isso pode danificar seu sistema ou causar uma falha no sistema. Para muitos sistemas, é seguro. Não há garantia de que esse processo não danifique seu sistema permanentemente, apenas acho que a chance de falha crítica é realmente muito baixa Salvar todo o seu trabalho para eventuais falhas / congelamentos / reinicializações antes de manipular a configuração do sistema é sempre uma boa ideia.Se você não tiver certeza, leia os comentários e tente pesquisar na web e obter uma visão geral de alto nível antes de SIM, talvez seja seletiva com seus SIM-es ainda será suficiente)
    2. No final da detecção de sensores, uma lista de módulos que precisam ser carregados será exibida. Digite "yes" para que os sensores detectem insira esses módulos em / etc / modules ou edite você mesmo / etc / modules.
    3. Corra sudo service module-init-tools restart. Isso lerá as alterações feitas /etc/modulesna etapa 3 e inserirá os novos módulos no kernel.
      • Nota : Se você estiver executando o Ubuntu 13.04 ou superior, este comando da 3ª etapa deverá ser substituído por sudo service kmod start.
  3. Configurar fancontrol

    1. No tipo de terminal sudo pwmconfig. Esse script interromperá cada ventilador por 5 segundos para descobrir quais ventiladores podem ser controlados por qual identificador PWM. Após o script percorrer todos os ventiladores, você pode configurar qual ventilador corresponde a qual temperatura.
    2. Você terá que especificar quais sensores usar. Isso é um pouco complicado. Se você tiver apenas um ventilador, use um sensor de temperatura no seu núcleo para basear a velocidade de controle do ventilador.
    3. Execute os prompts e salve as alterações no local padrão.
    4. Faça ajustes para ajustar /etc/fancontrole use sudo service fancontrol restartpara aplicar suas alterações. (No meu caso, defino o intervalo para 2 segundos.)
  4. Configurar serviço de controle de ventilador

    1. Corra sudo service fancontrol start. Isso também fará com que o serviço de controle do ventilador seja executado automaticamente na inicialização do sistema.

No meu caso /etc/fancontrolpara CPU, usei:

Configurações para hwmon0 / device / pwm2:
(Depende de hwmon0 / device / temp2_input) (controla hwmon0 / device / fan2_input)

INTERVAL=2
MINTEMP=40  
MAXTEMP=60  
MINSTART=150  
MINSTOP=0  
MINPWM=0  
MAXPWM=255 

e em um sistema diferente é:

INTERVAL=10
DEVPATH=hwmon1=devices/platform/coretemp.0 hwmon2=devices/platform/nct6775.2608
DEVNAME=hwmon1=coretemp hwmon2=nct6779
FCTEMPS=hwmon2/pwm2=hwmon1/temp2_input
FCFANS=hwmon2/pwm2=hwmon2/fan2_input
MINTEMP=hwmon2/pwm2=49
MAXTEMP=hwmon2/pwm2=83
MINSTART=hwmon2/pwm2=150
MINSTOP=hwmon2/pwm2=15
MINPWM=hwmon2/pwm2=14
MAXPWM=hwmon2/pwm2=255

aqui estão algumas informações úteis sobre as configurações e o que elas realmente fazem


111
Tentei seguir o seu guia, mas fiquei preso na etapa três com este erro: / usr / sbin / pwmconfig: Não há módulos de sensores compatíveis com pwm instalados
tamale

6
Eu tive o mesmo problema com pwmconfig até que eu corri sudo sensores de detecção
Gearoid Murphy

5
O que fazer se o sudo sensores-detect não apresentar nenhum sensor? -> Desculpe, nenhum sensor foi detectado. O seu sistema não possui sensores, ou eles não são suportados ou estão conectados a um adaptador I2C ou SMBus que não é suportado. Se você descobrir quais chips estão em sua placa, consulte lm-sensors.org/wiki/Devices para obter o status do driver.
H3R3T1K

5
Se estiver com problemas, verifique o dmesg quanto a mensagens de erro. No meu caso, alterações recentes no kernel me impediram de carregar o driver necessário, e eu tive que adicionar acpi_enforce_resources=laxàs minhas opções do kernel para recuperar a funcionalidade antiga. Veja também: goo.gl/tUcr36
bukzor 23/12/13

19
Eu tentei isso e não posso ir além do sudo pwmconfig, porque recebo: "Não há módulos de sensores compatíveis com pwm instalados". Isso ocorre depois que o comando de detecção de sensores encontra um 'sensor térmico digital Intel'. Eu também tentei esse parâmetro do kernel. Alguém pode sugerir uma solução?
precisa saber é o seguinte

44

Se você possui um ThinkPad , existe um software chamado thinkfanque faz exatamente isso. Como o nome obviamente sugere, ele foi feito especificamente para os ThinkPads ( thinkpad_acpi).

O thinkfansoftware está disponível nos repositórios de software padrão do ubuntu, mas requer algumas etapas para configurar.

Aqui está um guia passo a passo fácil:

http://staff.science.uva.nl/~kholshei/thinkfan_guide/

(que é basicamente uma versão traduzida deste guia em alemão: http://thinkwiki.de/Thinkfan )


Informações relevantes da postagem:

Etapa 1. Instale o software thinkfan e os sensores:

sudo apt-get install thinkfan lm-sensors

Etapa 2. Verifique se o daemon controla o ventilador editando o arquivo thinkpad.conf:

sudo nano /etc/modprobe.d/thinkfan.conf

adicionando a seguinte linha:

options thinkpad_acpi fan_control=1

Etapa 3. Faça o daemon carregar automaticamente na inicialização, editando o arquivo:

sudo nano /etc/default/thinkfan

certificando-se de que a tecla START esteja definida como yes, ou seja, deve haver uma linha que diz:

START=yes

Etapa 4. Detecte os sensores do seu laptop:

sudo sensors-detect

e escolha as respostas padrão sempre que for solicitado pressionando Enter.

Etapa 5. Carregue os novos módulos. No ubuntu 13.10, isso é feito por:

sudo service kmod start

enquanto nas versões anteriores como 13.04 você precisará:

sudo service module-init-tools start

Etapa 6. Descubra quais sensores estão em uso:

sensors

(os que indicam 0 graus não estão em uso, não sei por que eles também são "detectados"). Lembre-se de quais estão em uso.

Etapa 7. Descubra os caminhos completos desses sensores:

find /sys/devices -type f -name "temp*_input"

A saída deve ser uma lista de caminhos como / sys / devices / ...

Etapa 8. Copie e cole os caminhos para os sensores no arquivo de configuração /etc/thinkpad.conf. Para fazer isso, primeiro abra o arquivo:

sudo nano /etc/thinkfan.conf

Já deve haver uma linha como

#sensor /proc/acpi/ibm/thermal (0, 10, 15, 2, 10, 5, 0, 3, 0, 3) 

(o símbolo # significa que essa linha está comentada). Adicione uma linha começando com sensor (sem o símbolo #) e copie e cole seu primeiro sensor. Repita isso se você tiver mais de um sensor. Por exemplo, na minha máquina, a saída na etapa 7 gera

/sys/devices/virtual/hwmon/hwmon0/temp1_input
/sys/devices/platform/thinkpad_hwmon/temp3_input
/sys/devices/platform/thinkpad_hwmon/temp4_input
/sys/devices/platform/thinkpad_hwmon/temp5_input
/sys/devices/platform/thinkpad_hwmon/temp6_input
/sys/devices/platform/thinkpad_hwmon/temp7_input
/sys/devices/platform/thinkpad_hwmon/temp1_input
/sys/devices/platform/thinkpad_hwmon/temp8_input
/sys/devices/platform/thinkpad_hwmon/temp2_input
/sys/devices/platform/coretemp.0/temp4_input
/sys/devices/platform/coretemp.0/temp2_input 

Os que estão em uso na minha máquina são os da primeira e das duas últimas linhas, então adicionei as três linhas:

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

Etapa 9. Finalmente, podemos definir os níveis de velocidade do ventilador no arquivo de configuração. Abra o arquivo /etc/thinkpad.conf, se já não estiver aberto.

sudo nano /etc/thinkfan.conf

Os níveis de ventilador que uso no meu ThinkPad x201 são:

(0, 0, 51)
(1, 50, 52)
(2, 51, 55)
(3, 54, 58)
(4, 56, 63)
(5, 60, 70)
(6, 66, 79)
(7, 74, 92)
(127, 85, 32767) 

A última linha garante a velocidade total do ventilador (127 = "desengatado", isto é, não regulamentado). Você pode mexer com esses níveis para atender às suas necessidades / desejos, mas tenha cuidado!

Etapa 10. Reinicialize. Tudo deve funcionar agora. Para verificar se o thinkpad está funcionando corretamente, use

sudo thinkfan -n

que inicia o thinkfan no modo detalhado. Você pode parar o daemon thinkfan primeiro:

sudo /etc/init.d/thinkfan stop

Se você deseja iniciar o daemon thinkfan novamente, digite:

sudo /etc/init.d/thinkfan start

Apenas para concluir, meu arquivo de configuração /etc/thinkfan.conf é:

# IMPORTANT:
#
# To keep your HD from overheating, you have to specify a correction value for
# the sensor that has the HD's temperature. You need to do this because
# thinkfan uses only the highest temperature it can find in the system, and
# that'll most likely never be your HD, as most HDs are already out of spec
# when they reach 55 °C.
# Correction values are applied from left to right in the same order as the
# temperatures are read from the file.
#
# For example:
# sensor /proc/acpi/ibm/thermal (0, 0, 10)
# will add a fixed value of 10 °C the 3rd value read from that file. Check out
# http://www.thinkwiki.org/wiki/Thermal_Sensors to find out how much you may
# want to add to certain temperatures.

# Syntax:
# (LEVEL, LOW, HIGH)
# LEVEL is the fan level to use (0-7 with thinkpad_acpi)
# LOW is the temperature at which to step down to the previous level
# HIGH is the temperature at which to step up to the next level
# All numbers are integers.
#

# I use this on my T61p:
#sensor /proc/acpi/ibm/thermal (0, 10, 15, 2, 10, 5, 0, 3, 0, 3)

#(0, 0, 55)
#(1, 48, 60)
#(2, 50, 61)
#(3, 52, 63)
#(4, 56, 65)
#(5, 59, 66)
#(7, 63, 32767)


# My settings for my ThinkPad X201: (kris)

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

(0, 0, 51)
(1, 50, 52)
(2, 51, 55)
(3, 54, 58)
(4, 56, 63)
(5, 60, 70)
(6, 66, 79)
(7, 74, 92)
(127, 85, 32767)

2
Um comentário: você deseja ter uma sobreposição maior dos valores de temperatura, como na tabela comentada. Especialmente na faixa 45-55. Caso contrário, a velocidade do ventilador continuará girando. Isso é muito perturbador. (Ruído do ventilador constante não perturba tanto como ruído flutuante.)
HongboZhu

11
Nós (a comunidade linux) realmente somos péssimos no UX. :( Definir uma velocidade do ventilador não deve ser um processo de 10 etapas. #
Alexander Alexander

2
@ Alexander Se você se interessa muito por isso, pode escrever e manter um pequeno programa para automatizar esse processo.
Kris

11
@Kris Eu estaria mais inclinado a modificar o programa original para não ter um processo de configuração sem sentido. Infelizmente, eu não tenho um thinkpad, estava apenas passando por este post procurando por opções de controle de ventilador disponíveis por aí.
Alexander

/etc/modprobe.d/thinkfan.conf não existe no meu Ubuntu 14.04. E agora?
Youda008

14

Para vários computadores Dell, você pode instalar o pacote i8kutils:

sudo apt install i8kutils

Se você possui um Dell não testado (como o meu Dell XPS 14z), pode ser necessário forçar o carregamento do módulo do kernel:

sudo modprobe i8k force=1

2
Eu tenho o Dell XPS 14 L421X. <code> sensores </code> não mostraram fãs. depois de instalar o pacote i8kutils, recebo sensores coretemp-isa-0000 Adaptador: adaptador ISA ID físico 0: + 54,0 ° C (alto = + 87,0 ° C, crit = + 105,0 ° C) Núcleo 0: + 50,0 ° C (alto = + 87,0 ° C, crit = + 105,0 ° C) Núcleo 1: + 52,0 ° C (alto = + 87,0 ° C, crit = + 105,0 ° C) i8k-virtual-0 Adaptador: dispositivo virtual Ventilador direito: 0 RPM CPU: + 55,0 ° C
philcolbourn

Isso funciona para a hp?
Jogador imortal

11
@ jogador imortal, acho que não. O módulo do kernel foi projetado especificamente para máquinas Dell.
morhook

Talvez acrescentar que para a Apple há macfanctlde mbpfane para ThinkPad, háthinkfan
rubo77

7

Instale e configure os pacotes lm-sensores e fancontrol :

sudo apt-get install lm-sensors fancontrol

A documentação para configurá-los está disponível em suas páginas de manual.

Essa é uma função que deveria ser fornecida por um BIOS compatível com ACPI, mas parece que a maioria dos fornecedores de placas-mãe não se preocupam em seguir o padrão.


12
Você pode fornecer instruções mais detalhadas sobre como instalá-las e usá-las?
Stefano Palazzo

Você pode encontrar isso na página de manual ou em www.lm-sensors.org.
Psusi

40
Eu sei, eu apenas pensei que esta resposta poderia ser melhor :)
Stefano Palazzo

O link que @psusi deu não funciona, o novo link está aqui: github.com/groeck/lm-sensors
Svetlana Belkin

11
Eu acho que você tem um nome de usuário com erros ortográficos.
MarkRoxor #

3

Aqui está uma versão atualizada para a resposta que recomenda o thinkfan , trabalhando com o Ubuntu 19.04.

Configuração

As instruções abaixo se aplicam a qualquer ThinkPad que possua os dispositivos /proc/acpi/ibm/fane /proc/acpi/ibm/thermal"legado". Isso evita a instalação do lm-sensorspacote.

No entanto, você ainda pode instalar lm-sensorspara ver mais sensores de temperatura e obter um controle mais refinado sobre seus ventiladores (ou seja, em 256 etapas de PWM em vez das etapas fixas "0-7 e 127" com os dispositivos herdados. Além disso, desde thinkfanagora pode funcionar com lm-sensorssensores, não é mais específico para computadores IBM / Lenovo ThinkPad. Consulte o man thinkfanuso desses dispositivos sensores "estendidos". Além disso, há informações atualizadas no Thinkwiki alemão .

  1. Instale o pacote necessário:

    sudo apt-get install thinkfan
    
  2. Adicione a seguinte linha ao /etc/modprobe.d/thinkfan.conf:

    options thinkpad_acpi fan_control=1
    
  3. Configure o thinkfanserviço para iniciar automaticamente na inicialização do sistema:

    1. Adicione uma linha START=yesa/etc/default/thinkfan

    2. Execute o seguinte comando ( origem ):

      sudo systemctl enable thinkfan.service
      
  4. Adapte-se /etc/thinkfan.confcom os ponteiros certos aos dispositivos e aos níveis de ventilador desejados. Os comentários lá fornecem documentação. Em qualquer Thinkpad com ventilador herdado e dispositivos térmicos, o seguinte deve fornecer um bom ponto de partida (também deve ser seguro para o disco rígido, consulte os comentários no arquivo para obter mais informações). Observe que isso usa novas palavras-chave - as da outra resposta acima estão obsoletas.

    tp_fan /proc/acpi/ibm/fan
    tp_thermal /proc/acpi/ibm/thermal
    
    (0, 0, 47)
    (1, 43, 52)
    (2, 48, 55)
    (3, 51, 58)
    (4, 54, 63)
    (5, 59, 70)
    (6, 66, 79)
    (7, 74, 92)
    (127, 85, 32767) 
    

Teste

Para testar sua configuração (após uma reinicialização), você pode fazer o seguinte:

  • Em uma janela do terminal, execute thinkfanno modo não daemonizado para poder ver suas mensagens:

    sudo service thinkfan stop && sudo thinkfan -n
    
  • Em outra janela do terminal, fique de olho nos valores atuais de temperatura, fornecendo seu dispositivo de sonda de temperatura, se diferente:

    while true; do sleep 1; cat /proc/acpi/ibm/thermal; done
    
  • Em outra janela do terminal, aqueça a CPU (e interrompa-a com Ctrl+ Ccaso algo no gerenciamento térmico não funcione conforme o esperado):

    sudo apt install stress-ng
    stress-ng --cpu-1
    

11
Impressionante. Isso resolveu o meu T490 com o Pop_OS 19.04. O ventilador ainda liga, mas não o tempo todo.
Nitai 19/09

11
Os dispositivos ThinkPad mais novos não têm /proc/acpi/ibm/thermal, portanto é necessário fazer um trabalho extra para esse caso (convenientemente listado nessa maravilhosa página do ThinkWiki em alemão). Parece que o funcionou para mim, para poder atualizar sua resposta ou criar outra. Obrigado!
Cliff

1

Tente procurar na configuração UEFI (ou na configuração do BIOS) do seu PC. Pode haver um ajuste para controle do ventilador onde você pode colocar seu fã para Silent Mode, Performance Mode, Full Speed, Customize, etc.

Como acessar as configurações da UEFI : Reinicie o seu PC e a chave para inseri-las provavelmente aparecerá em um dos cantos (por exemplo Press F2 to enter UEFI setup)

Configuração do ASRock UEFI para controle de ventilador


Este é o AskUbuntu, não o AskUEFI :)
Maarten
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.