Bagaimana cara mengontrol kecepatan kipas?

178

Bagaimana saya bisa mengontrol kecepatan kipas komputer?

Di Windows ada program luar biasa yang disebut SpeedFan .

grizwako
sumber
1
Saya meletakkan solusi cron sederhana untuk kartu ATI di sini askubuntu.com/a/875241/375427
Pavel Niedoba
1
Di linux, fancontroldikonfigurasi menggunakan pwmconfig. Gunakan watch sensorsuntuk mengamati sensor di bawah beban CPU dan GPU. Gunakan nilai-nilai itu saat menganggur dan beban penuh untuk mengatur MINTEMPdan MAXTEMPmasing - masing, dengan INTERVAL=1. Hal ini akan meningkatkan penggemar Anda secara realtime saat beban meningkat. Ini adalah pendinginan paling aktif, memberikan garis dasar untuk penyesuaian lebih lanjut. Jalankan pwmconfigsekali, lalu edit /etc/fancontrollangsung. Jalankan sudo service fancontrol restartsetelah setiap tweak.
Dominic Cerisano

Jawaban:

149

Catatan sebelum memulai:

Fungsi ini tergantung pada perangkat keras dan perangkat lunak Anda. Jika perangkat keras Anda tidak mendukung kontrol kecepatan kipas, atau tidak menunjukkannya ke OS, sangat mungkin Anda tidak dapat menggunakan solusi ini. Jika ya, tetapi perangkat lunak (alias kernel) tidak tahu bagaimana mengendalikannya, Anda tidak beruntung.


  1. Instal paket lm-sensor dan fancontrol .
  2. Konfigurasikan lm-sensor

    1. Dalam tipe terminal sudo sensors-detectdan jawab YA untuk semua YA / tidak ada pertanyaan.
      (Berpotensi, ini dapat merusak sistem Anda atau menyebabkan sistem crash. Untuk banyak sistem, itu aman. Tidak ada jaminan bahwa proses ini tidak akan merusak sistem Anda secara permanen, saya hanya berpikir bahwa kemungkinan kegagalan kritis seperti itu benar-benar sangat rendah. Menyimpan semua pekerjaan Anda untuk crash / pembekuan / restart akhirnya sebelum menangani konfigurasi sistem selalu merupakan ide yang baik. Jika Anda merasa tidak yakin, baca komentar dan cobalah untuk mencari web dan mendapatkan beberapa ikhtisar tingkat tinggi sebelum YA ing semuanya, mungkin sedang selektif dengan YA-es Anda masih akan cukup)
    2. Di akhir deteksi sensor, daftar modul yang perlu dimuat akan ditampilkan. Ketik "ya" untuk mendeteksi sensor-sisipkan modul-modul tersebut ke / etc / modules, atau edit / etc / modules sendiri.
    3. Lari sudo service module-init-tools restart. Ini akan membaca perubahan yang Anda buat /etc/modulespada langkah 3, dan memasukkan modul baru ke dalam kernel.
      • Catatan : Jika Anda menjalankan Ubuntu 13.04 atau lebih tinggi, perintah langkah ke-3 ini harus diganti oleh sudo service kmod start.
  3. Konfigurasikan fancontrol

    1. Dalam tipe terminal sudo pwmconfig. Script ini akan menghentikan setiap kipas selama 5 detik untuk mencari tahu kipas mana yang dapat dikontrol oleh PWM yang menangani. Setelah skrip loop melalui semua kipas, Anda dapat mengonfigurasi kipas mana yang sesuai dengan suhu mana.
    2. Anda harus menentukan sensor apa yang digunakan. Ini agak sulit. Jika Anda hanya memiliki satu kipas, pastikan untuk menggunakan sensor suhu untuk inti Anda untuk mendasari kecepatan fancontrol.
    3. Jalankan melalui prompt dan simpan perubahan ke lokasi default.
    4. Buat penyesuaian untuk menyempurnakan /etc/fancontroldan gunakan sudo service fancontrol restartuntuk menerapkan perubahan Anda. (Dalam kasus saya, saya menetapkan interval ke 2 detik.)
  4. Siapkan layanan fancontrol

    1. Lari sudo service fancontrol start. Ini juga akan membuat layanan fancontrol berjalan secara otomatis saat startup sistem.

Dalam kasus saya /etc/fancontroluntuk CPU saya menggunakan:

Pengaturan untuk hwmon0 / perangkat / pwm2:
(Tergantung pada hwmon0 / perangkat / temp2_input) (Kontrol hwmon0 / perangkat / fan2_input)

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

dan pada sistem yang berbeda itu adalah:

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

berikut adalah beberapa info bermanfaat tentang pengaturan dan apa yang sebenarnya mereka lakukan

GrizzLy
sumber
111
Saya mencoba mengikuti panduan Anda, tetapi macet di langkah ketiga dengan kesalahan ini: / usr / sbin / pwmconfig: Tidak ada modul sensor yang mampu menjalankan PWM
tamale
6
Saya memiliki masalah yang sama dengan pwmconfig sampai saya menjalankan sudo sensor-detect
Gearoid Murphy
5
Apa yang harus dilakukan jika deteksi sensor sudo tidak muncul dengan sensor? -> Maaf, tidak ada sensor yang terdeteksi. Entah sistem Anda tidak memiliki sensor, atau tidak didukung, atau terhubung ke adaptor I2C atau SMBus yang tidak didukung. Jika Anda mengetahui chip apa yang ada di papan Anda, periksa lm-sensors.org/wiki/Devices untuk status driver.
H3R3T1K
5
Jika Anda mengalami masalah, pastikan untuk memeriksa pesan kesalahan Anda. Dalam kasus saya, perubahan kernel terbaru mencegah saya memuat driver yang diperlukan, dan saya harus menambahkan acpi_enforce_resources=laxke opsi kernel saya untuk mendapatkan kembali fungsionalitas yang lama. Lihat juga: goo.gl/tUcr36
bukzor
19
Saya sudah mencoba ini dan saya tidak bisa mendapatkan lebih jauh dari sudo pwmconfig, karena saya mendapatkan: "Tidak ada modul sensor yang mampu pwm diinstal". Ini setelah perintah sensor-detect menemukan 'sensor termal digital Intel'. Saya juga sudah mencoba parameter kernel itu. Adakah yang bisa menyarankan solusi?
Sman789
44

Jika Anda memiliki ThinkPad , ada perangkat lunak bernama thinkfanyang melakukan hal ini. Seperti namanya jelas, itu khusus dibuat untuk ThinkPads ( thinkpad_acpi).

Perangkat thinkfanlunak ini tersedia dalam repositori perangkat lunak standar ubuntu, tetapi memerlukan beberapa langkah untuk mengonfigurasi.

Berikut ini panduan langkah demi langkah yang mudah:

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

(yang pada dasarnya adalah versi terjemahan panduan bahasa Jerman ini: http://thinkwiki.de/Thinkfan )


Informasi yang relevan dari Pos:

Langkah 1. Instal perangkat lunak thinkfan dan sensor:

sudo apt-get install thinkfan lm-sensors

Langkah 2. Pastikan daemon mengendalikan kipas dengan mengedit file thinkpad.conf:

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

dengan menambahkan baris berikut:

options thinkpad_acpi fan_control=1

Langkah 3. Buat daemon memuat secara otomatis saat start-up dengan mengedit file:

sudo nano /etc/default/thinkfan

memastikan bahwa tombol MULAI diatur ke ya, yaitu harus ada garis yang mengatakan:

START=yes

Langkah 4. Deteksi sensor laptop Anda:

sudo sensors-detect

dan cukup pilih jawaban default setiap kali Anda diminta dengan menekan Enter.

Langkah 5. Muat modul-modul baru. Dari ubuntu 13.10 ini dilakukan oleh:

sudo service kmod start

sedangkan untuk versi sebelumnya seperti 13.04 Anda harus melakukannya:

sudo service module-init-tools start

Langkah 6. Cari tahu sensor mana yang digunakan:

sensors

(yang menunjukkan 0 derajat tidak digunakan, saya tidak tahu mengapa itu "terdeteksi" juga). Ingat yang sedang digunakan.

Langkah 7. Temukan jalur lengkap sensor-sensor ini:

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

Outputnya harus berupa daftar path seperti / sys / devices / ...

Langkah 8. Salin dan tempel path ke sensor ke file konfigurasi /etc/thinkpad.conf. Untuk melakukan ini, pertama buka file:

sudo nano /etc/thinkfan.conf

Seharusnya sudah ada garis seperti

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

(simbol # berarti simbol yang dikomentari). Tambahkan garis yang dimulai dengan sensor (tanpa simbol-#) dan salin-tempel sensor pertama Anda. Ulangi ini jika Anda memiliki lebih dari satu sensor. Sebagai contoh, pada mesin saya, output pada langkah 7 menghasilkan

/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 

Yang digunakan di mesin saya adalah yang ada di baris pertama dan terakhir, jadi saya menambahkan tiga baris:

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

Langkah 9. Akhirnya kita dapat mengatur level kecepatan kipas dalam file konfigurasi. Buka file /etc/thinkpad.conf jika belum dibuka.

sudo nano /etc/thinkfan.conf

Level kipas yang saya gunakan pada ThinkPad x201 saya adalah:

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

Baris terakhir memastikan kecepatan kipas penuh (127 = "terlepas" yaitu tidak diatur). Anda dapat bermain-main dengan level-level ini agar sesuai dengan kebutuhan / keinginan Anda, tetapi HARAP HATI-HATI!

Langkah 10. Reboot. Semuanya harus berfungsi sekarang. Untuk memeriksa apakah thinkpad dijalankan dengan benar, gunakan

sudo thinkfan -n

yang memulai thinkfan dalam mode verbose. Anda mungkin ingin menghentikan daemon thinkfan terlebih dahulu:

sudo /etc/init.d/thinkfan stop

Jika Anda ingin memulai daemon thinkfan lagi, ketik:

sudo /etc/init.d/thinkfan start

Agar lengkap, file konfigurasi /etc/thinkfan.conf saya adalah:

# 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)
Keris
sumber
2
Satu komentar: Anda ingin memiliki tumpang tindih yang lebih besar dari nilai suhu seperti dalam tabel berkomentar. Terutama di kisaran 45-55. Jika tidak, kecepatan kipas terus terbalik. Itu sangat mengganggu. (Suara kipas konstan tidak terlalu mengganggu suara yang berfluktuasi.)
HongboZhu
1
Kami (komunitas linux) sangat payah di UX. :( Mengatur kecepatan kipas seharusnya bukanlah proses 10 langkah.
Alexander
2
@Alexander Jika Anda merasa kuat tentang hal ini, Anda bebas menulis dan mengelola sedikit program untuk mengotomatiskan proses ini.
Kris
1
@ Kris Saya akan lebih cenderung untuk memodifikasi program asli untuk tidak memiliki proses konfigurasi yang tidak masuk akal. Sayangnya, saya tidak punya thinkpad, saya hanya melewati pos ini mencari opsi kontrol kipas yang tersedia di luar sana.
Alexander
/etc/modprobe.d/thinkfan.conf tidak ada di Ubuntu 14.04 saya. Apa sekarang?
Youda008
14

Untuk beberapa komputer Dell Anda dapat menginstal paket i8kutils:

sudo apt install i8kutils

Jika Anda memiliki Dell yang belum diuji (seperti Dell XPS 14z saya), Anda mungkin harus memaksa memuat modul kernel:

sudo modprobe i8k force=1
morhook
sumber
2
Saya memiliki Dell XPS 14 L421X. <code> sensor </code> tidak menunjukkan penggemar. setelah menginstal paket i8kutils, saya mendapatkan sensor adaptor coretemp-isa-0000: Adaptor ISA Fisik 0: + 54.0 ° C (tinggi = + 87.0 ° C, crit = + 105.0 ° C) Inti 0: + 50.0 ° C (tinggi = + 87.0 ° C, crit = + 105.0 ° C) Inti 1: + 52.0 ° C (tinggi = + 87.0 ° C, crit = + 105.0 ° C) i8k-virtual-0 Adapter: Perangkat virtual Kipas Kanan: 0 RPM CPU:
+55.0
Apakah ini berfungsi untuk hp?
Pemain Abadi
1
@ pemain abadi, saya pikir tidak akan. Modul kernel dirancang khusus untuk mesin Dell.
morhook
Mungkin menambahkan, bahwa untuk Apple ada macfanctlddan mbpfandan untuk ThinkPad, adathinkfan
rubo77
7

Instal dan konfigurasikan paket lm-sensor dan fancontrol :

sudo apt-get install lm-sensors fancontrol

Dokumentasi untuk mengkonfigurasi mereka tersedia di halaman manual mereka.

Ini adalah fungsi yang seharusnya disediakan oleh ACPI-compliant BIOS, tetapi tampaknya sebagian besar vendor motherboard tidak repot-repot mengikuti standar.

psusi
sumber
12
Bisakah Anda memberikan instruksi yang lebih terperinci tentang cara menginstal dan menggunakannya?
Stefano Palazzo
Anda dapat menemukannya di halaman manual, atau di www.lm-sensors.org.
psusi
40
Saya tahu, saya hanya berpikir jawaban ini bisa lebih baik :)
Stefano Palazzo
Tautan yang diberikan @psusi tidak berfungsi, tautan baru ada di sini: github.com/groeck/lm-sensors
Svetlana Belkin
1
Saya pikir Anda memiliki nama pengguna yang salah eja.
markroxor
3

Ini adalah versi terbaru untuk jawaban yang merekomendasikan thinkfan , bekerja dengan Ubuntu 19.04.

Mempersiapkan

Petunjuk di bawah ini berlaku untuk ThinkPad apa pun yang memiliki perangkat /proc/acpi/ibm/fandan /proc/acpi/ibm/thermal"lawas". Ini menghindari harus menginstal lm-sensorspaket.

Namun, Anda masih dapat menginstal lm-sensorsuntuk melihat lebih banyak sensor suhu dan untuk mendapatkan kontrol lebih halus atas kipas Anda (yaitu, dalam 256 langkah PWM daripada langkah-langkah tetap "0-7 dan 127" dengan perangkat legacy. Juga, sejak thinkfansekarang dapat bekerja dengan lm-sensorssensor, tidak lagi spesifik untuk komputer IBM / Lenovo ThinkPad. Lihat man thinkfanuntuk menggunakan perangkat sensor "tambahan" ini. Juga, ada informasi terbaru di Thinkwiki Jerman .

  1. Instal paket yang diperlukan:

    sudo apt-get install thinkfan
    
  2. Tambahkan baris berikut ke /etc/modprobe.d/thinkfan.conf:

    options thinkpad_acpi fan_control=1
    
  3. Konfigurasikan thinkfanlayanan untuk memulai secara otomatis pada awal sistem:

    1. Tambahkan baris START=yeske/etc/default/thinkfan

    2. Jalankan perintah berikut ( sumber ):

      sudo systemctl enable thinkfan.service
      
  4. Beradaptasi /etc/thinkfan.confdengan pointer yang tepat ke perangkat dan level kipas yang Anda inginkan. Komentar di sana menyediakan dokumentasi. Pada Thinkpad apa pun dengan kipas legacy dan perangkat termal, yang berikut ini harus memberikan titik awal yang baik (juga harus aman untuk hard disk, lihat komentar di file untuk informasi lebih lanjut). Perhatikan bahwa ini menggunakan kata kunci baru - yang di jawaban lain di atas sudah usang.

    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) 
    

Uji

Untuk menguji pengaturan Anda (setelah reboot), Anda dapat melakukan hal berikut:

  • Di satu jendela terminal, jalankan thinkfandalam mode non-daemonized sehingga Anda dapat melihat pesannya:

    sudo service thinkfan stop && sudo thinkfan -n
    
  • Di jendela terminal lain, perhatikan nilai suhu saat ini, yang memasok perangkat probe suhu Anda jika berbeda:

    while true; do sleep 1; cat /proc/acpi/ibm/thermal; done
    
  • Di jendela terminal lain, buat panas di CPU (dan interupsi dengan Ctrl+ Cjika sesuatu dalam manajemen termal tidak berfungsi seperti yang diharapkan):

    sudo apt install stress-ng
    stress-ng --cpu-1
    
tanius
sumber
1
Luar biasa. Ini menyelesaikannya untuk T490 saya dengan Pop_OS 19.04. Kipas masih menyala, tetapi tidak sepanjang waktu.
Nitai
1
Perangkat ThinkPad yang lebih baru tidak memiliki /proc/acpi/ibm/thermal, jadi perlu melakukan beberapa pekerjaan tambahan untuk kasus itu (terdaftar di halaman ThinkWiki Jerman yang luar biasa). Sepertinya saya membuatnya berfungsi untuk saya, jadi saya dapat memperbarui jawaban Anda atau membuat yang lain. Terima kasih!
Tebing
1

Coba cari di pengaturan UEFI (atau pengaturan BIOS) dari PC Anda. Mungkin ada pengaturan untuk kontrol kipas di mana Anda dapat menempatkan kipas Anda ke Silent Mode, Performance Mode, Full Speed, Customize, dll

Cara mengakses pengaturan UEFI : Nyalakan kembali PC Anda dan kunci untuk memasukkannya kemungkinan akan muncul di salah satu sudut (misalnya Press F2 to enter UEFI setup)

Pengaturan ASRock UEFI untuk kontrol kipas

xjcl
sumber
Ini AskUbuntu bukan AskUEFI :)
Maarten