ISTR that the acceptable values changed between IPMI firmware versions, but with ver. 1.23 the acceptable values are multiples of 150. Later version(s) may accept different values.Yes the fans are all PWM ones and yes, I did set both thresholds.
The fans were spinning up and down but stopped doing that after I changed the thresholds using ipmiutil (a few days ago).
I just checked the fan setting and it had flipped to "Full Speed". After changing it back to "Optimal Speed" the fans slowed down to 300 rpm.
Here is a dump I just did of the sensor settings for the fans :
Record ID: 808
ID String: FAN 1
Sensor Type: Fan (4h)
Sensor Number: 65
IPMB Slave Address: 10h
Sensor Owner ID: 20h
Sensor Owner LUN: 0h
Channel Number: 0h
Entity ID: fan/cooling device (29)
Entity Instance: 1
Entity Instance Type: Physical Entity
Event/Reading Type Code: 1h
Lower Critical Threshold: 150.000000 RPM
Upper Critical Threshold: 450.000000 RPM
Lower Non-Critical Threshold: 225.000000 RPM
Upper Non-Critical Threshold: 375.000000 RPM
Lower Non-Recoverable Threshold: 75.000000 RPM
Upper Non-Recoverable Threshold: 525.000000 RPM
Sensor Min. Reading: 0.000000 RPM
Sensor Max. Reading: 19125.000000 RPM
Normal Min.: 1500.000000 RPM
Normal Max.: 12750.000000 RPM
Nominal Reading: 9600.000000 RPM
Sensor Reading: 300.000000 RPM
Sensor Event: 'OK'
Record ID: 875
ID String: FAN 2
Sensor Type: Fan (4h)
Sensor Number: 66
IPMB Slave Address: 10h
Sensor Owner ID: 20h
Sensor Owner LUN: 0h
Channel Number: 0h
Entity ID: fan/cooling device (29)
Entity Instance: 2
Entity Instance Type: Physical Entity
Event/Reading Type Code: 1h
Lower Critical Threshold: 150.000000 RPM
Upper Critical Threshold: 450.000000 RPM
Lower Non-Critical Threshold: 225.000000 RPM
Upper Non-Critical Threshold: 375.000000 RPM
Lower Non-Recoverable Threshold: 75.000000 RPM
Upper Non-Recoverable Threshold: 525.000000 RPM
Sensor Min. Reading: 0.000000 RPM
Sensor Max. Reading: 19125.000000 RPM
Normal Min.: 1500.000000 RPM
Normal Max.: 12750.000000 RPM
Nominal Reading: 9600.000000 RPM
Sensor Reading: 300.000000 RPM
Sensor Event: 'OK'
Record ID: 942
ID String: FAN 3
Sensor Type: Fan (4h)
Sensor Number: 67
IPMB Slave Address: 10h
Sensor Owner ID: 20h
Sensor Owner LUN: 0h
Channel Number: 0h
Entity ID: fan/cooling device (29)
Entity Instance: 3
Entity Instance Type: Physical Entity
Event/Reading Type Code: 1h
Lower Critical Threshold: 150.000000 RPM
Upper Critical Threshold: 450.000000 RPM
Lower Non-Critical Threshold: 225.000000 RPM
Upper Non-Critical Threshold: 375.000000 RPM
Lower Non-Recoverable Threshold: 75.000000 RPM
Upper Non-Recoverable Threshold: 525.000000 RPM
Sensor Min. Reading: 0.000000 RPM
Sensor Max. Reading: 19125.000000 RPM
Normal Min.: 1500.000000 RPM
Normal Max.: 12750.000000 RPM
Nominal Reading: 9600.000000 RPM
Sensor Reading: 300.000000 RPM
Sensor Event: 'OK'
Record ID: 1009
ID String: FAN 4
Sensor Type: Fan (4h)
Sensor Number: 68
IPMB Slave Address: 10h
Sensor Owner ID: 20h
Sensor Owner LUN: 0h
Channel Number: 0h
Entity ID: fan/cooling device (29)
Entity Instance: 4
Entity Instance Type: Physical Entity
Event/Reading Type Code: 1h
Lower Critical Threshold: 150.000000 RPM
Upper Critical Threshold: 450.000000 RPM
Lower Non-Critical Threshold: 225.000000 RPM
Upper Non-Critical Threshold: 375.000000 RPM
Lower Non-Recoverable Threshold: 75.000000 RPM
Upper Non-Recoverable Threshold: 525.000000 RPM
Sensor Min. Reading: 0.000000 RPM
Sensor Max. Reading: 19125.000000 RPM
Normal Min.: 1500.000000 RPM
Normal Max.: 12750.000000 RPM
Nominal Reading: 9600.000000 RPM
Sensor Reading: 375.000000 RPM
Sensor Event: 'At or Above (>=) Upper Non-Critical Threshold'
Record ID: 1076
ID String: FAN A
Sensor Type: Fan (4h)
Sensor Number: 70
IPMB Slave Address: 10h
Sensor Owner ID: 20h
Sensor Owner LUN: 0h
Channel Number: 0h
Entity ID: fan/cooling device (29)
Entity Instance: 5
Entity Instance Type: Physical Entity
Event/Reading Type Code: 1h
Lower Critical Threshold: 150.000000 RPM
Upper Critical Threshold: 450.000000 RPM
Lower Non-Critical Threshold: 225.000000 RPM
Upper Non-Critical Threshold: 375.000000 RPM
Lower Non-Recoverable Threshold: 75.000000 RPM
Upper Non-Recoverable Threshold: 525.000000 RPM
Sensor Min. Reading: 0.000000 RPM
Sensor Max. Reading: 19125.000000 RPM
Normal Min.: 1500.000000 RPM
Normal Max.: 12750.000000 RPM
Nominal Reading: 9600.000000 RPM
Sensor Reading: 300.000000 RPM
Sensor Event: 'OK'
FAN models:
- FAN A : NF-A14 PWM
- FAN 1 : NF-A14 PWM
- FAN 2 : NH-U12DX i4
- FAN 3 : NF-A14 PWM
- FAN 4 : NF8 redux-1800 PWM (2 of them on a PWM splitter)
Here are the thresholds I'd ideally like to set based on Noctua's datasheets for each fan type:
NF8 redux-1800 PWM
Lower_Non_Critical_Threshold325
Lower_Critical_Threshold260
Lower_Non_Recoverable_Threshold185
Upper_Non_Critical_Threshold1800
Upper_Critical_Threshold1980
Upper_Non_Recoverable_Threshold2055
NF-A14 PWM & NH-U12DX i4 :
Lower_Non_Critical_Threshold300
Lower_Critical_Threshold240
Lower_Non_Recoverable_Threshold165
Upper_Non_Critical_Threshold1500
Upper_Critical_Threshold1650
Upper_Non_Recoverable_Threshold1725
When I try pushing these settings I get the following error message:
Code:Out of Range value '240.000000' for key 'Lower_Critical_Threshold' in section '808_FAN_1' Out of Range value '165.000000' for key 'Lower_Non_Recoverable_Threshold' in section '808_FAN_1' Out of Range value '240.000000' for key 'Lower_Critical_Threshold' in section '875_FAN_2' Out of Range value '165.000000' for key 'Lower_Non_Recoverable_Threshold' in section '875_FAN_2' Out of Range value '240.000000' for key 'Lower_Critical_Threshold' in section '942_FAN_3' Out of Range value '165.000000' for key 'Lower_Non_Recoverable_Threshold' in section '942_FAN_3' Out of Range value '325.000000' for key 'Lower_Non_Critical_Threshold' in section '1009_FAN_4' Out of Range value '260.000000' for key 'Lower_Critical_Threshold' in section '1009_FAN_4' Out of Range value '185.000000' for key 'Lower_Non_Recoverable_Threshold' in section '1009_FAN_4' Out of Range value '240.000000' for key 'Lower_Critical_Threshold' in section '1076_FAN_A' Out of Range value '165.000000' for key 'Lower_Non_Recoverable_Threshold' in section '1076_FAN_A'
That's when I switched to your method which is obviously more efficient.
I'll give it another go over the next few days...