Come controllare la velocità della ventola?


178

Come posso controllare la velocità della ventola del computer?

Su Windows c'è un meraviglioso programma chiamato SpeedFan .


1
Ho messo una semplice soluzione cron per le schede ATI qui askubuntu.com/a/875241/375427
Pavel Niedoba,

1
Su Linux, fancontrolè configurato usando pwmconfig. Utilizzare watch sensorsper osservare i sensori sotto carico CPU e GPU. Utilizzare questi valori al minimo e a pieno carico per impostare MINTEMPe MAXTEMPrispettivamente, con INTERVAL=1. Questo accelera i tuoi fan in tempo reale all'aumentare del carico. Questo è il raffreddamento più attivo, fornendo una base per ulteriori modifiche. Esegui pwmconfiguna volta, quindi modifica /etc/fancontroldirettamente. Corri sudo service fancontrol restartdietro ogni modifica.
Dominic Cerisano,

Risposte:


149

Nota prima di iniziare:

Questa funzionalità dipende sia dall'hardware che dal software. Se l'hardware non supporta i controlli della velocità della ventola o non li mostra al sistema operativo, è molto probabile che non sia possibile utilizzare questa soluzione. Se lo fa, ma il software (noto anche come kernel) non sa come controllarlo, sei senza fortuna.


  1. Installa i pacchetti lm- sensor e fancontrol .
  2. Configura i sensori lm

    1. Digitare nel terminale sudo sensors-detecte rispondere SÌ a tutti SÌ / nessuna domanda.
      (Potenzialmente, questo può danneggiare il sistema o causare un arresto anomalo del sistema. Per molti sistemi, è sicuro. Non esiste alcuna garanzia che questo processo non danneggi il sistema in modo permanente, penso solo che la possibilità di un tale guasto critico sia davvero bassa Salvare tutto il tuo lavoro per eventuali arresti anomali / blocchi / riavvii prima di gestire la configurazione del sistema è sempre una buona idea. Se non sei sicuro, leggi i commenti e prova a cercare un Web e ottenere una panoramica di alto livello prima di SÌ tutto, forse essere selettivo con il tuo SÌ sarà ancora sufficiente)
    2. Al termine del rilevamento dei sensori, verrà visualizzato un elenco di moduli che devono essere caricati. Digita "sì" per fare in modo che i sensori rilevino inseriscano quei moduli in / etc / modules o modifica tu stesso / etc / modules.
    3. Corri sudo service module-init-tools restart. Questo leggerà le modifiche apportate al /etc/modulespassaggio 3 e inserirà i nuovi moduli nel kernel.
      • Nota : se si esegue Ubuntu 13.04 o versioni successive, questo comando di 3 ° passaggio deve essere sostituito da sudo service kmod start.
  3. Configura fancontrol

    1. Nel tipo di terminale sudo pwmconfig. Questo script fermerà ogni fan per 5 secondi per scoprire quali fan possono essere controllati da quale PWM gestisce. Dopo che lo script scorre in tutti i fan, è possibile configurare quale fan corrisponde a quale temperatura.
    2. Dovrai specificare quali sensori usare. Questo è un po 'complicato. Se hai solo una ventola, assicurati di utilizzare un sensore di temperatura per il tuo core su cui basare la velocità di controllo remoto.
    3. Esegui le istruzioni e salva le modifiche nella posizione predefinita.
    4. Apporta le modifiche per perfezionare /etc/fancontrole utilizzare sudo service fancontrol restartper applicare le modifiche. (Nel mio caso ho impostato l'intervallo su 2 secondi.)
  4. Configurare il servizio fancontrol

    1. Corri sudo service fancontrol start. Ciò farà inoltre funzionare automaticamente il servizio fancontrol all'avvio del sistema.

Nel mio caso /etc/fancontrolper CPU ho usato:

Impostazioni per hwmon0 / device / pwm2:
(dipende da hwmon0 / device / temp2_input) (controlla hwmon0 / device / fan2_input)

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

e su un altro sistema è:

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

ecco alcune informazioni utili sulle impostazioni e su cosa fanno veramente


111
Ho provato a seguire la tua guida, ma mi sono bloccato al terzo passaggio con questo errore: / usr / sbin / pwmconfig: non sono installati moduli sensore con funzionalità pwm
tamale

6
Ho avuto lo stesso problema con pwmconfig fino a quando ho eseguito sudo sensor-detect
Gearoid Murphy

5
Cosa fare se sudo sensor-detect non presenta alcun sensore? -> Siamo spiacenti, non sono stati rilevati sensori. Il sistema non ha sensori oppure non sono supportati oppure sono collegati a un adattatore I2C o SMBus non supportato. Se scopri quali chip sono sulla tua scheda, controlla lm-sensors.org/wiki/Devices per lo stato del driver.
H3R3T1K,

5
In caso di problemi, assicurati di controllare i messaggi di errore su dmesg. Nel mio caso, le recenti modifiche del kernel mi hanno impedito di caricare il driver necessario e ho dovuto aggiungere acpi_enforce_resources=laxalle opzioni del mio kernel per ripristinare la funzionalità precedente. Vedi anche: goo.gl/tUcr36
bukzor il

19
Ho provato questo e non posso andare oltre sudo pwmconfig, perché ottengo: "Non sono installati moduli sensore compatibili con pwm". Questo dopo che il comando di rilevamento sensori trova un "sensore termico digitale Intel". Ho anche provato quel parametro del kernel. Qualcuno può suggerire una soluzione?
Sman789,

44

Se possiedi un ThinkPad , esiste un software chiamato thinkfanche fa esattamente questo. Come ovviamente suggerisce il nome, è stato creato appositamente per ThinkPads ( thinkpad_acpi).

Il thinkfansoftware è disponibile nei repository software Ubuntu standard, ma richiede alcuni passaggi per la configurazione.

Ecco una semplice guida dettagliata:

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

(che è fondamentalmente una versione tradotta di questa guida tedesca: http://thinkwiki.de/Thinkfan )


Informazioni rilevanti dalla posta:

Passaggio 1. Installare il software thinkfan e i sensori:

sudo apt-get install thinkfan lm-sensors

Passaggio 2. Assicurarsi che il daemon controlli la ventola modificando il file thinkpad.conf:

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

aggiungendo la seguente riga:

options thinkpad_acpi fan_control=1

Passaggio 3. Fai caricare automaticamente il daemon all'avvio modificando il file:

sudo nano /etc/default/thinkfan

assicurandosi che il tasto START sia impostato su yes, cioè dovrebbe esserci una riga che dice:

START=yes

Passaggio 4. Rileva i sensori del tuo laptop:

sudo sensors-detect

e scegli le risposte predefinite ogni volta che ti viene richiesto premendo Invio.

Passaggio 5. Caricare i nuovi moduli. Da Ubuntu 13.10 questo fatto da:

sudo service kmod start

mentre per le versioni precedenti come 13.04 dovrai invece fare:

sudo service module-init-tools start

Passaggio 6. Scopri quali sensori sono in uso:

sensors

(quelli che indicano 0 gradi non sono in uso, non so perché anche quelli vengano "rilevati"). Ricorda quali sono in uso.

Passaggio 7. Scopri i percorsi completi di questi sensori:

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

L'output dovrebbe essere un elenco di percorsi come / sys / devices / ...

Passaggio 8. Copia e incolla i percorsi dei sensori nel file di configurazione /etc/thinkpad.conf. Per fare ciò, prima aprire il file:

sudo nano /etc/thinkfan.conf

Dovrebbe già esserci una linea simile

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

(il simbolo # significa che quella riga è commentata). Aggiungi una riga che inizia con il sensore (senza il simbolo #) e copia e incolla il primo sensore. Ripetere l'operazione se si dispone di più di un sensore. Ad esempio, sulla mia macchina, l'output nel passaggio 7 produce

/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 

Quelli che sono in uso nella mia macchina sono quelli nella prima e nelle ultime due righe, quindi ho aggiunto le tre righe:

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

Passaggio 9. Finalmente possiamo impostare i livelli di velocità della ventola nel file di configurazione. Apri il file /etc/thinkpad.conf se non era già aperto.

sudo nano /etc/thinkfan.conf

I livelli di fan che utilizzo sul mio ThinkPad x201 sono:

(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) 

L'ultima riga garantisce la massima velocità della ventola (127 = "disinnestata" ovvero non regolata). Puoi giocherellare con questi livelli per soddisfare i tuoi bisogni / desideri, ma PER FAVORE, ATTENZIONE!

Passaggio 10. Riavviare. Ora dovrebbe funzionare tutto. Per verificare se thinkpad funziona correttamente, utilizzare

sudo thinkfan -n

che avvia thinkfan in modalità dettagliata. Potresti voler prima fermare il demone thinkfan:

sudo /etc/init.d/thinkfan stop

Se vuoi riavviare il demone thinkfan, digita:

sudo /etc/init.d/thinkfan start

Per essere completo, il mio file di configurazione /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
Un commento: vuoi avere una maggiore sovrapposizione dei valori di temperatura come nella tabella commentata. Soprattutto nella gamma 45-55. Altrimenti, la velocità della ventola continua a diminuire. È molto inquietante. (Il rumore costante della ventola non disturba tanto quanto il rumore fluttuante.)
HongboZhu

1
Noi (la comunità di Linux) facciamo davvero schifo a UX. :( L'impostazione della velocità della ventola non dovrebbe essere un processo in 10 passaggi.
Alexander,

2
@Alexander Se ti senti fortemente al riguardo, sei libero di scrivere e mantenere un piccolo programma per automatizzare questo processo.
Kris

1
@Kris Sarei più propenso a modificare il programma originale per non avere un processo di configurazione così privo di senso. Purtroppo, non ho un thinkpad, stavo solo passando questo post alla ricerca di opzioni di controllo dei fan disponibili là fuori.
Alexander

/etc/modprobe.d/thinkfan.conf non esiste nel mio Ubuntu 14.04. E adesso?
Youda008,

14

Per diversi computer Dell è possibile installare il pacchetto i8kutils:

sudo apt install i8kutils

Se hai una Dell non testata (come il mio Dell XPS 14z), potresti dover forzare il caricamento del modulo del kernel:

sudo modprobe i8k force=1

2
Ho un Dell XPS 14 L421X. <code> sensori </code> non ha mostrato fan. dopo aver installato il pacchetto i8kutils, ottengo i sensori coretemp-isa-0000 Adattatore: adattatore ISA ID fisico 0: + 54,0 ° C (alto = + 87,0 ° C, critico = + 105,0 ° C) Nucleo 0: + 50,0 ° C (alto = + 87,0 ° C, critico = + 105,0 ° C) Core 1: + 52,0 ° C (alto = + 87,0 ° C, critico = + 105,0 ° C) Adattatore i8k-virtual-0: Dispositivo virtuale Destra Ventola: 0 RPM CPU: + 55.0 ° C
philcolbourn

Funziona con HP?
Immortal Player

1
@ immortal-player, penso che non lo farà. Il modulo kernel è specificamente progettato per le macchine Dell.
Morhook,

Magari aggiungere, che per Apple c'è macfanctlde mbpfanche per ThinkPad, c'èthinkfan
rubo77

7

Installa e configura i pacchetti lm- sensor e fancontrol :

sudo apt-get install lm-sensors fancontrol

La documentazione per configurarli è disponibile nelle loro pagine man.

Questa è una funzione che dovrebbe essere fornita da un BIOS conforme ACPI, ma sembra che la maggior parte dei produttori di schede madri non si preoccupino di seguire lo standard.


12
Potete fornire istruzioni più dettagliate su come installarle e utilizzarle?
Stefano Palazzo

Puoi trovarlo nella pagina man o su www.lm-sensors.org.
psusi,

40
Lo so, pensavo solo che questa risposta potesse essere migliore :)
Stefano Palazzo

Il link che @psusi ha fornito non funziona, il nuovo link è qui: github.com/groeck/lm-sensors
Svetlana Belkin

1
Penso che tu abbia un nome utente errato.
markroxor,

3

Ecco una versione aggiornata per la risposta che consiglia thinkfan , lavorando con Ubuntu 19.04.

Impostare

Le istruzioni riportate di seguito si applicano a qualsiasi ThinkPad che ha le /proc/acpi/ibm/fane /proc/acpi/ibm/thermaldispositivi "legacy". Questo evita di dover installare il lm-sensorspacchetto.

Tuttavia, potresti comunque installare lm-sensorsper vedere più sensori di temperatura e ottenere un controllo più preciso delle tue ventole (vale a dire, in passi da 256 PWM piuttosto che i passi fissi "0-7 e 127" con i dispositivi legacy. Inoltre, da thinkfanora può funzionare con i lm-sensorssensori, non è più specifico per i computer ThinkPad IBM / Lenovo. Fare riferimento man thinkfanper l'utilizzo di questi dispositivi sensore "estesi". Inoltre, nel Thinkwiki tedesco sono disponibili informazioni aggiornate .

  1. Installa il pacchetto richiesto:

    sudo apt-get install thinkfan
    
  2. Aggiungi la seguente riga a /etc/modprobe.d/thinkfan.conf:

    options thinkpad_acpi fan_control=1
    
  3. Configurare il thinkfanservizio per l'avvio automatico all'avvio del sistema:

    1. Aggiungi una linea START=yesa/etc/default/thinkfan

    2. Esegui il seguente comando ( sorgente ):

      sudo systemctl enable thinkfan.service
      
  4. Adattati /etc/thinkfan.confcon i puntatori giusti ai dispositivi e ai livelli di fan che desideri. I commenti forniscono documentazione. Su qualsiasi Thinkpad con ventola legacy e dispositivi termici, quanto segue dovrebbe fornire un buon punto di partenza (inoltre dovrebbe essere sicuro per il disco rigido, vedere i commenti nel file per ulteriori informazioni). Nota che questo utilizza nuove parole chiave: quelle nell'altra risposta sopra sono obsolete.

    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) 
    

Test

Per testare la tua configurazione (dopo un riavvio), puoi fare come segue:

  • In una finestra del terminale, esegui thinkfanin modalità non daemonizzata in modo da poter vedere i suoi messaggi:

    sudo service thinkfan stop && sudo thinkfan -n
    
  • In un'altra finestra del terminale, tenere d'occhio i valori di temperatura correnti, fornendo il dispositivo sonda di temperatura se diverso:

    while true; do sleep 1; cat /proc/acpi/ibm/thermal; done
    
  • In ancora un'altra finestra del terminale, crea un po 'di calore nella CPU (e interrompilo con Ctrl+ Cnel caso in cui qualcosa nella gestione termica non funzioni come previsto):

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

1
Eccezionale. Questo ha risolto il problema con il mio T490 con Pop_OS 19.04. Il fan si accende ancora, ma non per tutto il tempo.
Nitai,

1
I dispositivi ThinkPad più recenti non hanno /proc/acpi/ibm/thermal, quindi è necessario fare un po 'di lavoro extra per quel caso (elencato convenientemente in quella meravigliosa pagina ThinkWiki tedesca). Mi sembra che abbia funzionato per me, quindi potrei aggiornare la tua risposta o crearne un'altra. Grazie!
Cliff

1

Prova a cercare nell'impostazione UEFI (o nell'impostazione BIOS) del tuo PC. Ci potrebbe essere una regolazione per il controllo della ventola, dove si può mettere il ventilatore in Silent Mode, Performance Mode, Full Speed, Customize, etc.

Come accedere alle impostazioni UEFI : riavviare il PC e la chiave per accedervi apparirà probabilmente in uno degli angoli (ad es. Press F2 to enter UEFI setup)

Configurazione ASRock UEFI per il controllo della ventola


Questo è AskUbuntu non AskUEFI :)
Maarten,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.