Fan kontrolünü nasıl çalıştırabilirim?


34

Fancontrol adı verilen ve sisteminizin havalandırma hızını kontrol etmenizi sağlayan bir şey olduğunu biliyorum. Dizüstü bilgisayarım çok kolay ısınırken fanlarımın biraz daha hızlı dönmesini istiyorum. Tüm dersler ve bulduğum şeyler Ubuntu'nun eski sürümleri içindir ve artık çalışmıyor gibi görünmektedir.

Herhangi biri bana açıklayabilir veya Ubuntu'da nasıl çalıştırabilirim hakkında iyi bir bağlantı verebilir mi? Aynı etkiye sahip farklı bir şey de iyidir.


Donanım hakkında daha fazla bilgi edinmek, muhtemelen bir dizüstü bilgisayar markası, model adı / numarası ve bios tipi / sürümü gibi yardımcı olacaktır.
filescraps

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

5
@RobinJ - aşırı ısınma sorunları için genel kontroller yaptınız mı - toz / tıkanma kontrolü yapın - işlemci soğutucuya da bakın. Biyografilerinizi mevcut en son sürümle güncelleyin. Grubunuza "acpi_osi = Linux" eklemeyi denediniz mi? Fazladan önyükleme seçeneği kullanıyor musunuz? Temel olarak benim açımdan - aşırı ısınma sorunları toz / acpi tipi şeylerdir - fanınızı manuel olarak kontrol etmeniz gerekmez.
fossfreedom

Vantilatör sadece 65 ° C civarındayken daha hızlı çalışmaya başlıyor ve o zaman çok geç görünüyor çünkü yükselmeye başladığında artık 75 ° C'nin altına düşmüyor. Bu bir dizüstü bilgisayar ve ben de onu almak için donanım konusunda yeterince emin değilim. Ne yapar acpi_osi=Linux? Ekstra önyükleme seçeneği yok, sadece varsayılan GRUB.
RobinJ

1
@RobinJ - web sitesinin tarzını unutma, yorumlarına gömmek yerine, soruna tekrar ilgili bilgileri eklemek.
fossfreedom

Yanıtlar:


8

i8kutils, Dell Vostro 3350 dizüstü bilgisayarımın fanını kontrol etmek için çalışıyor.

# Yalnızca Dell dizüstü bilgisayar için:
$ sudo apt-get install i8kutils 
$ i8kfan 1 2 # Sol fanı düşük hıza ayarlayın (1); yüksek hızda doğru olanı (2).

Sadece BIOS'taki birşeyler birkaç saniye sonra daima önceki değerine geri döner: P Her neyse, biraz geç olsa bile, yine de en yararlı cevaptır.
RobinJ

benim Alienware m14x üzerinde çalışıyor. Ancak, soğutucuyu hala maksimum hızına ayarlayamaz ve bu da dizüstü bilgisayarın daha yüksek sıcaklıklarda çalışmasına neden olur. Bu, Windows'takinden çok daha sıcak ...
iLemming

BIOS geri ayarlar böylece 2 dakikada bir çalışan bir cronjob ekledim: crontab -eve */2 * * * * /usr/bin/i8kfan 1 1. şimdilik mükemmel çalışıyor
goksel

14

Sorununuzu i8kctl fan komutlarınızı geçersiz kılan başka bir şeyle, bu yanıtta verilen yöntemle çözebileceksiniz. Tamamlanması için, Dell dizüstü bilgisayarlarda fan kontrolü hakkında bazı genel notlar ve tüm talimatlara yer vereceğim i8kutils.

Muhtemelen işe yaramayacak olan ne

Ancak, dizüstü bilgisayarlarda fanın kontrol edilmesinin iki yaygın ve düz yolu ACPI ve PWM pinleri aracılığıyladır, ancak ne yazık ki:

  • Dell dizüstü bilgisayarlarda ACPI fan kontrol özelliği bulunmuyor (* 1)

    • Bunun bir sonucu olarak, ACPI önyükleme parametreleri ve benzerleriyle denemek başarısız olur
  • Dell Latitude dizüstü bilgisayarlarda bildiğim kadarıyla pwm kontrol edilebilecek fanlardan yoksun (* 2)

    • sonuç olarak fancontrol/ pwmconfigprogram çalışmaz

İ8kutils kullanın

Ancak, i8kutilsDell Inspiron dizüstü bilgisayarlardaki fanı SMM BIOS üzerinden kontrol etmek için yazılmış bir paket var . Birkaç kullanıcı, Dell Laitude dizüstü bilgisayarlarında da başarılı olduğunu bildirdi (ben bunlardan biriyim, bir Dell Latitude E7440'ta) - ancak, BIOS fan kontrolünü engellemekten kurtulmak için genellikle bir numara gerekir. Daha önceki bir yoruma göre bu durumdan muzdaripsiniz.

Yükleyin i8kutils:

$ sudo apt-get install i8kutils

Dene:

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

... ve işe yarayıp yaramadığını görmek için dinleyin.

BIOS fan kontrolünü devre dışı bırakın

Çalışıyorsa, ancak başka bir şey belirlenmiş hızda geri dönüyorsa (Dell Latitude dizüstü bilgisayarlarındaki birçok kullanıcı tarafından bildirilir), bunun nedeni fan hızını geri ayarlayan zamanlanmış SMM oturumlarıdır. Neyse ki , SMM kayıtlarına yazarak BIOS fan kontrolünü devre dışı bırakmanın bir yolu var .

Uyarı: smm.c'nin üstündeki uyarıya bakın. Bu yöntem SMM kayıtlarına yazacaktır. Ancak, bu soruna neden olan hiçbir kullanıcı raporu görmedim. Ayrıca, bunu denemeye ilişkin tüm raporlar, BIOS fan kontrolünün devre dışı bırakılmasında başarılı olduğunu göstermiştir.

i8kutilsBir programın kaynağını içerir smmancak i8kutilspaket derlenmiş ikili dosyayı içermez. Yapacağımız şey, kaynak kodunu indirmek, i8kutilsprogramı derlemek ve smmSMM kayıt defterlerine yazarak BIOS fan kontrolünü devre dışı bırakmak için uygun bir argümanla çalıştırmak.

Bina için gerekli paketleri indirin:

$ sudo apt-get build-dep i8kutils

i8kutilsKaynak kodu indirin , ayıklayın ve dizini girin (i8k sürümüne bağlı olarak tam adlar):

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

Derle smm:

  • Bir üzerinde ise 32 bit sistemde:

    $ make
    

    (Yukarıda yürütülür gcc -g -O2 -Wall -I. -o smm smm.c.)

  • Bir üzerinde ise 64 bit sistemde:

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

SMM fan kontrolünü devre dışı bırakmak smmiçin argümanla çalıştırın 30a3:

$ sudo ./smm 30a3

Şimdi, BIOS fan kontrolü devre dışı bırakılmalıdır. Hızları ayarlayarak deneyin i8kctl, fanı dinleyin ve hızın sürdüğünden emin olun.

Not: Bu yeniden başlatmaya ve kapanmaya devam edecek bir ayardır. BIOS fan kontrolü ile tekrar etkinleştirilebilir $ sudo ./smm 31a3.


* 1: Bu konuda resmi bir kaynak gördüm, şu anda bulamıyorum. Donanımınızın bulunmadığını doğrulamak istiyorsanız, aşağıdaki talimatları izleyin: https://wiki.ubuntu.com/DebuggingACPI

* 2: bunu doğrulamak için, pwmconfig: komutunu çalıştırın sudo apt-get install fancontrol, sudo pwm-configpwm özellikli bir fanın olup olmadığını söyleyin


Aslında acpi_osi='!Windows 2012'Dell Inspiron 15R 5520 fanlarımı kontrol altına almak için sıcaklıktan bağımsız olarak her zaman maksimum hızda dönecekleri için ACPI parametresini kullandım .
user311982 22:15

Bu doğru cevap olmalı. İyi bilgilendirilmiş ve çok ilgili!
ppr

Mükemmel cevap. Ayrıca burada
malat

1
Çok teşekkür ederim, bu benim için boşuna başka her şeyi denedikten sonra çalıştı. Smm'yi derlemeye çalıştığımda sys / cdefs.h eksikti ama içeri sudo apt-get install g++-multilibgirdi ( askubuntu.com/questions/470796/… adresinde belirtildiği gibi )
Philip Daniels

Biraz gecikebilirim ama, en yüksek hıza getirmenin bir dezavantajı var mı?
Zerquix18

14

Lm-sensorleri paketi Lm-sensor'ları kurunaradığınız şey olabilir.

Fancontrol'ü önerdiğin gibiFancontrol yükleyin .

Yazılım üzerinden kontrol etmeye çalıştığınız tüm fanların 4 uçlu konektöre sahip olduğundan emin olun.

"PWM özellikli bir fan genellikle 4 pinli bir konektöre bağlanır (pinout: Ground, + 12V, sense, control)." kaynak

Ne zaman çalıştırmak pwmconfigalıyorum fancontrol bir parçası olan

/usr/sbin/pwmconfig: There are no pwm-capable sensor modules installed Uyumlu bir donanıma sahipseniz size rehberlik edecektir.

İşte o oluşturulan config dosyası ile birlikte kullanmak için bazı komut dosyaları. Burada daha yüksek bir değer ayarlayabileceğinizi varsayıyorum.

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

Ama dediğim gibi, bunu kendi başıma test edemiyorum, çünkü donanımım desteklemiyor, fanlarımı biyografilerden kontrol edebiliyorum, ama bu 3 dereceli bir sınıf.


1
/ usr / sbin / pwmconfig: Kurulu pwm özellikli sensör modülü yok Başka bir yolu var mı?
RobinJ

Genellikle önce çalıştırmanız sensors-detectve sıcaklık ve fan hızı okuması için belirtilen bir modülü yüklemeniz gerekir , sonra pwmconfig bunu değiştirebilir.
psusi

@RobinJ, tanınan / desteklenen bir yonganız olmadığı anlaşılıyor.
psusi

Size, diğer insanların çoğunda yardımcı olabilecek en bilgilendirici cevap olduğu için size ödül vereceğim.
RobinJ

5

Tamam, aradığınız cevap bu olmayabilir, ancak havalandırma girişlerine bir elektrikli süpürge koyarak tozu aldığımda aşırı ısınma sorunlarım çözüldü. Düşük cpu frekanslarında aşırı ısınma yaşarsanız, bu denemeye değer olabilir. Küçük parçaların emilebileceğini unutmayın. Şanslıysanız bu yöntem sizi aşırı ısınma sorunlarına çözebilir.


En bilgilendirici olanı olduğu için yukarıda verilen ödülü ödüllendirdim, ancak sorunum donanım ile ilgili görünüyor, bu yüzden cevabınız çözüme en yakın olanıydı. Fakat dizüstü bilgisayarımın donanımını bozacak kadar kendime güvenmediğim için kendimi hala güvencede olduğu için mağazaya getirdim.
RobinJ

Sadece bunu denedim ve işe yaradı. Teşekkürler! Fanım daha da yükselmeye başlamıştı ve aşırı ısınma nedeniyle bir ya da iki tane kapanma oldu. Umarım bu düzeltti. Fan şimdi her zaman açık kalmadan önce harika olan normal CPU kullanımıyla açılıp kapanıyor.
Cymen

@Cymen Vakumun güvenli olması için, antistatik bir vakum olduğundan emin olun. Alternatif olarak da yapabileceğiniz havalandırma deliklerini temizlemek için basınçlı hava kabı kullanıyorum.
user311982 22:15

3

Bir Dell Latitude e4200'üm var ve BIOS i8kfan ayarını geçersiz kıldığı için aşağıdakiler benim için çalıştı. Bilgisayarımın başlangıç ​​sıcaklığı 105F derece idi ve bu adımları kullandıktan sonra yaklaşık 10 dakika (fan ayarı = 2) CPU / Çekirdek sıcaklıkları 96F dereceye düştü. Bu prosedür zaten birileri tarafından gönderildi:

1. Adım. İndirin ve kurun:

# sudo apt-get install i8kutils

Adım 2. Özel fan ayarlarını kesmesini önlemek için BIOS'u geçersiz kılın. Kaynak kodu indirin ve bunu yapmak için bir program (SMM) derleyin:

# sudo apt-get build-dep i8kutils

sonra:

# apt-get source i8kutils

Adım 3. Kaynak kodu ve cd'yi dizine çıkartın:

# tar xvf i8kutils_1.33.tar.gz

sonra:

# cd i8kutils-1.33/

Adım 4. SMM'yi derleyin

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)

Adım 5. SMM'yi parametrelerle yürütün:

# sudo ./smm 30a3

Adım 6. Fan hızlarını ayarlayın:

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

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

Şimdi BIOS fan kontrolü, fan ayarlarını geçersiz kılmamalıdır. Sistem yeniden başlatılsa bile bu ayar korunur. Herhangi bir nedenden dolayı BIOS'a kontrolü geri vermek için aşağıdaki işlemleri yapın:

# sudo ./smm 31a3.

Sıcaklığı kontrol etmek için lm_sensors'ı kullanarak da bir yol var:

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

1
Bunu, Ubuntu 14.04'teki i8kutils-1.41'in en son sürümü için denedim ve "/usr/include/stdio.h:27:0 dosyasında, smm.c: 27: /usr/include/features.h dosyasında yer alıyor" ifadesini aldı: 374: 25: önemli hata: sys / cdefs.h: böyle bir dosya ya da dizin "Ancak bu giderdiği sorun askubuntu.com/questions/470796/...
k-den
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.