我的粉絲有24個速度步。它認爲熱關斷是105°C。空閒溫度約爲75°C。溫度下限和溫度上限並將其除以n個speedsteps是一個好的算法嗎?什麼是一個好的風扇速度算法?
編輯:ATM我用2個循環和85℃up_threshold不過那是以前,我知道大約24 speedsteps:
error |= ec_read(EC_RTMP, &ec_rtmp);
if ((ec_rtmp < FAN_UPTHRESHOLD_TEMP && sloop < 0) ||
(ec_rtmp < FAN_UPTHRESHOLD_TEMP && sloop == FAN_LOOP) ||
(ec_rtmp < FAN_UPTHRESHOLD_TEMP && speed_switch == 1)
)
{
speed_switch = 1;
sloop = FAN_LOOP; // 20 * 10 sec
printk("Temp %dC: disabling fan\n", ec_rtmp);
set_fan_disabled();
queue_delayed_work(my_workqueue, &work_object, FAN_JIFFIES_MS*HZ);
} else
{
speed_switch = 0;
printk("Temp %dC: enable fan\n", ec_rtmp);
set_fan_enable();
queue_delayed_work(my_workqueue, &work_object, 2*FAN_JIFFIES_MS*HZ);
}
編輯:我已經找到了一個很好的源代碼:http://code.google.com/p/eeepc-fancontrol/wiki/Formular
*不聽起來像一個編程的問題。* –
我GOOGLE了有2戰略。 1是一種基於表格的方法。 – Bytemain
@尼克,我不同意。操作系統也是程序。詢問如何更改內核是一個編程問題。 – TMS