#!/usr/bin/ruby def set_value(file, val) Kernel.system("echo #{val} > #{file}") end def convert_cpu_temp(temp) ((3*temp-128)*1000).to_i end def convert_mb_temp(temp) ((temp)*1000).to_i end devdir="/sys/bus/i2c/devices/0-0290" begin f = File.new(devdir, "r") f.close rescue Errno::ENOENT print "no driver module loaded?\n" exit end Dir.chdir(devdir) set_value("fan1_pwm_enable", 1) # 1 set_value("fan1_auto_enable", 1) # 1 set_value("fan1_auto_temp_channel", 2) # 2 set_value("fan2_pwm_enable", 1) # 1 set_value("fan2_auto_enable", 1) # 1 set_value("fan2_auto_temp_channel", 2) # 2 set_value("fan3_pwm_enable", 1) # 1 set_value("fan3_auto_enable", 1) # 1 set_value("fan3_auto_temp_channel", 2) # 2 offtemp = 50# reach => off # 0 mintemp = 51 # 0 lowtemp = 58 # 58000 mediumtemp = 65 # 65000 maxtemp = 75 # 75000 set_value("fan1_auto_temp_off", convert_mb_temp(offtemp)) set_value("fan1_auto_temp_min", convert_mb_temp(mintemp)) set_value("fan1_auto_pwm_min", 25) # 25 set_value("fan1_auto_temp_low", convert_mb_temp(lowtemp)) set_value("fan1_auto_pwm_low", 35) # 35 set_value("fan1_auto_temp_medium", convert_mb_temp(mediumtemp)) set_value("fan1_auto_pwm_medium", 127) # 127 set_value("fan1_auto_temp_max", convert_mb_temp(maxtemp)) set_value("fan2_auto_temp_off", convert_mb_temp(offtemp)) set_value("fan2_auto_temp_min", convert_mb_temp(mintemp)) set_value("fan2_auto_pwm_min", 25) set_value("fan2_auto_temp_low", convert_mb_temp(lowtemp)) set_value("fan2_auto_pwm_low", 35) set_value("fan2_auto_temp_medium", convert_mb_temp(mediumtemp)) set_value("fan2_auto_pwm_medium", 127) set_value("fan2_auto_temp_max", convert_mb_temp(maxtemp)) set_value("fan3_auto_temp_off", convert_mb_temp(offtemp)) set_value("fan3_auto_temp_min", convert_mb_temp(mintemp)) set_value("fan3_auto_pwm_min", 25) set_value("fan3_auto_temp_low", convert_mb_temp(lowtemp)) set_value("fan3_auto_pwm_low", 35) set_value("fan3_auto_temp_medium", convert_mb_temp(mediumtemp)) set_value("fan3_auto_pwm_medium", 127) set_value("fan3_auto_temp_max", convert_mb_temp(maxtemp))