Уголок СУ-11 на просторах вселенной

вторник, 24 февраля 2009 г.

скрипт для управления кулером

автор не я, просто подумал что может комуто пригодится
В /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=;
close (CpuFanF);
# Получение значения температуры
sysopen (CpuTempF, $CpuTempFile, O_RDONLY);
$CpuTemp=;
$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

среда, 18 февраля 2009 г.

для ровесников и подростающих


альтернативный текст к ролику взят у http://shurigin.livejournal.com
20 ЛЕТ МЫ РАЗВОРОВЫВАЛИ СТРАНУ И НЕ ОБРАЩАЛИ НА ТЕБЯ ВНИМАНИЯ
МЫ НЕ НАУЧИЛИ ТЕБЯ НИКАКОМУ ПОЛЕЗНОМУ ДЕЛУ, ТОЛЬКО ВОРОВСТВУ
МЫ ПРИУЧИЛИ ТЕБЯ ЖИТЬ ТОЛЬКО ДЛЯ СЕБЯ — ПИТЬ, КУРИТЬ, КОЛОТЬСЯ, ТРАХАТЬСЯ
20 ЛЕТ МЫ ДЕЛАЛИ ВСЕ ВОЗМОЖНОЕ, ЧТОБЫ У ТЕБЯ НЕ БЫЛО СЕМЬИ, ДЕТЕЙ
20 ЛЕТ МЫ ВНУШАЛИ ТЕБЕ, ЧТО ДЕНЬГИ — ЭТО САМОЕ ЦЕННОЕ В ЖИЗНИ
20 ЛЕТ МЫ РЕШАЛИ ВСЕ ЗА ТЕБЯ — НАЗНАЧАЛИ ПРЕЕМНИКОВ, ПОДТАСОВЫВАЛИ ВЫБОРЫ
20 ЛЕТ МЫ ВРАЛИ ТЕБЕ, ЧТО РОССИЯ ВОЗРОЖДАЕТСЯ И НАШЕ БУДУЩЕЕ БЕЗОБЛАЧНО
20 ЛЕТ МЫ ВРАЛИ ТЕБЕ, ЧТО ТВОИ ПРЕДКИ БЫЛИ РАБАМИ И РАБОТАЛИ ИЗ–ПОД ПАЛКИ В ГУЛАГЕ,
ЧТО СССР БЫЛ ИМПЕРИЕЙ ЗЛА И ТЮРЬМОЙ НАРОДОВ…
НО ВОТ СЛУЧИЛСЯ ФИНАНСОВЫЙ КРИЗИС, ПОТОК НЕФТЕДОЛЛАРОВ ИССЯК И НАМ СТАЛО СТРАШНО
СТРАШНО, ЧТО НАМ НЕ ХВАТИТ ДЕНЕГ ПЛАТИТЬ ОМОНУ ЧТОБЫ ОН ЗАЩИЩАЛ НАС ОТ ТЕБЯ
СТРАШНО, ЧТО НАМ НЕ ХВАТИТ ДЕНЕГ ПЛАТИТЬ СУДЬЯМ ЧТОБЫ ОНИ ЗАСУЖИВАЛИ ТЕБЯ
ПОЭТОМУ МЫ ХОТИМ ОБМАНУТЬ ТЕБЯ ЕЩЕ РАЗ: ТВОИ ВРАГИ — ЭТО ТАМ, ДАЛЕКО
А МЫ ТВОИ ДРУЗЬЯ, ДРУЗЬЯ, ДРУЗЬЯ