Bagaimana cara membuat kontrol kipas berfungsi?

34

Saya tahu ada sesuatu yang disebut fancontrol, yang memungkinkan Anda untuk mengontrol kecepatan ventilasi sistem Anda. Saya ingin membiarkan penggemar saya berputar sedikit lebih cepat karena laptop saya memanas dengan sangat mudah. Semua tutorial dan hal yang saya temukan adalah untuk versi lama Ubuntu dan sepertinya tidak berfungsi lagi.

Adakah yang bisa menjelaskan kepada saya atau memberikan saya tautan yang bagus tentang bagaimana saya bisa membuatnya bekerja di Ubuntu? Sesuatu yang berbeda dengan efek yang sama juga baik-baik saja.

RobinJ
sumber
Abit informasi lebih lanjut tentang perangkat keras mungkin akan membantu, seperti merek laptop, nama model / nomor, dan tipe / versi bios.
filescraps
@filescraps Dell Latitude D620: paste.ubuntu.com/699801
RobinJ
5
@RobinJ - sudahkah Anda melakukan pemeriksaan biasa untuk masalah panas berlebih - periksa debu / penyumbatan - lihat juga heatsink prosesor Anda. Perbarui bios Anda dengan yang terbaru. Sudahkah Anda mencoba menambahkan "acpi_osi = Linux" ke grub Anda? Apakah Anda menggunakan opsi boot tambahan? Pada dasarnya poin saya adalah - masalah overheating adalah debu / ACPI - Anda tidak perlu mengontrol kipas Anda secara manual.
fossfreedom
Nah, kipas hanya mulai berjalan lebih cepat ketika berada di sekitar 65 ° C, dan sepertinya sudah terlambat maka karena begitu mulai naik, ia tidak pergi di bawah 75 ° C terlalu cepat lagi. Ini laptop dan saya tidak cukup percaya diri dengan perangkat keras untuk menggunakannya. Apa yang acpi_osi=Linuxharus dilakukan Tidak ada opsi boot tambahan, hanya GRUB default.
RobinJ
1
@RobinJ - jangan lupa gaya situs web ini adalah menambahkan informasi yang relevan kembali ke pertanyaan Anda daripada menguburnya dalam komentar.
fossfreedom

Jawaban:

8

i8kutils berfungsi untuk mengendalikan kipas laptop Dell Vostro 3350 saya.

# Hanya untuk laptop Dell:
$ sudo apt-get install i8kutils 
$ i8kfan 1 2 # Atur kipas kiri dengan kecepatan rendah (1); yang tepat dengan kecepatan tinggi (2).
pengguna1902715
sumber
Hanya sepertinya sesuatu di BIOS selalu mengembalikannya ke nilai sebelumnya setelah beberapa detik: P Bagaimanapun juga, meskipun agak terlambat, itu masih merupakan jawaban yang paling membantu.
RobinJ
ini bekerja pada m14x Alienware saya. Tapi, itu masih tidak dapat mengatur pendingin ke kecepatan maksimal dan itu masih menyebabkan laptop berjalan pada suhu yang lebih tinggi. Itu jauh lebih panas daripada di Windows ...
iLemming
BIOS memasangnya kembali jadi saya menambahkan cronjob berjalan di setiap 2 menit: crontab -edan */2 * * * * /usr/bin/i8kfan 1 1. berfungsi dengan baik untuk saat ini
goksel
14

Anda kemungkinan besar akan dapat menyelesaikan masalah Anda dengan sesuatu yang mengesampingkan perintah kipas i8kctl Anda dengan metode yang diberikan dalam jawaban ini. Untuk kelengkapan, saya akan menyertakan beberapa catatan umum tentang kontrol kipas pada laptop Dell, dan instruksi lengkap untuk i8kutils.

Apa yang mungkin tidak akan berhasil

Namun, dua cara yang umum dan mudah untuk mengendalikan kipas pada laptop adalah melalui ACPI dan melalui pin PWM, namun, sayangnya:

  • Laptop Dell tidak memiliki kemampuan kontrol kipas ACPI (* 1)

    • sebagai akibatnya, mencoba dengan parameter boot ACPI dan sejenisnya akan gagal
  • Laptop Dell Latitude, sejauh yang saya tahu, tidak memiliki penggemar yang bisa dikendalikan PWM (* 2)

    • sebagai konsekuensinya, fancontrol/ pwmconfigProgram tidak akan bekerja

Gunakan i8kutils

Namun, ada paket bernama i8kutilsyang ditulis untuk mengontrol kipas pada laptop Dell Inspiron melalui SMM BIOS . Beberapa pengguna melaporkan kesuksesan pada laptop Dell Laitude mereka (saya salah satunya, pada Dell Latitude E7440) - namun, sebuah trik sering kali diperlukan untuk menghilangkan campur tangan kendali kipas BIOS. Anda menderita itu juga menurut komentar sebelumnya.

Pasang i8kutils:

$ sudo apt-get install i8kutils

Cobalah:

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

... dan dengarkan apakah itu berhasil.

Nonaktifkan kontrol kipas BIOS

Jika berhasil, tetapi hal lain melawan kecepatan yang ditetapkan (dilaporkan oleh banyak pengguna pada laptop Dell Latitude), ini disebabkan oleh sesi SMM terjadwal yang mengatur kecepatan kipas kembali. Untungnya ada cara untuk menonaktifkan kontrol kipas BIOS dengan menulis ke register SMM .

Peringatan: lihat peringatan di atas smm.c. Metode ini akan menulis ke register SMM. Namun, saya tidak melihat laporan pengguna tentang masalah ini. Juga, semua laporan tentang mencoba ini telah menunjukkan keberhasilan dalam menonaktifkan kontrol kipas BIOS.

i8kutilstermasuk sumber dari suatu program smmtetapi i8kutilspaket tidak termasuk biner yang dikompilasi. Apa yang akan kita lakukan adalah mengunduh kode sumber i8kutils, mengkompilasi program smm, dan menjalankannya dengan argumen yang sesuai untuk menonaktifkan kontrol kipas BIOS dengan menulis ke register SMM.

Unduh paket yang dibutuhkan untuk membangun:

$ sudo apt-get build-dep i8kutils

Unduh i8kutilskode sumber, ekstrak dan masukkan direktori (nama persis tergantung versi i8k):

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

Kompilasi smm:

  • Jika pada sistem 32-bit :

    $ make
    

    (Di atas akan mengeksekusi gcc -g -O2 -Wall -I. -o smm smm.c.)

  • Jika pada sistem 64-bit :

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

Jalankan smmdengan argumen 30a3untuk menonaktifkan kontrol kipas SMM:

$ sudo ./smm 30a3

Sekarang, kontrol kipas BIOS harus dinonaktifkan. Cobalah dengan mengatur kecepatan dengan i8kctl, dengarkan kipas angin dan pastikan kecepatannya tetap ada.

Catatan: Ini adalah pengaturan yang akan melanjutkan reboot dan mematikannya. Kontrol kipas BIOS dapat diaktifkan kembali dengan $ sudo ./smm 31a3.


* 1: Saya sudah melihat sumber resmi tentang ini, tidak dapat menemukannya sekarang. Jika Anda ingin memverifikasi bahwa perangkat keras Anda tidak memilikinya, ikuti instruksi di sini: https://wiki.ubuntu.com/DebuggingACPI

* 2: untuk memverifikasi, jalankan pwmconfig ini: sudo apt-get install fancontrol, sudo pwm-configakan memberitahu jika penggemar PWM-mampu hadir atau tidak

Carl
sumber
Saya benar-benar menggunakan parameter ACPI acpi_osi='!Windows 2012',, untuk mengendalikan kipas Dell Inspiron 15R 5520, karena mereka akan selalu berputar dengan kecepatan maksimal, terlepas dari suhu.
user311982
Ini seharusnya jawaban yang benar. Informasi lengkap dan sangat relevan!
ppr
Jawaban yang bagus Juga ditemukan di sini
malat
1
Terima kasih banyak, ini bekerja untuk saya setelah mencoba yang lain tidak berhasil. Ketika saya mencoba untuk mengkompilasi smm saya kehilangan sys / cdefs.h tetapi sudo apt-get install g++-multilibmembawanya (seperti yang direferensikan di askubuntu.com/questions/470796/... )
Philip Daniels
Saya mungkin sedikit terlambat, tetapi, apakah ada kelemahan menempatkannya pada kecepatan maksimal?
Zerquix18
14

Paket sensor lm Pasang sensor lm mungkin apa yang Anda cari.

Dan seperti yang Anda sarankan fancontrol Instal fancontrol .

Pastikan semua penggemar yang Anda coba kendalikan melalui perangkat lunak memiliki konektor 4 pin.

"Kipas yang mampu PWM biasanya terhubung ke konektor 4-pin (pinout: Ground, + 12V, sense, control)." sumber

Ketika saya menjalankan pwmconfigyang merupakan bagian dari fancontrol saya dapatkan

/usr/sbin/pwmconfig: There are no pwm-capable sensor modules installed Ini akan memandu Anda jika Anda memiliki perangkat keras yang kompatibel.

Berikut adalah beberapa skrip untuk digunakan bersama dengan file konfigurasi yang dihasilkan. Saya berasumsi bahwa Anda dapat menetapkan nilai yang lebih tinggi di sini.

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

Tapi seperti yang saya katakan, saya tidak bisa mengujinya sendiri, karena perangkat keras saya tidak mendukungnya, saya bisa mengendalikan penggemar saya dari bios, tapi ini tingkat 3. Saya menggunakannya untuk menjaga agar kipas saya lambat dan diam.

remah-remah file
sumber
1
/ usr / sbin / pwmconfig: Tidak ada modul sensor yang mampu menjalankan PWM Ada cara lain?
RobinJ
Anda biasanya perlu menjalankan sensors-detectterlebih dahulu, dan memuat modul yang dikatakannya untuk mendapatkan pembacaan suhu dan kecepatan kipas, dan kemudian pwmconfig dapat memanipulasinya.
psusi
@RobinJ, tampaknya Anda tidak memiliki chip yang dikenal / didukung.
psusi
Saya akan memberikan hadiah kepada Anda karena ini adalah jawaban paling informatif yang dapat membantu kebanyakan orang.
RobinJ
5

Ok, ini mungkin bukan jawaban yang Anda cari, tapi masalah kepanasan saya terpecahkan, ketika menghilangkan debu dengan meletakkan penghisap debu pada lubang ventilasi. Jika Anda mengalami panas berlebih pada frekuensi cpu rendah, ini mungkin patut dicoba. Ketahuilah bahwa mungkin ada bagian-bagian kecil yang tersedot. Jika Anda beruntung, metode ini dapat menyelesaikan masalah panas berlebih.

Ewald
sumber
Saya memberikan hadiah kepada eanswer di atas karena ini adalah yang paling informatif, tetapi masalah saya tampaknya terkait dengan perangkat keras, jadi jawaban Anda paling mendekati solusi. Tetapi karena saya tidak cukup percaya diri untuk mengacaukan perangkat keras laptop saya, saya membawanya ke toko karena masih dalam jaminan.
RobinJ
Saya baru saja mencoba ini dan itu berhasil. Terima kasih! Kipas saya mulai menjadi lebih keras dan saya memang memiliki satu atau dua shutdown karena terlalu panas. Semoga ini telah memperbaikinya. Kipas sekarang bersepeda dan mematikan dengan pemanfaatan CPU normal yang sangat bagus (sebelum itu tetap ada sepanjang waktu).
Cymen
@Cymen Pastikan vakum adalah vakum anti-statis, agar aman. Saya menggunakan sekaleng udara terkompresi untuk membersihkan ventilasi, yang juga dapat Anda lakukan sebagai alternatif.
user311982
3

Saya memiliki Dell Latitude e4200 dan yang berikut ini berfungsi untuk saya karena BIOS mengesampingkan pengaturan i8kfan. Suhu awal komputer saya adalah 105F derajat dan sekitar 10 menit setelah menggunakan langkah-langkah ini (pengaturan kipas = 2) suhu CPU / Core turun menjadi 96F derajat. Prosedur ini sudah diposting oleh seseorang:

Langkah 1. Unduh dan instal i8ktutils:

# sudo apt-get install i8kutils

Langkah 2. Ganti BIOS agar tidak mengganggu pengaturan kipas kustom. Unduh kode sumber dan kompilasi program (SMM) untuk melakukan ini:

# sudo apt-get build-dep i8kutils

kemudian:

# apt-get source i8kutils

Langkah 3. Ekstrak kode sumber dan cd ke direktori:

# tar xvf i8kutils_1.33.tar.gz

kemudian:

# cd i8kutils-1.33/

Langkah 4. Kompilasi 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)

Langkah 5. Jalankan SMM dengan parameter:

# sudo ./smm 30a3

Langkah 6. Atur kecepatan kipas:

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

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

Sekarang kendali kipas BIOS tidak boleh mengesampingkan pengaturan kipas. Pengaturan ini akan tetap ada bahkan jika sistem di-boot ulang. Untuk memberikan kontrol kembali ke BIOS karena beberapa alasan, lakukan prosedur berikut:

# sudo ./smm 31a3.

Ada juga cara untuk memeriksa temp dengan menggunakan lm_sensors:

http://www.cyberciti.biz/faq/howto-linux-get-sensors-information/
pengguna245946
sumber
1
Mencoba ini untuk versi terbaru dari i8kutils-1.41 di Ubuntu 14.04 dan mendapatkan "Dalam file termasuk dari /usr/include/stdio.h:27-200, dari smm.c: 27: /usr/include/features.h: 374: 25: kesalahan fatal: sys / cdefs.h: Tidak ada file atau direktori "" Namun ini memperbaiki masalah itu askubuntu.com/questions/470796/…
k-den