Stop chasing a sensor that doesn't exist
lsiutil option, or sysfs path will summon it. Once you can tell "hard to monitor" from "impossible to monitor," the answer stops being another tool and starts being airflow. The same night's fan experiment made the point twice: the null result was the diagnosis.The storage box runs every HDD through one LSI SAS2008 HBA -- a 9211-8i-class card in IT mode, mpt3sas, sitting at PCI 05:00.0. These things are fanless, run hot, and are famous for slow-cooking themselves in dead-air cases. So the instinct is obvious: monitor the chip temperature. Graph it, alert on it, normal ops hygiene.
$ lspci | grep -i sas
05:00.0 RAID bus controller: Broadcom / LSI SAS2008 PCI-Express Fusion-MPT SAS-2 [Falcon] (rev 03)
First stop, the package manager:
$ dnf search lsiutil sas2ircu sas3ircu
No matches found.
Nothing. Fine -- LSI tooling was never really packaged. lsiutil is Broadcom's old Fusion-MPT utility, and one of its menu options reads the IOC temperature. Except Broadcom pulled it from their own downloads years ago. What's left is forum mirrors and a community fork, which means running an unsigned binary as root against the card that holds all my data. That is how a temperature graph turns into a data-recovery post. Pass, for now.
So go lower. Surely the driver exposes it in sysfs.
$ find /sys/devices/pci0000:00/*/05:00.0 -iname '*temp*'
$ find /sys/class/scsi_host/host*/ -iname '*temp*'
$
Two commands. Zero output. No ioc_temp, no hwmon node, nothing. At this point the reasonable read is "the driver is stingy," and you reach for lsirec -- the deepest low-level SAS2008 tool that exists, the one that rewrites the card's boot record. I got as far as its feature list before the penny dropped. It backs up SBRs. It flips IT/IR mode. It resets the adapter. It does not read temperature.
Because there is nothing to read.
The SAS2008 silicon has no temperature sensor. None. It was never wired to the die. The people who chase this all the way down and force a read get rewarded with:
IOC Temp: 0 (N/A) Board Temp: 0 (N/A)
Zero. Not-applicable zero, twice: once for the chip, once for the board. The honest answer the whole stack was trying to give me from the first empty find. The newer chips fixed this -- the SAS2308 (9207/9217) exposes it via mpsutil config page 7, the SAS3008 (9300) hands it over through storcli and mpt3sas sysfs. But the 2008 is a SAS2.0 chip from the era before anyone bothered. No tool, no driver patch, no lsiutil option summons a sensor that was never fabricated.
This was never a software problem. I spent an evening trying, with increasing sophistication, to read something that does not physically exist.
There's a line worth learning to see early: the gap between "hard to monitor" and "impossible to monitor." The first rewards effort. The second just eats it. When you hit the second, the answer is not another tool -- it's stop, and mitigate blind. I will never get a number off this card, so the mitigation is dumb and physical: put moving air across the heatsink and stop pretending I'll alert on it.
The fans that proved the same point#
Which is exactly where the next dead end started. To cool the HBA and the HDD chamber I wanted to know which motherboard PWM channel drove the HDD-side fans -- Nuvoton NCT6779D, nct6775, pwm1--pwm3 populated. So I ramped each channel alone and watched the drive temps.
Every channel, driven to 100% on its own, moved HDD temperatures by at most a degree. Every fan spun up, every drive shrugged. A confusing null result -- until I actually looked inside the Node 804's HDD chamber and found both chamber fans mounted backwards, cheerfully exhausting air out the front instead of pulling cool air in. Two fans, both spinning fine, in the wrong direction. The experiment wasn't broken. The null result was the diagnosis.
Same lesson, twice in one night. A missing signal is still a signal. The HBA's silence told me the sensor was never there; the fans' silence told me they were pointed the wrong way. Absence is data -- you just have to stop demanding a number long enough to hear it.
Filed under: hardware, linux, storage
Read next#
- All four drives at once, and why that was the good news — the same HBA, the night it took every disk with it, and why that was a shared-path fault
- Designing alerts you'll actually understand at 3am — what to monitor on a card that will never give you a temperature
- Reallocated sectors: is your drive dying or just scarred? — a signal that does exist, and how to read it without fooling yourself
Sources#
- Temperature Comparison: LSI SAS2008 vs. SAS2308 -- ServeTheHome: the 2008 has no sensor, the 2308 might.
- Broadcom/Avago/LSI HBA Card: Monitoring IOC Temperature -- TrueNAS: SAS2.0 can't report temp;
mpsutil show cfgpage page 7for cards that can. - marcan/lsirec -- the deepest SAS2008 low-level tool. Recovery, not thermometry.