Lenovo Fan kontrol programı var mı ?
3 aydır kullanıyorum sevdim pardusu silesim yok bilgisayarım canlandı sanki
Donanım destekliyorsa kendiniz de yazabilirsiniz, Cursor, vscode vs gibi vibe coding araçları ile kolay şekilde yapılabilir
Genelde pek özel çabaya ihtiyaç duyulmadan otomatik kontrol altında iyi çalıştığından, özel ihtiyaca göre özel çaba sarf etmek gerekiyor.
Biraz İnternet arama motoru, biraz Yapay Zeka yardımıyla bir şeyler yapılabilir.
Burası (ve thinkfan kurup denemek) başlangıç noktası olabilir: Kevin Boone: Using thinkfan for fan control on Lenovo (Linux) laptops
Bir uygulama yazdım. Şu adımları takip edin:
1. Paketleri yükleme
Aşağıdaki komutları terminale yazın:
# Sistem paket listesini güncelle
sudo apt update
# Python ve PySide6 arayüz kütüphanesini kur
sudo apt install python3 python3-pip python3-pyside6 -y
# Sıcaklık okuma kütüphanesini kur
pip3 install psutil --break-system-packages
2. Bilgisayara programı tanıtma
Bu komutu da terminale eksiksiz yazın:
echo "options thinkpad_acpi fan_control=1" | sudo tee /etc/modprobe.d/thinkpad_acpi.conf
ÖNEMLİ NOT: Bu ayarın bilgisayarınıza işlenmesi için bu komuttan sonra bilgisayarınızı bir kez yeniden başlatmalısınız.
3. Dosyayı oluşturma
Masaüstünde fankontrol.py adlı bir dosya oluşturun ve içine bunu kopyalayın:
import sys
import os
import psutil
from PySide6.QtWidgets import (QApplication, QMainWindow, QWidget, QVBoxLayout,
QLabel, QSlider, QPushButton, QFrame, QMessageBox)
from PySide6.QtCore import QTimer, Qt
class FanKontrolleri(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("Fan kontrolleri")
self.setFixedSize(360, 480)
self.driver, self.pwm_path, self.enable_path = self.detect_driver()
self.init_ui()
self.timer = QTimer()
self.timer.timeout.connect(self.refresh)
self.timer.start(2000)
self.refresh()
def detect_driver(self):
if os.path.exists("/proc/acpi/ibm/fan"):
return "lenovo", "/proc/acpi/ibm/fan", None
hwmon_base = "/sys/class/hwmon"
if os.path.exists(hwmon_base):
for hwmon in os.listdir(hwmon_base):
path = os.path.join(hwmon_base, hwmon)
pwm_file = os.path.join(path, "pwm1")
if os.path.exists(pwm_file):
en_file = os.path.join(path, "pwm1_enable")
return "hp_generic", pwm_file, en_file if os.path.exists(en_file) else None
return None, None, None
def init_ui(self):
central = QWidget()
self.setCentralWidget(central)
layout = QVBoxLayout(central)
self.setStyleSheet("""
QMainWindow { background-color: #ECEFF1; }
QLabel { color: #263238; font-family: sans-serif; }
QPushButton { background-color: #1976D2; color: white; border-radius: 6px; padding: 12px; font-weight: bold; }
QPushButton:hover { background-color: #1565C0; }
QPushButton#btn_auto { background-color: #388E3C; }
QPushButton#btn_auto:hover { background-color: #2E7D32; }
QSlider::handle:horizontal { background: #1976D2; width: 20px; border-radius: 10px; }
QFrame#card { background-color: white; border-radius: 12px; border: 1px solid #CFD8DC; }
""")
card = QFrame()
card.setObjectName("card")
card_layout = QVBoxLayout(card)
self.lbl_temp = QLabel("Sıcaklık: Hesaplanıyor...")
self.lbl_temp.setStyleSheet("font-size: 20px; font-weight: bold; color: #D32F2F;")
card_layout.addWidget(self.lbl_temp)
durum = "Bulunamadı (Yetki veya Sürücü Eksik)"
if self.driver == "lenovo": durum = "Lenovo / Thinkpad (Tam Destek)"
elif self.driver == "hp_generic": durum = "HP / Standart hwmon (Destekli)"
self.lbl_driver = QLabel(f"Sistem: {durum}")
self.lbl_driver.setStyleSheet("color: #546E7A; font-size: 11px;")
card_layout.addWidget(self.lbl_driver)
layout.addWidget(card)
# GÜVENLİK: Minimum limitler belirlendi
self.lbl_slider_info = QLabel("Fan Hızı (Güvenli Aralık)")
layout.addWidget(self.lbl_slider_info)
self.slider = QSlider(Qt.Horizontal)
if self.driver == "lenovo":
self.slider.setRange(2, 7)
else:
self.slider.setRange(80, 255)
layout.addWidget(self.slider)
self.btn_set = QPushButton("HIZI SABİTLE (MANUEL)")
self.btn_set.clicked.connect(self.apply_speed)
self.btn_set.setEnabled(self.driver is not None)
layout.addWidget(self.btn_set)
self.btn_auto = QPushButton("OTOMATİK KONTROL (GÜVENLİ)")
self.btn_auto.setObjectName("btn_auto")
self.btn_auto.clicked.connect(self.set_auto)
self.btn_auto.setEnabled(self.driver is not None)
layout.addWidget(self.btn_auto)
if not self.driver:
QMessageBox.warning(self, "Donanım Bulunamadı",
"Fan dosyaları bulunamadı!\n\n1. Uygulamayı 'sudo' ile çalıştırmayı deneyin.\n2. HP Elitebook'lar için 'lm-sensors' paketini kurup terminalde 'sudo sensors-detect' komutunu çalıştırarak donanım taraması yapmanız gerekebilir.")
def refresh(self):
try:
temps = psutil.sensors_temperatures()
for name in ['coretemp', 'cpu_thermal', 'acpitz', 'pch_skylake', 'k10temp']:
if name in temps and temps[name]:
t = int(temps[name][0].current)
self.lbl_temp.setText(f"İşlemci Sıcaklığı: {t}°C")
break
except: pass
def run_cmd(self, cmd):
try: os.system(cmd)
except: pass
def apply_speed(self):
val = self.slider.value()
if self.driver == "lenovo":
self.run_cmd(f'echo "level {val}" | sudo tee {self.pwm_path}')
elif self.driver == "hp_generic":
if self.enable_path:
self.run_cmd(f'echo 1 | sudo tee {self.enable_path}')
self.run_cmd(f'echo {val} | sudo tee {self.pwm_path}')
def set_auto(self):
if self.driver == "lenovo":
self.run_cmd(f'echo "level auto" | sudo tee {self.pwm_path}')
elif self.driver == "hp_generic" and self.enable_path:
self.run_cmd(f'echo 2 | sudo tee {self.enable_path}')
if __name__ == "__main__":
app = QApplication(sys.argv)
win = FanKontrolleri()
win.show()
sys.exit(app.exec())
4. Uygulamayı çalıştırma
Terminale cd Masaüstü (veya kaydettiğiniz konumu) yazdıktan sonra şu komutu yazın:
sudo python3 fankontrol.py
Artık uygulamayı test edebilirsiniz ancak tehlikeli işlere (fan hızını 0/1 gibi değerlere almak veya işiniz bittiğinde otomatik moda geçmemek gibi) dikkat edin
Berkay,
Sistem paketlerini kırdırma insanlara. ![]()
yok ya venv ile uğraşmayalım diye yaptım yoksa bu da olur:
sudo apt install python3-psutil -y
nasıl yazacağım ? Bağlantı veya Eğitim içeren video bulabilir miyim ?
Önerebileceğim bu var çok ayrıntılı ve discord üzerinden geliştiricilere ulaşıp sorunumuda iletmiştim aktif en iyi fan control uygulması budur.
Bu konu son yanıttan 10 gün sonra otomatik olarak kapatıldı. Yeni yanıtlara artık izin verilmiyor.