Come faccio a far funzionare il controllo della ventola?


34

So che esiste qualcosa chiamato fancontrol, che ti consente di controllare la velocità della ventilazione del tuo sistema. Vorrei che i miei fan girassero un po 'più velocemente mentre il mio laptop si sta riscaldando molto facilmente. Tutti i tutorial e le cose che ho trovato sono per vecchie versioni di Ubuntu e sembrano non funzionare più.

Qualcuno può spiegarmi o darmi un buon collegamento su come posso farlo funzionare su Ubuntu? Va bene anche qualcosa di diverso con lo stesso effetto.


Abit probabilmente maggiori informazioni sull'hardware probabilmente aiuterebbero, come marca di laptop, nome / numero di modello e tipo / versione di BIOS.
filescraps,

@filescraps Dell Latitude D620: paste.ubuntu.com/699801
RobinJ

5
@RobinJ - hai fatto i soliti controlli per problemi di surriscaldamento - controlla polvere / blocchi - guarda anche il dissipatore di calore del tuo processore. Aggiorna il tuo BIOS con l'ultimo disponibile. Hai provato ad aggiungere "acpi_osi = Linux" al tuo grub? Stai usando opzioni di avvio extra? Fondamentalmente il mio punto è - i problemi di surriscaldamento sono roba di tipo polvere / acpi - non dovresti mai avere bisogno di controllare manualmente la tua ventola.
Fossfreedom

Bene, la ventola inizia a funzionare più velocemente solo a circa 65 ° C, e sembra che sia troppo tardi perché una volta che inizia a salire non scende più a 75 ° C più velocemente. È un laptop e non sono abbastanza sicuro dell'hardware da prendere in considerazione. Cosa fa acpi_osi=Linux? Nessuna opzione di avvio aggiuntiva, solo GRUB predefinito.
RobinJ,

1
@RobinJ - non dimenticare che lo stile del sito Web è quello di aggiungere informazioni pertinenti alla tua domanda piuttosto che seppellirla nei commenti.
Fossfreedom

Risposte:


8

i8kutils funziona per il controllo della ventola del mio laptop Dell Vostro 3350.

# Solo per laptop Dell:
$ sudo apt-get install i8kutils 
$ i8kfan 1 2 # Imposta la ventola sinistra a bassa velocità (1); quello giusto ad alta velocità (2).

Solo che sembra che qualcosa nel BIOS lo ripristini sempre al suo valore precedente dopo alcuni secondi: P Comunque, anche se è un po 'tardi, è ancora la risposta più utile.
RobinJ

funziona sul mio Alienware m14x. Tuttavia, non è ancora possibile impostare il dispositivo di raffreddamento alla massima velocità e ciò sta ancora facendo funzionare il laptop a temperature più elevate. Questo è significativamente più caldo di quanto non fosse su Windows ...
iLemming

Il BIOS lo ripristina, quindi ho aggiunto un cronjob in esecuzione ogni 2 minuti: crontab -ee */2 * * * * /usr/bin/i8kfan 1 1. funziona perfettamente per ora
goksel

14

Molto probabilmente sarai in grado di risolvere il tuo problema con qualcos'altro che sovrascriverà i comandi della tua fan i8kctl con il metodo indicato in questa risposta. Per completezza, includerò alcune note generali sul controllo della ventola sui laptop Dell e istruzioni complete per i8kutils.

Ciò che probabilmente non funzionerà

Sfortunatamente, due mezzi comuni e diretti per controllare la ventola sui laptop sono tramite ACPI e pin PWM:

  • I laptop Dell non dispongono della funzionalità di controllo della ventola ACPI (* 1)

    • di conseguenza, provare con i parametri di avvio ACPI e simili fallirà
  • I laptop Dell Latitude, per quanto ne so, mancano di ventole controllabili su pwm (* 2)

    • di conseguenza, il programma fancontrol/ pwmconfignon funzionerà

Usa i8kutils

Tuttavia, esiste un pacchetto chiamato i8kutilsscritto per controllare la ventola sui laptop Dell Inspiron tramite il BIOS SMM . Diversi utenti segnalano il successo anche sui loro laptop Dell Laitude (io sono uno di loro, su un Dell Latitude E7440) - tuttavia, spesso è necessario un trucco per sbarazzarsi dell'interferenza del controllo della ventola del BIOS. Ne soffri anche secondo un commento precedente.

Installa i8kutils:

$ sudo apt-get install i8kutils

Provalo:

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

... e ascolta per vedere se funziona.

Disabilita il controllo della ventola del BIOS

Se funziona, ma qualcos'altro sta reagendo alla velocità impostata (riportata da molti utenti sui laptop Dell Latitude), ciò è dovuto alle sessioni SMM pianificate che impostano la velocità della ventola. Fortunatamente esiste un modo per disabilitare il controllo della ventola del BIOS scrivendo nei registri SMM .

Avvertenza: vedere l'avvertenza nella parte superiore di smm.c. Questo metodo scriverà nei registri SMM. Tuttavia, non ho visto segnalazioni degli utenti su questo che causano problemi. Inoltre, tutti i rapporti sul tentativo di questo hanno indicato il successo nella disabilitazione del controllo della ventola del BIOS.

i8kutilsinclude l'origine di un programma smmma il i8kutilspacchetto non include il file binario compilato. Quello che faremo è scaricare il codice sorgente di i8kutils, compilare il programma smmed eseguirlo con un argomento appropriato per disabilitare il controllo della ventola del BIOS scrivendo nei registri SMM.

Scarica i pacchetti necessari per la costruzione:

$ sudo apt-get build-dep i8kutils

Scarica i8kutilsil codice sorgente, estrai e inserisci la directory (nomi esatti a seconda della versione di i8k):

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

Compilare smm:

  • Se su un sistema a 32 bit :

    $ make
    

    (Sopra verrà eseguito gcc -g -O2 -Wall -I. -o smm smm.c.)

  • Se su un sistema a 64 bit :

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

Esegui smmcon argomento 30a3per disabilitare il controllo della ventola SMM:

$ sudo ./smm 30a3

Ora, il controllo della ventola del BIOS dovrebbe essere disabilitato. Prova impostando la velocità con i8kctl, ascolta la ventola e assicurati che la velocità persista.

Nota: questa è un'impostazione che persiste il riavvio e lo spegnimento. Il controllo della ventola del BIOS può essere nuovamente abilitato con $ sudo ./smm 31a3.


* 1: ho visto una fonte ufficiale su questo, non riesco a trovarlo in questo momento. Se vuoi verificare che il tuo hardware sia privo di, segui le istruzioni qui: https://wiki.ubuntu.com/DebuggingACPI

* 2: per verificare questo, eseguire pwmconfig: sudo apt-get install fancontrol, sudo pwm-configdirà se una ventola PWM con capacità sia presente o meno


In realtà ho usato il parametro ACPI acpi_osi='!Windows 2012', per tenere sotto controllo le ventole del mio Dell Inspiron 15R 5520, poiché giravano sempre alla massima velocità indipendentemente dalla temperatura.
user311982

Questa dovrebbe essere la risposta corretta. È ben informato e molto pertinente!
ppr

Bella risposta. Inoltre trovato qui
malat

1
Grazie mille, questo ha funzionato per me dopo aver provato tutto il resto inutilmente. Quando ho provato a compilare smm mi mancava sys / cdefs.h ma l'ho sudo apt-get install g++-multilibportato (come indicato in askubuntu.com/questions/470796/… )
Philip Daniels il

Potrei essere un po 'in ritardo, ma c'è qualche svantaggio di metterlo alla massima velocità?
Zerquix18,

14

Il pacchetto lm-sensor Installa i sensori lm potrebbe essere quello che stai cercando.

E come hai suggerito fancontrol Installa fancontrol .

Assicurati che tutte le ventole che stai cercando di controllare tramite software abbiano il connettore a 4 pin.

"Una ventola con capacità PWM è normalmente collegata a un connettore a 4 pin (pinout: terra, + 12V, rilevamento, controllo)." fonte

Quando corro, pwmconfigche fa parte di Fancontrol, ottengo

/usr/sbin/pwmconfig: There are no pwm-capable sensor modules installed Ti guiderà se hai hardware compatibile.

Ecco alcuni script da utilizzare insieme al file di configurazione generato. Presumo che qui potresti impostare un valore più alto.

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

Ma come ho detto, non posso testarlo da solo, poiché il mio hardware non lo supporta, posso controllare i miei fan dal BIOS, ma è un grado di 3. Lo uso per mantenere il mio fan lento e silenzioso.


1
/ usr / sbin / pwmconfig: non sono installati moduli sensore compatibili con pwm Altri modi?
RobinJ,

Di solito è necessario eseguire sensors-detectprima e caricare un modulo che dice per ottenere la lettura della temperatura e della velocità della ventola, quindi pwmconfig può manipolarlo.
psusi,

@RobinJ, sembra che tu non abbia un chip riconosciuto / supportato.
psusi,

Ti assegnerò la generosità poiché questa è stata la risposta più istruttiva che potrebbe aiutare la maggior parte delle altre persone.
RobinJ,

5

Ok, questa potrebbe non essere la risposta che stai cercando, ma i miei problemi di surriscaldamento sono stati risolti quando ho rimosso la polvere mettendo un aspirapolvere sulle prese di ventilazione. Se si riscontra un surriscaldamento a basse frequenze della CPU, potrebbe valere la pena provare. Tenere presente che forse le piccole parti potrebbero essere risucchiate. Se si è fortunati questo metodo potrebbe risolvere i problemi di surriscaldamento.


Ho assegnato la grazia alla risposta precedente perché era la più istruttiva, ma il mio problema sembra essere legato all'hardware, quindi la tua risposta è arrivata più vicina alla soluzione. Ma dato che non sono abbastanza sicuro di fare casino con l'hardware del mio laptop, l'ho appena portato in negozio perché era ancora in garanzia.
RobinJ,

Ho appena provato questo e ha funzionato. Grazie! La mia ventola ha iniziato a diventare più rumorosa e ho avuto uno o due arresti a causa del surriscaldamento. Spero che questo l'abbia risolto. La ventola ora si accende e si spegne con il normale utilizzo della CPU, il che è fantastico (prima di rimanere sempre acceso).
Cymen,

@Cymen Basta essere sicuri che il vuoto sia un vuoto antistatico, per sicurezza. Uso una bomboletta di aria compressa per pulire le prese d'aria, cosa che puoi fare anche in alternativa.
user311982

3

Ho un Dell Latitude e4200 e quanto segue ha funzionato per me perché il BIOS stava scavalcando le impostazioni di i8kfan. La temperatura iniziale del mio computer era di 105F gradi e circa 10 minuti dopo aver usato questi passaggi (impostazione della ventola = 2) le temperature CPU / Core sono scese a 96F gradi. Questa procedura era già stata pubblicata da qualcuno:

Passaggio 1. Scarica e installa i8ktutils:

# sudo apt-get install i8kutils

Passaggio 2. Sostituire il BIOS per evitare che interrompa le impostazioni personalizzate della ventola. Scarica il codice sorgente e compila un programma (SMM) per fare questo:

# sudo apt-get build-dep i8kutils

poi:

# apt-get source i8kutils

Passaggio 3. Estrarre il codice sorgente e il cd nella directory:

# tar xvf i8kutils_1.33.tar.gz

poi:

# cd i8kutils-1.33/

Passaggio 4. Compilare 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)

Passaggio 5. Eseguire SMM con i parametri:

# sudo ./smm 30a3

Passaggio 6. Impostare le velocità della ventola:

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

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

Ora il controllo della ventola del BIOS non dovrebbe ignorare le impostazioni della ventola. Questa impostazione rimarrà anche se il sistema viene riavviato. Per restituire il controllo al BIOS per qualche motivo, attenersi alla seguente procedura:

# sudo ./smm 31a3.

C'è anche un modo per controllare la temperatura usando lm_sensors:

http://www.cyberciti.biz/faq/howto-linux-get-sensors-information/

1
Ho provato questo per la versione più recente di i8kutils-1.41 su Ubuntu 14.04 e ho ottenuto "Nel file incluso da /usr/include/stdio.h:27:0, da smm.c: 27: /usr/include/features.h: 374: 25: errore fatale: sys / cdefs.h: nessun file o directory "Tuttavia, questo risolve il problema askubuntu.com/questions/470796/…
k-den
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.