Fedora linux forum

Форум русской поддержки ОС Fedora linux

#1 2008-11-04 14:11:37

pups
New member
Зарегистрирован: 2008-11-04
Сообщений: 2

Скорость вращения кулера на ноутбуке

Добрый день!
Поставил Fedora 9 на ноутбук Fujitsu-Siemens Amilo M3438G, параллельно стоит Windows XP.
В Windows XP кулер работает правильно, его обороты меняются автоматически.
А вот в Fedora 9 кулер крутится на всю мощь постоянно.
В чем может быть проблема?

Отредактированно pups (2008-11-04 14:12:17)

Неактивен

 

#2 2008-11-04 21:31:06

VILs
New member
Зарегистрирован: 2008-08-10
Сообщений: 2

Re: Скорость вращения кулера на ноутбуке

Программное управление кулером ноут бука. Ищи софтину которая хаменит ту что идет под виндами, или пинай производителя.

Неактивен

 

#3 2008-11-04 22:32:16

pups
New member
Зарегистрирован: 2008-11-04
Сообщений: 2

Re: Скорость вращения кулера на ноутбуке

направление понял, спс.
как найду/решу проблему отпишусь

Неактивен

 

#4 2008-11-21 08:03:50

Vladimir
New member
Зарегистрирован: 2008-11-21
Сообщений: 1

Re: Скорость вращения кулера на ноутбуке

Та же проблема, но с десктопом после перехода на 27 ядро. Кулера системный и процессорный крутят практически на всю катушку. Q-Fan в биосе включен. Пинай не пинай производителя, а разбираться придется, судя по всему самому.

Неактивен

 

#5 2009-01-22 12:37:25

al2000
Member
Зарегистрирован: 2009-01-22
Сообщений: 62

Re: Скорость вращения кулера на ноутбуке

В /usr/sbin/ есть консольный fancontrol. Должен быть установлен lm_sensors.
Он как раз и управляет вентиляторами в зависимости от температуры.

По этому принципу сделал свой скрипт для регулировки процессорного вентилятора:

#!/usr/bin/perl                       

# Файл значения оборотов вентилятора
$CpuFanFile="/sys/class/hwmon/hwmon0/device/fan1_input";
# Файл разрешения управлением вентилятором             
$CpuFanFileEnable="/sys/class/hwmon/hwmon0/device/pwm1_enable";
# Файл задания оборотов вентилятора                           
$CpuFanSetFile="/sys/class/hwmon/hwmon0/device/pwm1";         
# Файл значения температуры                                   
$CpuTempFile="/sys/class/hwmon/hwmon0/device/temp2_input";     
# Верхняя граница установки оборотов                           
$CpuSetMax=255;                                               
# Нижняя граница установки оборотов                           
$CpuSetMin=110;                                               
# Верхняя граница температуры                                 
$CpuTempMax=70;                                               
# Нижняя граница температуры                                   
$CpuTempMin=45;                                               
# Предыдущее значение температуры                             
$TempPrev=0;                                                   

# Включение управления вентилятором
open (CpuFanEnF , ">>".$CpuFanFileEnable) or die "Ошибка записи в файл $CpuFanFileEnable: $!\n";
print CpuFanEnF "1";                                                                           
close CpuFanEnF;                                                                               

while (1<2){

# Получение значения оборотов
sysopen (CpuFanF, $CpuFanFile, O_RDONLY);
$CpuFan=<CpuFanF>;
close (CpuFanF);
# Получение значения температуры
sysopen (CpuTempF, $CpuTempFile, O_RDONLY);
$CpuTemp=<CpuTempF>;
$CpuTemp=$CpuTemp / 1000;
close (CpuTempF);

if ($TempPrev == 0) {$TempPrev=$CpuTemp;}
$DeltaTemp=abs ($CpuTemp-$TempPrev);
if ($DeltaTemp>0){
# Вычисление
    $CpuFanRange=$CpuSetMax-$CpuSetMin;
    $CpuTempRange=$CpuTempMax-$CpuTempMin;
    $CpuKoeff=$CpuFanRange / $CpuTempRange;
    $CpuDeltaTemp=$CpuTemp-$CpuTempMin;
    $CpuFanDeltaSet=$CpuDeltaTemp * $CpuKoeff;
    $CpuFanSet=$CpuFanDeltaSet+$CpuSetMin;

# Проверка выхода из диапазона
    if ($CpuFanSet<$CpuSetMin) {$CpuFanSet=$CpuSetMin;}
    if ($CpuFanSet>$CpuSetMax) {$CpuFanSet=$CpuSetMax;}

# Установка оборотов (запись в файл)
    open (CpuFanSetF , ">>".$CpuFanSetFile);
    print CpuFanSetF $CpuFanSet;
    close CpuFanSetF;

    $FanPercent=int ($CpuFanSet / 2.55);
#    print ("Изменение температуры с $TempPrev°C на $CpuTemp°C. Обороты установлены на $FanPercent%\n");
    $TempPrev=$CpuTemp;
}

sleep 1;
}

Запускаю его из /etc/rc.d/rc.local

Работает и на Fedora 8 и на Fedora 10 (Fedora 9 не юзал). Материнки GA-8I945GMF и GA-P35C-DS3.

Неактивен