PID fan controller Perl script

Joined
Dec 2, 2015
Messages
730
Sorry chaps, for some reason I didn't get a prompt that you had posted.
I'm no longer getting emails about posts either. That functionality seems to have died.

Thanks also Stux, I lowered FAN1 thresholds and this is the result:
Code:
root@NAS:/mnt/Storage/Scripts # ipmitool sensor thresh FAN1 lower 0 100 200
Locating sensor record 'FAN1'...
Setting sensor "FAN1" Lower Non-Recoverable threshold to 0.000
Setting sensor "FAN1" Lower Critical threshold to 100.000
Setting sensor "FAN1" Lower Non-Critical threshold to 200.000
root@NAS:/mnt/Storage/Scripts # ipmitool sensor
CPU Temp		 | 23.000	 | degrees C  | ok	| 0.000	 | 0.000	 | 0.000	 | 95.000	| 100.000   | 100.000
PCH Temp		 | 28.000	 | degrees C  | ok	| 0.000	 | 5.000	 | 16.000	| 90.000	| 95.000	| 100.000
System Temp	  | 20.000	 | degrees C  | ok	| -10.000   | -5.000	| 0.000	 | 80.000	| 85.000	| 90.000
Peripheral Temp  | 23.000	 | degrees C  | ok	| -14.000   | -9.000	| -4.000	| 76.000	| 81.000	| 86.000
VcpuVRM Temp	 | 22.000	 | degrees C  | ok	| -5.000	| 0.000	 | 5.000	 | 95.000	| 100.000   | 105.000
DIMMA1 Temp	  | na		 |			| na	| na		| na		| na		| na		| na		| na
DIMMA2 Temp	  | 21.000	 | degrees C  | ok	| -5.000	| 0.000	 | 5.000	 | 80.000	| 85.000	| 90.000
DIMMB1 Temp	  | na		 |			| na	| na		| na		| na		| na		| na		| na
DIMMB2 Temp	  | 20.000	 | degrees C  | ok	| -5.000	| 0.000	 | 5.000	 | 80.000	| 85.000	| 90.000
FAN1			 | 1000.000   | RPM		| ok	| 0.000	 | 100.000   | 200.000   | 3200.000  | 3300.000  | 3400.000
FAN2			 | 400.000	| RPM		| nc	| 200.000   | 300.000   | 400.000   | 2400.000  | 2500.000  | 2600.000
FAN3			 | 400.000	| RPM		| nc	| 200.000   | 300.000   | 400.000   | 2400.000  | 2500.000  | 2600.000
FAN4			 | 400.000	| RPM		| nc	| 200.000   | 300.000   | 400.000   | 2400.000  | 2500.000  | 2600.000
FANA			 | 700.000	| RPM		| nc	| 500.000   | 600.000   | 700.000   | 1300.000  | 1400.000  | 1500.000
12V			  | 12.448	 | Volts	  | ok	| 10.144	| 10.272	| 10.784	| 12.960	| 13.280	| 13.408
5VCC			 | 5.000	  | Volts	  | ok	| 4.246	 | 4.298	 | 4.480	 | 5.390	 | 5.546	 | 5.598
3.3VCC		   | 3.384	  | Volts	  | ok	| 2.789	 | 2.823	 | 2.959	 | 3.554	 | 3.656	 | 3.690
VBAT			 | 2.972	  | Volts	  | ok	| 2.384	 | 2.496	 | 2.580	 | 3.476	 | 3.588	 | 3.672
VCPU			 | 1.039	  | Volts	  | ok	| 0.076	 | 0.076	 | 0.076	 | 1.516	 | 1.516	 | 1.516
VDIMMAB		  | 1.200	  | Volts	  | ok	| 0.948	 | 0.975	 | 1.047	 | 1.344	 | 1.425	 | 1.443
5VSB			 | 4.974	  | Volts	  | ok	| 4.246	 | 4.376	 | 4.480	 | 5.390	 | 5.546	 | 5.598
3.3VSB		   | 3.231	  | Volts	  | ok	| 2.789	 | 2.891	 | 2.959	 | 3.554	 | 3.656	 | 3.690
VBMC 1.2V		| 1.209	  | Volts	  | ok	| 1.020	 | 1.047	 | 1.092	 | 1.344	 | 1.371	 | 1.398
VPCH 1.0V		| 1.007	  | Volts	  | ok	| 0.872	 | 0.890	 | 0.917	 | 1.043	 | 1.052	 | 1.070
Chassis Intru	| 0x0		| discrete   | 0x0000| na		| na		| na		| na		| na		| na
root@NAS:/mnt/Storage/Scripts # cd /mnt/Storage/Scripts
root@NAS:/mnt/Storage/Scripts # ls
PID_fan_control.pl
root@NAS:/mnt/Storage/Scripts # ./PID_fan_control.pl
2018-11-01 20:31:35: ada0 ada1 ada2 ada3 ada4 ada5 ada6 da0 da1
2018-11-01 20:31:35: ada0
2018-11-01 20:31:35: ada1
2018-11-01 20:31:35: ada2
2018-11-01 20:31:35: ada3
2018-11-01 20:31:35: ada4
2018-11-01 20:31:35: ada5
2018-11-01 20:31:35: ada6
2018-11-01 20:31:35: da0
2018-11-01 20:31:35: da1
2018-11-01 20:31:35: fanmode: full = 1
2018-11-01 20:31:35: Setting fan mode to 1 (full)
2018-11-01 20:31:40: core_temps:
26.0
26.0
31.0
31.0
2018-11-01 20:31:40: core_temp = 26.0 C
2018-11-01 20:31:40: core_temp = 26.0 C
2018-11-01 20:31:40: core_temp = 31.0 C
2018-11-01 20:31:40: core_temp = 31.0 C
2018-11-01 20:31:40: CPU Temp: 31.0
2018-11-01 20:31:40: CPU Temp: 31.0 <= 35, CPU Fan going low.
2018-11-01 20:31:40: CPU Fan: low
2018-11-01 20:31:40: CPU Fan changing... (low)
2018-11-01 20:31:40: Setting Zone 0 duty cycle to 40%
2018-11-01 20:31:40: ada0 ada1 ada2 ada3 ada4 ada5 ada6 da0 da1
2018-11-01 20:31:40: ada0
2018-11-01 20:31:40: ada1
2018-11-01 20:31:40: ada2
2018-11-01 20:31:40: ada3
2018-11-01 20:31:40: ada4
2018-11-01 20:31:40: ada5
2018-11-01 20:31:40: ada6
2018-11-01 20:31:40: da0
2018-11-01 20:31:40: da1
2018-11-01 20:31:41: temperature error = -13.8571428571429
2018-11-01 20:31:41: PID corrections are P = -110.857142857143, I = 0 and D = 0
2018-11-01 20:31:41: PID control new duty cycle is 30%
2018-11-01 20:31:41: Setting Zone 1 duty cycle to 30%
2018-11-01 20:31:41: core_temps:
30.0
30.0
26.0
26.0
2018-11-01 20:31:41: core_temp = 30.0 C
2018-11-01 20:31:41: core_temp = 30.0 C
2018-11-01 20:31:41: core_temp = 26.0 C
2018-11-01 20:31:41: core_temp = 26.0 C
2018-11-01 20:31:41: CPU Temp: 30.0
2018-11-01 20:31:42: core_temps:
27.0
27.0
24.0
24.0
2018-11-01 20:31:42: core_temp = 27.0 C
2018-11-01 20:31:42: core_temp = 27.0 C
2018-11-01 20:31:42: core_temp = 24.0 C
2018-11-01 20:31:42: core_temp = 24.0 C
2018-11-01 20:31:42: CPU Temp: 27.0
2018-11-01 20:31:42: CPU Fan: low
2018-11-01 20:31:43: core_temps:
26.0
26.0
24.0
24.0
2018-11-01 20:31:43: core_temp = 26.0 C
2018-11-01 20:31:43: core_temp = 26.0 C
2018-11-01 20:31:43: core_temp = 24.0 C
2018-11-01 20:31:43: core_temp = 24.0 C
2018-11-01 20:31:43: CPU Temp: 26.0
2018-11-01 20:31:43: CPU Fan: low
2018-11-01 20:31:44: core_temps:
25.0
25.0
24.0
24.0
2018-11-01 20:31:44: core_temp = 25.0 C
2018-11-01 20:31:44: core_temp = 25.0 C
2018-11-01 20:31:44: core_temp = 24.0 C
2018-11-01 20:31:44: core_temp = 24.0 C
2018-11-01 20:31:44: CPU Temp: 25.0
2018-11-01 20:31:44: CPU Fan: low
2018-11-01 20:31:45: core_temps:
26.0
26.0
24.0
24.0
2018-11-01 20:31:45: core_temp = 26.0 C
2018-11-01 20:31:45: core_temp = 26.0 C
2018-11-01 20:31:45: core_temp = 24.0 C
2018-11-01 20:31:45: core_temp = 24.0 C
2018-11-01 20:31:45: CPU Temp: 26.0
2018-11-01 20:31:45: CPU Fan: low
2018-11-01 20:31:46: core_temps:
25.0
25.0
24.0
24.0
2018-11-01 20:31:46: core_temp = 25.0 C
2018-11-01 20:31:46: core_temp = 25.0 C
2018-11-01 20:31:46: core_temp = 24.0 C
2018-11-01 20:31:46: core_temp = 24.0 C
2018-11-01 20:31:46: CPU Temp: 25.0
2018-11-01 20:31:46: CPU Fan: low
2018-11-01 20:31:47: core_temps:
27.0
27.0
24.0
24.0
2018-11-01 20:31:47: core_temp = 27.0 C
2018-11-01 20:31:47: core_temp = 27.0 C
2018-11-01 20:31:47: core_temp = 24.0 C
2018-11-01 20:31:47: core_temp = 24.0 C
2018-11-01 20:31:47: CPU Temp: 27.0
2018-11-01 20:31:47: CPU Fan: low
2018-11-01 20:31:48: core_temps:
26.0
26.0
24.0
24.0
2018-11-01 20:31:48: core_temp = 26.0 C
2018-11-01 20:31:48: core_temp = 26.0 C
2018-11-01 20:31:48: core_temp = 24.0 C
2018-11-01 20:31:48: core_temp = 24.0 C
2018-11-01 20:31:48: CPU Temp: 26.0
2018-11-01 20:31:48: CPU Fan: low
2018-11-01 20:31:49: core_temps:
26.0
26.0
24.0
24.0
2018-11-01 20:31:49: core_temp = 26.0 C
2018-11-01 20:31:49: core_temp = 26.0 C
2018-11-01 20:31:49: core_temp = 24.0 C
2018-11-01 20:31:49: core_temp = 24.0 C
2018-11-01 20:31:49: CPU Temp: 26.0
2018-11-01 20:31:49: CPU Fan: low
2018-11-01 20:31:51: core_temps:
27.0
27.0
24.0
24.0
2018-11-01 20:31:51: core_temp = 27.0 C
2018-11-01 20:31:51: core_temp = 27.0 C
2018-11-01 20:31:51: core_temp = 24.0 C
2018-11-01 20:31:51: core_temp = 24.0 C
2018-11-01 20:31:51: CPU Temp: 27.0
2018-11-01 20:31:51: CPU Fan: low
2018-11-01 20:31:52: core_temps:
25.0
25.0
24.0
24.0
2018-11-01 20:31:52: core_temp = 25.0 C
2018-11-01 20:31:52: core_temp = 25.0 C
2018-11-01 20:31:52: core_temp = 24.0 C
2018-11-01 20:31:52: core_temp = 24.0 C
2018-11-01 20:31:52: CPU Temp: 25.0
2018-11-01 20:31:52: CPU Fan: low
2018-11-01 20:31:52: fan_speed = 3100
2018-11-01 20:31:52: CPU Fan speed: 3100 RPM
2018-11-01 20:31:52: fan_speed = 1100
2018-11-01 20:31:52: HD Fan speed: 1100 RPM
2018-11-01 20:31:52: CPU fan speed should be low, but 3100 > 2000.
2018-11-01 20:31:52: HD fan speed should be low, but 1100 > 1040.
2018-11-01 20:31:52: bmc_fail_count:  1, bmc_fail_threshold: 1
2018-11-01 20:31:52: Fan speeds are not where they should be, will try again.
2018-11-01 20:31:52: fanmode: full = 1
2018-11-01 20:31:52: Setting fan mode to 1 (full)
2018-11-01 20:31:58: Setting Zone 0 duty cycle to 40%
2018-11-01 20:31:58: Setting Zone 1 duty cycle to 30%
2018-11-01 20:31:59: core_temps:
26.0
26.0
24.0
24.0
2018-11-01 20:31:59: core_temp = 26.0 C
2018-11-01 20:31:59: core_temp = 26.0 C
2018-11-01 20:31:59: core_temp = 24.0 C
2018-11-01 20:31:59: core_temp = 24.0 C
2018-11-01 20:31:59: CPU Temp: 26.0
2018-11-01 20:31:59: CPU Fan: low
2018-11-01 20:32:00: core_temps:
25.0
25.0
24.0
24.0
2018-11-01 20:32:00: core_temp = 25.0 C
2018-11-01 20:32:00: core_temp = 25.0 C
2018-11-01 20:32:00: core_temp = 24.0 C
2018-11-01 20:32:00: core_temp = 24.0 C
2018-11-01 20:32:00: CPU Temp: 25.0
2018-11-01 20:32:00: CPU Fan: low
2018-11-01 20:32:01: core_temps:
25.0
26.0
25.0
25.0
2018-11-01 20:32:01: core_temp = 25.0 C
2018-11-01 20:32:01: core_temp = 26.0 C
2018-11-01 20:32:01: core_temp = 25.0 C
2018-11-01 20:32:01: core_temp = 25.0 C
2018-11-01 20:32:01: CPU Temp: 26.0
2018-11-01 20:32:01: CPU Fan: low
2018-11-01 20:32:02: core_temps:
25.0
26.0
25.0
25.0
2018-11-01 20:32:02: core_temp = 25.0 C
2018-11-01 20:32:02: core_temp = 26.0 C
2018-11-01 20:32:02: core_temp = 25.0 C
2018-11-01 20:32:02: core_temp = 25.0 C
2018-11-01 20:32:02: CPU Temp: 26.0
2018-11-01 20:32:02: CPU Fan: low
2018-11-01 20:32:03: core_temps:
25.0
25.0
23.0
23.0
2018-11-01 20:32:03: core_temp = 25.0 C
2018-11-01 20:32:03: core_temp = 25.0 C
2018-11-01 20:32:03: core_temp = 23.0 C
2018-11-01 20:32:03: core_temp = 23.0 C
2018-11-01 20:32:03: CPU Temp: 25.0
2018-11-01 20:32:03: CPU Fan: low
2018-11-01 20:32:04: core_temps:
26.0
26.0
23.0
23.0
2018-11-01 20:32:04: core_temp = 26.0 C
2018-11-01 20:32:04: core_temp = 26.0 C
2018-11-01 20:32:04: core_temp = 23.0 C
2018-11-01 20:32:04: core_temp = 23.0 C
2018-11-01 20:32:04: CPU Temp: 26.0
2018-11-01 20:32:04: CPU Fan: low
2018-11-01 20:32:05: core_temps:
24.0
26.0
24.0
24.0
2018-11-01 20:32:05: core_temp = 24.0 C
2018-11-01 20:32:05: core_temp = 26.0 C
2018-11-01 20:32:05: core_temp = 24.0 C
2018-11-01 20:32:05: core_temp = 24.0 C
2018-11-01 20:32:05: CPU Temp: 26.0
2018-11-01 20:32:05: CPU Fan: low
2018-11-01 20:32:06: core_temps:
24.0
27.0
24.0
24.0
2018-11-01 20:32:06: core_temp = 24.0 C
2018-11-01 20:32:06: core_temp = 27.0 C
2018-11-01 20:32:06: core_temp = 24.0 C
2018-11-01 20:32:06: core_temp = 24.0 C
2018-11-01 20:32:06: CPU Temp: 27.0
2018-11-01 20:32:06: CPU Fan: low
2018-11-01 20:32:07: core_temps:
26.0
26.0
23.0
23.0
2018-11-01 20:32:07: core_temp = 26.0 C
2018-11-01 20:32:07: core_temp = 26.0 C
2018-11-01 20:32:07: core_temp = 23.0 C
2018-11-01 20:32:07: core_temp = 23.0 C
2018-11-01 20:32:07: CPU Temp: 26.0
2018-11-01 20:32:07: CPU Fan: low
2018-11-01 20:32:08: core_temps:
26.0
26.0
24.0
24.0
2018-11-01 20:32:08: core_temp = 26.0 C
2018-11-01 20:32:08: core_temp = 26.0 C
2018-11-01 20:32:08: core_temp = 24.0 C
2018-11-01 20:32:08: core_temp = 24.0 C
2018-11-01 20:32:08: CPU Temp: 26.0
2018-11-01 20:32:08: CPU Fan: low
2018-11-01 20:32:09: core_temps:
24.0
24.0
24.0
24.0
2018-11-01 20:32:09: core_temp = 24.0 C
2018-11-01 20:32:09: core_temp = 24.0 C
2018-11-01 20:32:09: core_temp = 24.0 C
2018-11-01 20:32:09: core_temp = 24.0 C
2018-11-01 20:32:09: CPU Temp: 24.0
2018-11-01 20:32:09: CPU Fan: low
2018-11-01 20:32:09: fan_speed = 3100
2018-11-01 20:32:09: CPU Fan speed: 3100 RPM
2018-11-01 20:32:10: fan_speed = 1100
2018-11-01 20:32:10: HD Fan speed: 1100 RPM
2018-11-01 20:32:10: CPU fan speed should be low, but 3100 > 2000.
2018-11-01 20:32:10: HD fan speed should be low, but 1100 > 1040.
2018-11-01 20:32:10: bmc_fail_count:  2, bmc_fail_threshold: 1
2018-11-01 20:32:10: Fan speeds are still not where they should be after 2 attempts, will reboot BMC.
2018-11-01 20:32:10: fanmode: full = 1
2018-11-01 20:32:10: Setting fan mode to 1 (full)
2018-11-01 20:32:15: Resetting BMC
2018-11-01 20:32:16: core_temps:
26.0
26.0
25.0
25.0
2018-11-01 20:32:16: core_temp = 26.0 C
2018-11-01 20:32:16: core_temp = 26.0 C
2018-11-01 20:32:16: core_temp = 25.0 C
2018-11-01 20:32:16: core_temp = 25.0 C
2018-11-01 20:32:16: CPU Temp: 26.0
2018-11-01 20:32:16: CPU Fan: low
2018-11-01 20:32:17: core_temps:
28.0
28.0
27.0
27.0
2018-11-01 20:32:17: core_temp = 28.0 C
2018-11-01 20:32:17: core_temp = 28.0 C
2018-11-01 20:32:17: core_temp = 27.0 C
2018-11-01 20:32:17: core_temp = 27.0 C
2018-11-01 20:32:17: CPU Temp: 28.0
2018-11-01 20:32:17: CPU Fan: low
2018-11-01 20:32:18: core_temps:
26.0
26.0
24.0
24.0
2018-11-01 20:32:18: core_temp = 26.0 C
2018-11-01 20:32:18: core_temp = 26.0 C
2018-11-01 20:32:18: core_temp = 24.0 C
2018-11-01 20:32:18: core_temp = 24.0 C
2018-11-01 20:32:18: CPU Temp: 26.0
2018-11-01 20:32:18: CPU Fan: low
2018-11-01 20:32:19: core_temps:
25.0
25.0
24.0
24.0
2018-11-01 20:32:19: core_temp = 25.0 C
2018-11-01 20:32:19: core_temp = 25.0 C
2018-11-01 20:32:19: core_temp = 24.0 C
2018-11-01 20:32:19: core_temp = 24.0 C
2018-11-01 20:32:19: CPU Temp: 25.0
2018-11-01 20:32:19: CPU Fan: low
2018-11-01 20:32:20: core_temps:
24.0
24.0
24.0
25.0
2018-11-01 20:32:20: core_temp = 24.0 C
2018-11-01 20:32:20: core_temp = 24.0 C
2018-11-01 20:32:20: core_temp = 24.0 C
2018-11-01 20:32:20: core_temp = 25.0 C
2018-11-01 20:32:20: CPU Temp: 25.0
2018-11-01 20:32:20: CPU Fan: low
2018-11-01 20:32:21: core_temps:
27.0
27.0
24.0
24.0
2018-11-01 20:32:21: core_temp = 27.0 C
2018-11-01 20:32:21: core_temp = 27.0 C
2018-11-01 20:32:21: core_temp = 24.0 C
2018-11-01 20:32:21: core_temp = 24.0 C
2018-11-01 20:32:21: CPU Temp: 27.0
2018-11-01 20:32:21: CPU Fan: low
2018-11-01 20:32:22: core_temps:
26.0
26.0
24.0
24.0
2018-11-01 20:32:22: core_temp = 26.0 C
2018-11-01 20:32:22: core_temp = 26.0 C
2018-11-01 20:32:22: core_temp = 24.0 C
2018-11-01 20:32:22: core_temp = 24.0 C
2018-11-01 20:32:22: CPU Temp: 26.0
2018-11-01 20:32:22: CPU Fan: low
2018-11-01 20:32:23: core_temps:
27.0
27.0
25.0
25.0
2018-11-01 20:32:23: core_temp = 27.0 C
2018-11-01 20:32:23: core_temp = 27.0 C
2018-11-01 20:32:23: core_temp = 25.0 C
2018-11-01 20:32:23: core_temp = 25.0 C
2018-11-01 20:32:23: CPU Temp: 27.0
2018-11-01 20:32:23: CPU Fan: low
2018-11-01 20:32:24: core_temps:
26.0
26.0
24.0
25.0
2018-11-01 20:32:24: core_temp = 26.0 C
2018-11-01 20:32:24: core_temp = 26.0 C
2018-11-01 20:32:24: core_temp = 24.0 C
2018-11-01 20:32:24: core_temp = 25.0 C
2018-11-01 20:32:24: CPU Temp: 26.0
2018-11-01 20:32:24: CPU Fan: low
2018-11-01 20:32:25: core_temps:
24.0
24.0
24.0
24.0
2018-11-01 20:32:25: core_temp = 24.0 C
2018-11-01 20:32:25: core_temp = 24.0 C
2018-11-01 20:32:25: core_temp = 24.0 C
2018-11-01 20:32:25: core_temp = 24.0 C
2018-11-01 20:32:25: CPU Temp: 24.0
2018-11-01 20:32:25: CPU Fan: low
2018-11-01 20:32:26: core_temps:
25.0
25.0
24.0
25.0
2018-11-01 20:32:26: core_temp = 25.0 C
2018-11-01 20:32:26: core_temp = 25.0 C
2018-11-01 20:32:26: core_temp = 24.0 C
2018-11-01 20:32:26: core_temp = 25.0 C
2018-11-01 20:32:26: CPU Temp: 25.0
2018-11-01 20:32:26: CPU Fan: low
2018-11-01 20:32:27: fan_speed = 3100
2018-11-01 20:32:27: CPU Fan speed: 3100 RPM
2018-11-01 20:32:27: fan_speed = 1100
2018-11-01 20:32:27: HD Fan speed: 1100 RPM
2018-11-01 20:32:27: CPU fan speed should be low, but 3100 > 2000.
2018-11-01 20:32:27: HD fan speed should be low, but 1100 > 1040.
2018-11-01 20:32:27: bmc_fail_count:  1, bmc_fail_threshold: 1
2018-11-01 20:32:27: Fan speeds are not where they should be, will try again.
2018-11-01 20:32:27: fanmode: full = 1
2018-11-01 20:32:27: Setting fan mode to 1 (full)
2018-11-01 20:32:32: Setting Zone 0 duty cycle to 40%
2018-11-01 20:32:32: Setting Zone 1 duty cycle to 30%
2018-11-01 20:32:33: core_temps:
30.0
30.0
26.0
29.0
2018-11-01 20:32:33: core_temp = 30.0 C
2018-11-01 20:32:33: core_temp = 30.0 C
2018-11-01 20:32:33: core_temp = 26.0 C
2018-11-01 20:32:33: core_temp = 29.0 C
2018-11-01 20:32:33: CPU Temp: 30.0
2018-11-01 20:32:33: CPU Fan: low
2018-11-01 20:32:34: core_temps:
25.0
25.0
23.0
24.0
2018-11-01 20:32:34: core_temp = 25.0 C
2018-11-01 20:32:34: core_temp = 25.0 C
2018-11-01 20:32:34: core_temp = 23.0 C
2018-11-01 20:32:34: core_temp = 24.0 C
2018-11-01 20:32:34: CPU Temp: 25.0
2018-11-01 20:32:34: CPU Fan: low
2018-11-01 20:32:35: core_temps:
26.0
26.0
24.0
24.0
2018-11-01 20:32:35: core_temp = 26.0 C
2018-11-01 20:32:35: core_temp = 26.0 C
2018-11-01 20:32:35: core_temp = 24.0 C
2018-11-01 20:32:35: core_temp = 24.0 C
2018-11-01 20:32:35: CPU Temp: 26.0
2018-11-01 20:32:35: CPU Fan: low
2018-11-01 20:32:36: core_temps:
25.0
25.0
25.0
25.0
2018-11-01 20:32:36: core_temp = 25.0 C
2018-11-01 20:32:36: core_temp = 25.0 C
2018-11-01 20:32:36: core_temp = 25.0 C
2018-11-01 20:32:36: core_temp = 25.0 C
2018-11-01 20:32:36: CPU Temp: 25.0
2018-11-01 20:32:36: CPU Fan: low
2018-11-01 20:32:37: core_temps:
25.0
25.0
24.0
24.0
2018-11-01 20:32:37: core_temp = 25.0 C
2018-11-01 20:32:37: core_temp = 25.0 C
2018-11-01 20:32:37: core_temp = 24.0 C
2018-11-01 20:32:37: core_temp = 24.0 C
2018-11-01 20:32:37: CPU Temp: 25.0
2018-11-01 20:32:37: CPU Fan: low
2018-11-01 20:32:38: core_temps:
25.0
25.0
24.0
25.0
2018-11-01 20:32:38: core_temp = 25.0 C
2018-11-01 20:32:38: core_temp = 25.0 C
2018-11-01 20:32:38: core_temp = 24.0 C
2018-11-01 20:32:38: core_temp = 25.0 C
2018-11-01 20:32:38: CPU Temp: 25.0
2018-11-01 20:32:38: CPU Fan: low
2018-11-01 20:32:40: core_temps:
26.0
26.0
25.0
25.0
2018-11-01 20:32:40: core_temp = 26.0 C
2018-11-01 20:32:40: core_temp = 26.0 C
2018-11-01 20:32:40: core_temp = 25.0 C
2018-11-01 20:32:40: core_temp = 25.0 C
2018-11-01 20:32:40: CPU Temp: 26.0
2018-11-01 20:32:40: CPU Fan: low
2018-11-01 20:32:41: core_temps:
25.0
25.0
24.0
24.0
2018-11-01 20:32:41: core_temp = 25.0 C
2018-11-01 20:32:41: core_temp = 25.0 C
2018-11-01 20:32:41: core_temp = 24.0 C
2018-11-01 20:32:41: core_temp = 24.0 C
2018-11-01 20:32:41: CPU Temp: 25.0
2018-11-01 20:32:41: CPU Fan: low
2018-11-01 20:32:42: core_temps:
26.0
26.0
23.0
24.0
2018-11-01 20:32:42: core_temp = 26.0 C
2018-11-01 20:32:42: core_temp = 26.0 C
2018-11-01 20:32:42: core_temp = 23.0 C
2018-11-01 20:32:42: core_temp = 24.0 C
2018-11-01 20:32:42: CPU Temp: 26.0
2018-11-01 20:32:42: CPU Fan: low
2018-11-01 20:32:43: core_temps:
26.0
26.0
24.0
24.0
2018-11-01 20:32:43: core_temp = 26.0 C
2018-11-01 20:32:43: core_temp = 26.0 C
2018-11-01 20:32:43: core_temp = 24.0 C
2018-11-01 20:32:43: core_temp = 24.0 C
2018-11-01 20:32:43: CPU Temp: 26.0
2018-11-01 20:32:43: CPU Fan: low
2018-11-01 20:32:43: fan_speed = 3100
2018-11-01 20:32:43: CPU Fan speed: 3100 RPM
2018-11-01 20:32:43: fan_speed = 1100
2018-11-01 20:32:43: HD Fan speed: 1100 RPM
2018-11-01 20:32:43: CPU fan speed should be low, but 3100 > 2000.
2018-11-01 20:32:43: HD fan speed should be low, but 1100 > 1040.
2018-11-01 20:32:43: bmc_fail_count:  2, bmc_fail_threshold: 1
2018-11-01 20:32:43: Fan speeds are still not where they should be after 2 attempts, will reboot BMC.
2018-11-01 20:32:43: fanmode: full = 1
2018-11-01 20:32:43: Setting fan mode to 1 (full)
2018-11-01 20:32:49: Resetting BMC
2018-11-01 20:32:50: core_temps:
26.0
26.0
24.0
24.0
2018-11-01 20:32:50: core_temp = 26.0 C
2018-11-01 20:32:50: core_temp = 26.0 C
2018-11-01 20:32:50: core_temp = 24.0 C
2018-11-01 20:32:50: core_temp = 24.0 C
2018-11-01 20:32:50: CPU Temp: 26.0
2018-11-01 20:32:50: CPU Fan: low
2018-11-01 20:32:51: core_temps:
25.0
25.0
24.0
24.0
2018-11-01 20:32:51: core_temp = 25.0 C
2018-11-01 20:32:51: core_temp = 25.0 C
2018-11-01 20:32:51: core_temp = 24.0 C
2018-11-01 20:32:51: core_temp = 24.0 C
2018-11-01 20:32:51: CPU Temp: 25.0
2018-11-01 20:32:51: CPU Fan: low
2018-11-01 20:32:52: core_temps:
25.0
25.0
24.0
24.0
2018-11-01 20:32:52: core_temp = 25.0 C
2018-11-01 20:32:52: core_temp = 25.0 C
2018-11-01 20:32:52: core_temp = 24.0 C
2018-11-01 20:32:52: core_temp = 24.0 C
2018-11-01 20:32:52: CPU Temp: 25.0
2018-11-01 20:32:52: CPU Fan: low
2018-11-01 20:32:53: core_temps:
27.0
27.0
24.0
24.0
2018-11-01 20:32:53: core_temp = 27.0 C
2018-11-01 20:32:53: core_temp = 27.0 C
2018-11-01 20:32:53: core_temp = 24.0 C
2018-11-01 20:32:53: core_temp = 24.0 C
2018-11-01 20:32:53: CPU Temp: 27.0
2018-11-01 20:32:53: CPU Fan: low
2018-11-01 20:32:54: core_temps:
25.0
27.0
24.0
24.0
2018-11-01 20:32:54: core_temp = 25.0 C
2018-11-01 20:32:54: core_temp = 27.0 C
2018-11-01 20:32:54: core_temp = 24.0 C
2018-11-01 20:32:54: core_temp = 24.0 C
2018-11-01 20:32:54: CPU Temp: 27.0
2018-11-01 20:32:54: CPU Fan: low
2018-11-01 20:32:55: core_temps:
25.0
25.0
23.0
23.0
2018-11-01 20:32:55: core_temp = 25.0 C
2018-11-01 20:32:55: core_temp = 25.0 C
2018-11-01 20:32:55: core_temp = 23.0 C
2018-11-01 20:32:55: core_temp = 23.0 C
2018-11-01 20:32:55: CPU Temp: 25.0
2018-11-01 20:32:55: CPU Fan: low
2018-11-01 20:32:56: core_temps:
26.0
26.0
23.0
23.0
2018-11-01 20:32:56: core_temp = 26.0 C
2018-11-01 20:32:56: core_temp = 26.0 C
2018-11-01 20:32:56: core_temp = 23.0 C
2018-11-01 20:32:56: core_temp = 23.0 C
2018-11-01 20:32:56: CPU Temp: 26.0
2018-11-01 20:32:56: CPU Fan: low
2018-11-01 20:32:57: core_temps:
25.0
26.0
25.0
25.0
2018-11-01 20:32:57: core_temp = 25.0 C
2018-11-01 20:32:57: core_temp = 26.0 C
2018-11-01 20:32:57: core_temp = 25.0 C
2018-11-01 20:32:57: core_temp = 25.0 C
2018-11-01 20:32:57: CPU Temp: 26.0
2018-11-01 20:32:57: CPU Fan: low
2018-11-01 20:32:58: core_temps:
25.0
25.0
25.0
25.0
2018-11-01 20:32:58: core_temp = 25.0 C
2018-11-01 20:32:58: core_temp = 25.0 C
2018-11-01 20:32:58: core_temp = 25.0 C
2018-11-01 20:32:58: core_temp = 25.0 C
2018-11-01 20:32:58: CPU Temp: 25.0
2018-11-01 20:32:58: CPU Fan: low
2018-11-01 20:32:59: core_temps:
25.0
25.0
23.0
23.0
2018-11-01 20:32:59: core_temp = 25.0 C
2018-11-01 20:32:59: core_temp = 25.0 C
2018-11-01 20:32:59: core_temp = 23.0 C
2018-11-01 20:32:59: core_temp = 23.0 C
2018-11-01 20:32:59: CPU Temp: 25.0
2018-11-01 20:32:59: CPU Fan: low
2018-11-01 20:33:00: core_temps:
33.0
33.0
27.0
30.0
2018-11-01 20:33:00: core_temp = 33.0 C
2018-11-01 20:33:00: core_temp = 33.0 C
2018-11-01 20:33:00: core_temp = 27.0 C
2018-11-01 20:33:00: core_temp = 30.0 C
2018-11-01 20:33:00: CPU Temp: 33.0
2018-11-01 20:33:00: CPU Fan: low
2018-11-01 20:33:00: fan_speed = 3100
2018-11-01 20:33:00: CPU Fan speed: 3100 RPM
2018-11-01 20:33:01: fan_speed = 1100
2018-11-01 20:33:01: HD Fan speed: 1100 RPM
2018-11-01 20:33:01: CPU fan speed should be low, but 3100 > 2000.
2018-11-01 20:33:01: HD fan speed should be low, but 1100 > 1040.
2018-11-01 20:33:01: bmc_fail_count:  1, bmc_fail_threshold: 1
2018-11-01 20:33:01: Fan speeds are not where they should be, will try again.
2018-11-01 20:33:01: fanmode: full = 1
2018-11-01 20:33:01: Setting fan mode to 1 (full)
2018-11-01 20:33:06: Setting Zone 0 duty cycle to 40%
2018-11-01 20:33:06: Setting Zone 1 duty cycle to 30%
2018-11-01 20:33:07: core_temps:
26.0
26.0
24.0
24.0
2018-11-01 20:33:07: core_temp = 26.0 C
2018-11-01 20:33:07: core_temp = 26.0 C
2018-11-01 20:33:07: core_temp = 24.0 C
2018-11-01 20:33:07: core_temp = 24.0 C
2018-11-01 20:33:07: CPU Temp: 26.0
2018-11-01 20:33:07: CPU Fan: low
2018-11-01 20:33:08: core_temps:
25.0
25.0
25.0
25.0
2018-11-01 20:33:08: core_temp = 25.0 C
2018-11-01 20:33:08: core_temp = 25.0 C
2018-11-01 20:33:08: core_temp = 25.0 C
2018-11-01 20:33:08: core_temp = 25.0 C
2018-11-01 20:33:08: CPU Temp: 25.0
2018-11-01 20:33:08: CPU Fan: low
^C
root@NAS:/mnt/Storage/Scripts #



I lost a drive this week: that's the second Seagate Ironwolf. May then October. I am waiting for the RMA.
Thanks
I'm completely stumped. The portion of the code that controls the CPU fan, checks its speed, and resets the BMC, etc is unchanged from Stux's original code. I cannot find anything in the code that could explain the behavior you are getting.

So, I wonder if there is some chance of a hardware issue or error.
  1. Please confirm that the Intel CPU fan you are using is a four wire PWM fan. The script only works with PWM fans.
  2. Check the fan wiring again, and confirm that the CPU fan really is hooked up to the FAN 1 header.
  3. Carefully check the fan connector, and ensure that it is fully engaged on the pins on the FAN 1 header.
 

Stux

MVP
Joined
Jun 2, 2016
Messages
4,358
Would be explained by 3 pin fan. Ie able to report speed but not vary it.
 

JRD

Dabbler
Joined
Apr 21, 2018
Messages
42
I'm no longer getting emails about posts either. That functionality seems to have died.


I'm completely stumped. The portion of the code that controls the CPU fan, checks its speed, and resets the BMC, etc is unchanged from Stux's original code. I cannot find anything in the code that could explain the behavior you are getting.

So, I wonder if there is some chance of a hardware issue or error.
  1. Please confirm that the Intel CPU fan you are using is a four wire PWM fan. The script only works with PWM fans.
  2. Check the fan wiring again, and confirm that the CPU fan really is hooked up to the FAN 1 header.
  3. Carefully check the fan connector, and ensure that it is fully engaged on the pins on the FAN 1 header.
I checked again.
The cpu fan has 4 wires, as does the header for FAN1.
I unplugged and plugged it back in before running the script again: still mis-reads the speed.

A few weeks ago I even tried connecting the cpu fan to the FAN2 header with a view to try and eliminate at least some potential hardware issues.
That could leave:
both headers damaged
the motherboard defective
the cpu fan or lead defective
anything else?

This is an X11SSM-F-O board. Forgive my ignorance, but is this board set up different from X9 and X10 boards?
 

JRD

Dabbler
Joined
Apr 21, 2018
Messages
42
@Kevin Horton
joeschmuck has an X11SSM-F system. I wonder if he runs a fan script like yours?
 
Joined
Dec 2, 2015
Messages
730
This is an X11SSM-F-O board. Forgive my ignorance, but is this board set up different from X9 and X10 boards?
It is quite possible that the IPMI commands are different for X11 boards. Lets try the following after logging into the server via ssh:

ipmitool raw 0x30 0x45 0x01 0x01 #This sets the BMC mode to Full Speed.

ipmitool raw 0x30 0x70 0x66 0x00 0x00 #This checks the duty cycle in Zone 0. The result is hex, with 64 being 100% duty cycle. 32 is 50% duty cycle.

ipmitool raw 0x30 0x70 0x66 0x00 0x01 #This checks the duty cycle in Zone 1. The result is hex, with 64 being 100% duty cycle. 32 is 50% duty cycle.

ipmitool raw 0x30 0x70 0x66 0x01 0x00 0x32 #Sets duty cycle in Zone 0 to 50% (i.e. 32/64)

ipmitool raw 0x30 0x70 0x66 0x00 0x00 #This checks the duty cycle in Zone 0. The result is hex, with 64 being 100% duty cycle. 32 is 50% duty cycle.

ipmitool raw 0x30 0x70 0x66 0x01 0x01 0x32 #Sets duty cycle in Zone 1 to 50% (i.e. 32/64)

ipmitool raw 0x30 0x70 0x66 0x00 0x01 #This checks the duty cycle in Zone 1. The result is hex, with 64 being 100% duty cycle. 32 is 50% duty cycle.

ipmitool raw 0x30 0x45 0x01 0x01 #This sets the BMC mode back to Full Speed.

Let us know the results. This should help determine whether your board has the same command set.
 

JRD

Dabbler
Joined
Apr 21, 2018
Messages
42
It is quite possible that the IPMI commands are different for X11 boards. Lets try the following after logging into the server via ssh:

ipmitool raw 0x30 0x45 0x01 0x01 #This sets the BMC mode to Full Speed.

ipmitool raw 0x30 0x70 0x66 0x00 0x00 #This checks the duty cycle in Zone 0. The result is hex, with 64 being 100% duty cycle. 32 is 50% duty cycle.

ipmitool raw 0x30 0x70 0x66 0x00 0x01 #This checks the duty cycle in Zone 1. The result is hex, with 64 being 100% duty cycle. 32 is 50% duty cycle.

ipmitool raw 0x30 0x70 0x66 0x01 0x00 0x32 #Sets duty cycle in Zone 0 to 50% (i.e. 32/64)

ipmitool raw 0x30 0x70 0x66 0x00 0x00 #This checks the duty cycle in Zone 0. The result is hex, with 64 being 100% duty cycle. 32 is 50% duty cycle.

ipmitool raw 0x30 0x70 0x66 0x01 0x01 0x32 #Sets duty cycle in Zone 1 to 50% (i.e. 32/64)

ipmitool raw 0x30 0x70 0x66 0x00 0x01 #This checks the duty cycle in Zone 1. The result is hex, with 64 being 100% duty cycle. 32 is 50% duty cycle.

ipmitool raw 0x30 0x45 0x01 0x01 #This sets the BMC mode back to Full Speed.

Let us know the results. This should help determine whether your board has the same command set.

This is the output:
Code:
root@NAS:~ # ipmitool raw 0x30 0x45 0x01 0x01

root@NAS:~ # ipmitool raw 0x30 0x70 0x66 0x00 0x00
 64
root@NAS:~ # ipmitool raw 0x30 0x70 0x66 0x00 0x01
 64
root@NAS:~ # ipmitool raw 0x30 0x70 0x66 0x01 0x00 0x32

root@NAS:~ # ipmitool raw 0x30 0x70 0x66 0x00 0x00
 64
root@NAS:~ # ipmitool raw 0x30 0x70 0x66 0x01 0x01 0x32

root@NAS:~ # ipmitool raw 0x30 0x70 0x66 0x00 0x01
 64
root@NAS:~ # ipmitool raw 0x30 0x45 0x01 0x01

root@NAS:~ #


The fans jumped to Full Speed and stayed there throughout
 
Joined
Dec 2, 2015
Messages
730
This is the output:
Code:
root@NAS:~ # ipmitool raw 0x30 0x45 0x01 0x01

root@NAS:~ # ipmitool raw 0x30 0x70 0x66 0x00 0x00
 64
root@NAS:~ # ipmitool raw 0x30 0x70 0x66 0x00 0x01
 64
root@NAS:~ # ipmitool raw 0x30 0x70 0x66 0x01 0x00 0x32

root@NAS:~ # ipmitool raw 0x30 0x70 0x66 0x00 0x00
 64
root@NAS:~ # ipmitool raw 0x30 0x70 0x66 0x01 0x01 0x32

root@NAS:~ # ipmitool raw 0x30 0x70 0x66 0x00 0x01
 64
root@NAS:~ # ipmitool raw 0x30 0x45 0x01 0x01

root@NAS:~ #


The fans jumped to Full Speed and stayed there throughout
This suggests that there is some relevant difference between the X11SSM and the X10 boards that this script was written for. Ask SuperMicro what the commands are to set and check duty cycle on your board. If you can find the correct commands, we can modify the script to use them.
 

Stux

MVP
Joined
Jun 2, 2016
Messages
4,358
So, still reading 100% when set to 50%.

Yup, that’d be the problem right there :(

Could be the max mode ensures 100% now. What fan modes are available in your ipmi?
 
Joined
Dec 2, 2015
Messages
730
This is the output:
Code:
root@NAS:~ # ipmitool raw 0x30 0x45 0x01 0x01

root@NAS:~ # ipmitool raw 0x30 0x70 0x66 0x00 0x00
 64
root@NAS:~ # ipmitool raw 0x30 0x70 0x66 0x00 0x01
 64
root@NAS:~ # ipmitool raw 0x30 0x70 0x66 0x01 0x00 0x32

root@NAS:~ # ipmitool raw 0x30 0x70 0x66 0x00 0x00
 64
root@NAS:~ # ipmitool raw 0x30 0x70 0x66 0x01 0x01 0x32

root@NAS:~ # ipmitool raw 0x30 0x70 0x66 0x00 0x01
 64
root@NAS:~ # ipmitool raw 0x30 0x45 0x01 0x01

root@NAS:~ #


The fans jumped to Full Speed and stayed there throughout
The X11SSM-F has the same BMC as my X10SRH-cF board, so I'd hope it had the same command set. One possible explanation for the observed behaviour:

The case fans (Fractal Design Silent Series) are not PWM fans, so they would stay at full speed. Maybe the X11SSM-F board has different fan zone allocation than the X10SRH. I.e., maybe FAN 1, 2, etc are in Zone 1, not Zone 0.

Try the following commands, and report the results:

ipmitool raw 0x30 0x45 0x01 0x01 #This sets the BMC mode to Full Speed.

ipmitool sdr | grep FAN #reports all fan speeds

ipmitool raw 0x30 0x70 0x66 0x01 0x00 0x32 #Sets duty cycle in Zone 0 to 50% (i.e. 32/64)

ipmitool sdr | grep FAN #reports all fan speeds

ipmitool raw 0x30 0x70 0x66 0x01 0x00 0x32 #Sets duty cycle in Zone 0 to 50% (i.e. 32/64)

ipmitool sdr | grep FAN #reports all fan speeds

ipmitool raw 0x30 0x70 0x66 0x00 0x00 #This checks the duty cycle in Zone 0. The result is hex, with 64 being 100% duty cycle. 32 is 50% duty cycle.

ipmitool raw 0x30 0x70 0x66 0x00 0x01 #This checks the duty cycle in Zone 1. The result is hex, with 64 being 100% duty cycle. 32 is 50% duty cycle.

ipmitool raw 0x30 0x45 0x01 0x01 #This sets the BMC mode back to Full Speed.
 

JRD

Dabbler
Joined
Apr 21, 2018
Messages
42
This suggests that there is some relevant difference between the X11SSM and the X10 boards that this script was written for. Ask SuperMicro what the commands are to set and check duty cycle on your board. If you can find the correct commands, we can modify the script to use them.

SM replied :
It is not supported to check and set the duty cycle via RAW command, we only support the presets that already exist for fan speed.
 

Stux

MVP
Joined
Jun 2, 2016
Messages
4,358
Well. That sucks.

Mind you. Checking the duty cycle does seem to work. If it were my system, I’d try a few different mode and see if there are any changes. Maybe full mode is locked to 100%.
 

JRD

Dabbler
Joined
Apr 21, 2018
Messages
42
The X11SSM-F has the same BMC as my X10SRH-cF board, so I'd hope it had the same command set. One possible explanation for the observed behaviour:

The case fans (Fractal Design Silent Series) are not PWM fans, so they would stay at full speed. Maybe the X11SSM-F board has different fan zone allocation than the X10SRH. I.e., maybe FAN 1, 2, etc are in Zone 1, not Zone 0.

Try the following commands, and report the results:

ipmitool raw 0x30 0x45 0x01 0x01 #This sets the BMC mode to Full Speed.

ipmitool sdr | grep FAN #reports all fan speeds

ipmitool raw 0x30 0x70 0x66 0x01 0x00 0x32 #Sets duty cycle in Zone 0 to 50% (i.e. 32/64)

ipmitool sdr | grep FAN #reports all fan speeds

ipmitool raw 0x30 0x70 0x66 0x01 0x00 0x32 #Sets duty cycle in Zone 0 to 50% (i.e. 32/64)

ipmitool sdr | grep FAN #reports all fan speeds

ipmitool raw 0x30 0x70 0x66 0x00 0x00 #This checks the duty cycle in Zone 0. The result is hex, with 64 being 100% duty cycle. 32 is 50% duty cycle.

ipmitool raw 0x30 0x70 0x66 0x00 0x01 #This checks the duty cycle in Zone 1. The result is hex, with 64 being 100% duty cycle. 32 is 50% duty cycle.

ipmitool raw 0x30 0x45 0x01 0x01 #This sets the BMC mode back to Full Speed.

My case is a Fractal Design 804. The hard drives are all together on one side of the case above the psu. 3 Fractal Design Silent R2 fans on that side are connected to a fan hub
https://www.amazon.co.uk/Phanteks-PH-PWHUB_01-ph-pwhub-01-PC-Casing/dp/B00M0R05WE
The hub is connected to header FAN A on the mb.
Although not strictly pwm I believe this arrangement does provide speed control of fans in response to temperature.

I thought this was the best arrangement for this case. The alternative would have been the hub provided by Fractal which gives manual control at a fixed speed. No response to temperature
 
Joined
Dec 2, 2015
Messages
730
My case is a Fractal Design 804. The hard drives are all together on one side of the case above the psu. 3 Fractal Design Silent R2 fans on that side are connected to a fan hub
https://www.amazon.co.uk/Phanteks-PH-PWHUB_01-ph-pwhub-01-PC-Casing/dp/B00M0R05WE
The hub is connected to header FAN A on the mb.
Although not strictly pwm I believe this arrangement does provide speed control of fans in response to temperature.

I thought this was the best arrangement for this case. The alternative would have been the hub provided by Fractal which gives manual control at a fixed speed. No response to temperature
I've got a Fractal Design 804 as the case on my backup server.

The point of my message was I was wondering if perhaps the fan zones were designated differently on the X11SSM, which could explain the observed behavior, and allow us to solve the problem. The suggested commands would provide information to confirm or deny this hypothesis.
 
  • Like
Reactions: JRD

JRD

Dabbler
Joined
Apr 21, 2018
Messages
42
I've got a Fractal Design 804 as the case on my backup server.

The point of my message was I was wondering if perhaps the fan zones were designated differently on the X11SSM, which could explain the observed behavior, and allow us to solve the problem. The suggested commands would provide information to confirm or deny this hypothesis.

Much appreciated.
I hope to run some commands tonight.
 

JRD

Dabbler
Joined
Apr 21, 2018
Messages
42
The X11SSM-F has the same BMC as my X10SRH-cF board, so I'd hope it had the same command set. One possible explanation for the observed behaviour:

The case fans (Fractal Design Silent Series) are not PWM fans, so they would stay at full speed. Maybe the X11SSM-F board has different fan zone allocation than the X10SRH. I.e., maybe FAN 1, 2, etc are in Zone 1, not Zone 0.

Try the following commands, and report the results:

ipmitool raw 0x30 0x45 0x01 0x01 #This sets the BMC mode to Full Speed.

ipmitool sdr | grep FAN #reports all fan speeds

ipmitool raw 0x30 0x70 0x66 0x01 0x00 0x32 #Sets duty cycle in Zone 0 to 50% (i.e. 32/64)

ipmitool sdr | grep FAN #reports all fan speeds

ipmitool raw 0x30 0x70 0x66 0x01 0x00 0x32 #Sets duty cycle in Zone 0 to 50% (i.e. 32/64)

ipmitool sdr | grep FAN #reports all fan speeds

ipmitool raw 0x30 0x70 0x66 0x00 0x00 #This checks the duty cycle in Zone 0. The result is hex, with 64 being 100% duty cycle. 32 is 50% duty cycle.

ipmitool raw 0x30 0x70 0x66 0x00 0x01 #This checks the duty cycle in Zone 1. The result is hex, with 64 being 100% duty cycle. 32 is 50% duty cycle.

ipmitool raw 0x30 0x45 0x01 0x01 #This sets the BMC mode back to Full Speed.

This is the output:
Code:
root@NAS:/mnt/Storage/Scripts # ipmitool raw 0x30 0x45 0x01 0x01

root@NAS:/mnt/Storage/Scripts # ipmitool sdr | grep FAN
FAN1			 | 3100 RPM		  | ok
FAN2			 | 2300 RPM		  | ok
FAN3			 | 2500 RPM		  | cr
FAN4			 | 2500 RPM		  | cr
FANA			 | 1100 RPM		  | ok
root@NAS:/mnt/Storage/Scripts # ipmitool raw 0x30 0x70 0x66 0x01 0x00 0x32

root@NAS:/mnt/Storage/Scripts # ipmitool sdr | grep FAN
FAN1			 | 3100 RPM		  | ok
FAN2			 | 2300 RPM		  | ok
FAN3			 | 2500 RPM		  | cr
FAN4			 | 2500 RPM		  | cr
FANA			 | 1100 RPM		  | ok
root@NAS:/mnt/Storage/Scripts # ipmitool raw 0x30 0x70 0x66 0x01 0x00 0x32

root@NAS:/mnt/Storage/Scripts # ipmitool sdr | grep FAN
FAN1			 | 3100 RPM		  | ok
FAN2			 | 2300 RPM		  | ok
FAN3			 | 2500 RPM		  | cr
FAN4			 | 2500 RPM		  | cr
FANA			 | 1100 RPM		  | ok
root@NAS:/mnt/Storage/Scripts # ipmitool raw 0x30 0x70 0x66 0x00 0x00
 64
root@NAS:/mnt/Storage/Scripts # ipmitool raw 0x30 0x70 0x66 0x00 0x01
 64
root@NAS:/mnt/Storage/Scripts # ipmitool raw 0x30 0x45 0x01 0x01

root@NAS:/mnt/Storage/Scripts #


My IPMI gui has 4 fan modes:


After the commands to set duty cycle to 50% the fan speed dropped for a moment then resumed at Full.

Should one of the commands above have been for Zone 0 and the other for Zone 1?
 

Attachments

  • Fan Mode from IPMI gui.PNG
    Fan Mode from IPMI gui.PNG
    5.6 KB · Views: 509

Stux

MVP
Joined
Jun 2, 2016
Messages
4,358
After the commands to set duty cycle to 50% the fan speed dropped for a moment then resumed at Full.

That’s good news in a way, at least it dropped.

Helps confirm a possible theory I had that the max mode was now enforcing 100%. Previously max mode only sets the fans to 100% when changed to, then it doesn’t adjust them. Other modes adjust the fans more often.

You may want to try different modes and see if you have different results with the pwm raw commands.
 

JRD

Dabbler
Joined
Apr 21, 2018
Messages
42
By running a few commands I have found I can run RAW commands to change fan mode, which work. However, if in Full mode the fans continue regardless at max speed.

To get out of that, I have to use IPMI gui to select a different mode, eg Optimal/Save/Reset BMC

If I start in Optimal say, RAW commands can change the duty cycle, eg to 50% and this works for both Zones 0 and 1 see below:

Code:
root@NAS:/mnt/Storage/Scripts # ipmitool raw 0x30 0x70 0x66 0x00 0x00
 64
root@NAS:/mnt/Storage/Scripts # ipmitool raw 0x30 0x70 0x66 0x00 0x01
 64
root@NAS:/mnt/Storage/Scripts # ipmitool raw 0x30 0x45 0x01 0x01

root@NAS:/mnt/Storage/Scripts # ipmitool raw 0x30 0x45 0x00
 01
root@NAS:/mnt/Storage/Scripts # ipmitool raw 0x30 0x45 0x01 0x02

root@NAS:/mnt/Storage/Scripts # ipmitool raw 0x30 0x45 0x00
 02
root@NAS:/mnt/Storage/Scripts # ipmitool raw 0x30 0x45 0x01 0x00

root@NAS:/mnt/Storage/Scripts # ipmitool raw 0x30 0x45 0x00
 00
root@NAS:/mnt/Storage/Scripts # ipmitool raw 0x30 0x45 0x01 0x04

root@NAS:/mnt/Storage/Scripts # ipmitool raw 0x30 0x45 0x00
 04
root@NAS:/mnt/Storage/Scripts # ipmitool raw 0x30 0x70 0x66 0x01 0x00 0x32

root@NAS:/mnt/Storage/Scripts # ipmitool sdr | grep FAN
FAN1			 | 1900 RPM		  | ok
FAN2			 | 1300 RPM		  | ok
FAN3			 | 1300 RPM		  | ok
FAN4			 | 1200 RPM		  | ok
FANA			 | 700 RPM		   | nc
root@NAS:/mnt/Storage/Scripts # ipmitool raw 0x30 0x70 0x66 0x01 0x01 0x32

root@NAS:/mnt/Storage/Scripts # ipmitool sdr | grep FAN
FAN1			 | 1900 RPM		  | ok
FAN2			 | 1300 RPM		  | ok
FAN3			 | 1200 RPM		  | ok
FAN4			 | 1200 RPM		  | ok
FANA			 | 1000 RPM		  | ok
root@NAS:/mnt/Storage/Scripts # ipmitool raw 0x30 0x45 0x00
 02
root@NAS:/mnt/Storage/Scripts #

 

Stux

MVP
Joined
Jun 2, 2016
Messages
4,358
Be careful, you might want to verify that the speeds don’t reset st periodic intervals.

I think my script (and derivatives) can be easily modified to use optimal instead of max, and they might even gracefully deal with the periodic speed changes as part of their low/max detection and n stage checks.
 
Joined
Dec 2, 2015
Messages
730
I'm pretty sure that the BMC will attempt to keep controlling the fan speed in response to CPU and a temp sensor on the mother board, if the mode is Optimal. It is quite probable that the BMC will also attempt to control the fans in other fan modes too. You'll need to do some testing to see.

My notes say that the raw command to set Optimal mode is ipmitool raw 0x30 0x45 0x01 0x02 and the command for Standard mode is ipmitool raw 0x30 0x45 0x01 0x00.

I'm not sure what the command for Heavy I/O mode is. It might be ipmitool raw 0x30 0x45 0x01 0x03 or ipmitool raw 0x30 0x45 0x01 0x04
 
Joined
Dec 2, 2015
Messages
730
The info on this page at ServeTheHome suggests that the BMC sets the peripheral fan speed to a fixed value in Optimal and Heavy I/O settings. Thus it is possible that this might allow the script to work.

The same page says that the BMC will attempt to control the CPU fan in all modes except Full. So, you would need to select the option in the script to have the script not control the CPU fan. Just leave that to the BMC (and test it to make sure it keeps the CPU temperature at a suitable value when it is under load).
 
Top