Linux:如何以编程方式停止风扇?

Linux:如何以编程方式停止风扇?

我的系统在将低于 255 的值写入 /sys/class/hwmon/hwmon0/device/pwm(2,3) 时没有反应,这对应于通过 M/B (ga-890gpa-ud3h) 接头连接的 3 线机箱风扇。这个想法来自http://www.thinkwiki.org/wiki/How_to_control_fan_speed

ls /sys/class/hwmon/hwmon0/device/

alarms      fan1_min    fan3_beep   fan5_min   in0_min    in2_alarm  in3_beep   in4_beep   in5_input  in6_max    in7_max    power/                   pwm2_auto_channels_temp  pwm3_freq    temp1_min    temp2_min    temp3_min
cpu0_vid    fan2_alarm  fan3_input  hwmon/     in1_alarm  in2_beep   in3_input  in4_input  in5_max    in6_min    in7_min    pwm1                     pwm2_enable              subsystem@   temp1_type   temp2_type   temp3_type
driver@     fan2_beep   fan3_min    in0_alarm  in1_beep   in2_input  in3_label  in4_max    in5_min    in7_alarm  in8_input  pwm1_auto_channels_temp  pwm2_freq                temp1_alarm  temp2_alarm  temp3_alarm  uevent
fan1_alarm  fan2_input  fan5_alarm  in0_beep   in1_input  in2_max    in3_max    in4_min    in6_alarm  in7_beep   in8_label  pwm1_enable              pwm3                     temp1_beep   temp2_beep   temp3_beep   vrm
fan1_beep   fan2_min    fan5_beep   in0_input  in1_max    in2_min    in3_min    in5_alarm  in6_beep   in7_input  modalias   pwm1_freq                pwm3_auto_channels_temp  temp1_input  temp2_input  temp3_input
fan1_input  fan3_alarm  fan5_input  in0_max    in1_min    in3_alarm  in4_alarm  in5_beep   in6_input  in7_label  name       pwm2                     pwm3_enable              temp1_max    temp2_max    temp3_max

它确实显示了实际速度:

cat /sys/class/hwmon/hwmon0/device/fan5_input 
5769

但拒绝写入fanX_input:没有权限(即使对于 root 来说)。

更多规格:内核 2.6.38.4,sensors输出为:

it8720-isa-0228
Adapter: ISA adapter

我没有运行任何用于风扇控制的守护进程,但假设速度可能由 CPU 内核调节器设置。如何在不使用硬件技巧的情况下在这种情况下停止风扇?

更新:pwmconfig 的部分输出:

设备:

Found the following devices:
   hwmon0/device is it8720
   hwmon1/device is k10temp

Found the following PWM controls:
   hwmon0/device/pwm1
   hwmon0/device/pwm2
hwmon0/device/pwm2 is currently setup for automatic speed control.
In general, automatic mode is preferred over manual mode, as
it is more efficient and it reacts faster. Are you sure that
you want to setup this output for manual control? (n) y
   hwmon0/device/pwm3
hwmon0/device/pwm3 is currently setup for automatic speed control.
In general, automatic mode is preferred over manual mode, as
it is more efficient and it reacts faster. Are you sure that
you want to setup this output for manual control? (n) y

测试:

Warning!!! This program will stop your fans, one at a time,
for approximately 5 seconds each!!!
This may cause your processor temperature to rise!!!
If you do not want to do this hit control-C now!!!
Hit return to continue: 

Testing pwm control hwmon0/device/pwm1 ...
  hwmon0/device/fan1_input ... speed was 4326 now 2136
    It appears that fan hwmon0/device/fan1_input
    is controlled by pwm hwmon0/device/pwm1
Would you like to generate a detailed correlation (y)? y

这是为了停止 CPU 风扇。并且:

hwmon0/device/fan3_input ... speed was 1997 now 1997
    no correlation
  hwmon0/device/fan5_input ... speed was 5720 now 5720
    no correlation

Testing pwm control hwmon0/device/pwm2 ...
  hwmon0/device/fan1_input ... speed was 4326 now 4383
    no correlation
  hwmon0/device/fan3_input ... speed was 1997 now 1997
    no correlation
  hwmon0/device/fan5_input ... speed was 5720 now 5720
    no correlation

No correlations

答案1

主板上风扇所连接的接头可能不支持风扇节流。我的主板有 6 个风扇接头,其中 4 个支持速度控制,另外 2 个不支持。

答案2

好的,看来 3 针接头完全无法控制旋转,但只能报告一下:参见http://www.overclock.net/air-cooling/727121-motherboard-only-controls-2-4-fans.html

相关内容