I’ve recently setup Truenas SCALE with a Supermicro motherboard. I discovered @Glorious1 's fan scripts, but noticed they only work on Core and not Scale with the main difference being ‘camcontrol’ isn’t available on Scale.
Could someone running Core provide the output of /sbin/camcontrol devlist ? I think lsblk could be used, but I’d like to see the exact output, but more importantly the format, that is being used by camcontrol. Thanks!
Thank you for the response. My use case best fits with the single zone script. Is that something you’d be willing to share (assuming it isn’t already and I somehow missed it)?
No, I haven’t formally made it available because I don’t have the 2-zone version, which is what most people want. I’ll attach it here. Remove “.txt” from the zipfile name, unzip, and make spinpid.zsh executable if necessary. Of course you’ll have to go through the config file and transfer/update your config.
This is updated with Jimbo’s suggestions. By the way, friendly warning, if you have the script start with a postinit command, don’t test the shutdown function by setting a low ShutDownLimit, as yours truly did. It’s tricky to claw your way out of that one.
I’m concerned about the message in the log, “Received a response with unexpected ID 0 vs. 5” I’ve never seen such a thing. Do you have any idea where that’s coming from? I guess it is not an error that triggered the error reporting. If it happens again, please try changing your setpoint in the config to be precise to tenths instead of hundredths of a degree.
I don’t quite follow the LOGERR suggestion. Early in the script LOGERR is deleted. As I recall it is created again when anything is written to it. But you seem like you know your stuff so please explain.
It only happened once when I first ran the script. The only other time I’ve seen it was when running the original spintest.sh; even then I only ever saw it once. In both cases I was using a setpoint in the hundredths degree. I’ll try to the tenth degree. I did not see any catastrophic or odd behavior when those appeared.
$LOGERR is deleted if it exists, with rm "$LOGERR". On first run the rm call will fail as it hasn’t existed yet (or was deleted). The script will continue to run, but it will log an error to std.out and/or the log file. You could use an if/else block to delete only if it existed, but echo "" > $LOGERR will create it or clear the content if it does exist.
I’ve definitely had to tinker with the setpoint, but found some values that work for my setup. Awesome work, again!
@Glorious1, I’ve been running the script for a week now without any issues. The “Received a response with unexpected ID 0 vs. 5” issue disappeared once I removed the decimal value.
What are my other options for getting CPU temp on an X11? I’m getting “Sensor data record “CPU Temp” not found!” … Single zone 6029P-E1CR24L and X11DSC+. Thanks!
Many thanks to Glorious1 for that script. I modified it for ASUS W680 ACE SE motherboard, if anybody wants. It’s really amateur modification, but it works.
Same mobo here as user 67RS427, was struggling to make the script work, im partially there, so i figure i would share progress.
X11DSC+ is dual CPU so “CPU Temp” sensor doesn’t exist its “CPU1 Temp” and “CPU2 Temp”, i update the script as follow to capture a CPU average:
function CPU_check_adjust {
# Another IPMITOOL method of checking CPU temp:
# CPU_TEMP=$($IPMITOOL sdr | grep "CPU Temp" | grep -Eo '[0-9]{2,5}')
# For dual CPU boards, we need to average the two readings
CPU_TEMP1=$($IPMITOOL sensor get "CPU1 Temp" | awk '/Sensor Reading/ {print $4}')
CPU_TEMP2=$($IPMITOOL sensor get "CPU2 Temp" | awk '/Sensor Reading/ {print $4}')
CPU_TEMP=$(( (CPU_TEMP1 + CPU_TEMP2) / 2 ))
Later i faced an issue with the part that reads the FAN Speed at line 156 as it was directly pointing to “FAN1” but for me “FAN1” shows as not detected, although this part confuses me as it claims will check all fans 2nd thru 5th but is give it “FAN” so i capture all fans RPMs this breaks the script at line 475 while printing the “$RPM” so i point it to my “FAN2” and the script runs fine.
Im still seeing fans go down momentarily then up to 14200RPM again, so trying to figure that out still