That IPMI command is for Supermicro X10/X11 boards, which is why it didn't work on your X9 board.Thanks for a great explanation of the way BMC is setup. I have several SM mother boards. Perhaps it is because my X9DR3-F board is one of that does not support Fan control but I tried the commands from a previous thread.
when i use the Truenas shell to type "ipmitool raw 0x30 0x70 0x66 0x01 0x00 0x24" command I get an error message I get says:
"unable to send RAW command channel=0x00 netfn=0x30 lun=0x0 cmd=0x70 rsp=0xcc
invalid data field in request"
Yes. You're right. Thanks for digging into that....raw <netfn> <cmd> [data]
"Network Function Codes:
VAL HEX STRING
==============================================
0 0x00 Chassis
2 0x02 Bridge
4 0x04 SensorEvent
6 0x06 Application
8 0x08 Firmware
10 0x0a Storage
12 0x0c Transport"
You can see that my X9DR3-F motherboard does not have a 0x30 netfn?
There is no decoder manual and unfortunately, as you've experienced it is a very confusing topic. Sometimes it's possible to find information in documentation produced by the BMC manufacturers, but it's rare and would normally be at the level of the motherboard's embedded software (embedded on its hardware) that talks to the BMC directly, such as an IPMI controller.Is there a decoder ring for these X9 boards. I did not find it on that server wiki link you shared. Where are the raw commands defined?
The most reliable method of discovery is unfortunately, hands-on experimentation or finding someone who has worked directly with a given board and can validate commands they know work with it. This can be tough to know though, because it's possible someone has entered the commands incorrectly and then believes it doesn't work, without realizing their mistake.
I am so glad you asked these questions and provided feedback, as you prompted me to spend more time on this....
Over time, I've stumbled upon conflicting literature on whether the NetFn byte should be 0x30 or 0x32 for X9 motherboards to control the fans. If one doesn't work for you, I would try the other. I've also found conflicting information on the number of bytes. More on that below.
Supermicro's X9 series of motherboards may have no BMC chip, or any one of the following four (4) BMC chips:
- Nuvoton WPCM450 (or Winbond WPCM450)
- Nuvoton WPCM450R (or Winbond WPCM450R)
- Renesas SH7757 (there may be other models, but I've only seen that one)
- ASPEED AST2400
Let's take a quick look at your X9 board model numbers and their BMC chipsets.Raw 0x32 0x91 0x00 0x7f
0x32 is the fan device
0x91 is cmd "set"
0x00 is zone
0x7f is 50% set in hex FF is 100%
I'll try my X9DRH-7F and other boards and your specific recommendations very soon.
X9DR3-F
I can use
when i send:
- Set IPMI fan mode to FULL: raw 0x30 0x45 0x01 0x01 and fan goes to full speed
- Set IPMI fan mode to FULL: raw 0x30 0x45 0x01 0x00 and fan goes to a normal speed, about 2600rpm
I get this error code
- Set fan zone 1 to duty cycle 7F (50%): raw 0x32 0x91 0x01 0x7f
Unable to send raw command (channel=0x0 netfn=0x32 lun=0x0 cmd=0x91 rep=0xc1):
Nuvoton WPCM450RX9DRH-7F
That board has a Nuvoton WPCM450 BMC chip, so that makes sense after digging further into my notes on Supermicro voodoo-magic.X9DR3-F
I can use
when i send:
- Set IPMI fan mode to FULL: raw 0x30 0x45 0x01 0x01 and fan goes to full speed
- Set IPMI fan mode to FULL: raw 0x30 0x45 0x01 0x00 and fan goes to a normal speed, about 2600rpm
I get this error code
- Set fan zone 1 to duty cycle 7F (50%): raw 0x32 0x91 0x01 0x7f
Unable to send raw command (channel=0x0 netfn=0x32 lun=0x0 cmd=0x91 rep=0xc1):
This should set that board to fan mode FULL:
raw 0x30 0x45 0x01 0x01
This should set it to STANDARD mode:
raw 0x30 0x45 0x01 0x00
This should return the currently set fan mode:
raw 0x30 0x45 0x00
Should return 0, 1, 2, or 4.
Did you mean X9DRD-7LN4F?X9DRD-7fln4
Same thing happens fans can be set to high and high turned off but same error message.
It took some time for the fan speed to reduce. I think it is faster than before after turning off full speed. That was my quietest system. not any more. it slowed in steps with delay in between. perhaps it will slow down more
It has Nuvoton WPCM450 BMC.
Try using this command to set it to OPTIMAL fan mode:
raw 0x30 0x45 0x01 0x02
Nuvoton WPCM450RX9DRH-7F
swapped some network cards yesterday and it needs some work to get back on the network. I'll try tomorrow. Ironically it is the one with the issue
So... they're all using a Nuvoton BMC chip. At least that makes things easier, as once you figure out the right commands, they will most likely work for all of them (any nuances between WPCM450 and WPCM450R notwithstanding).
Please try these other combos:
--> set manual fan control mode for all zones
raw 0x32 0x90 0x01
--> exit manual fan mode (set automatic fan mode) for all zones
raw 0x32 0x90 0x00
--> set a specific fan to duty cycle [ MANUAL FAN MODE MUST BE SET FIRST ]
raw 0x32 0x91 {fan_id} {duty_cycle}
--> get fan current duty cycle
raw 0x32 0x92 {fan_id}
IMPORTANT NOTES
--> fan_id starts at 0
--> fans are numbered (i.e. use 0x0 | 0x1 | 0x2 | etc. and do NOT use header names)
--> remember fan numbers are in hex
--> unclear if the duty_cycle range is 0 - 100 in hex (i.e. 0x00 - 0x64) or 0 - 100% as a percentage / 255 (i.e. range 0x00 - 0xFF where FF = 100% fan speed)