TL;DR: H241 in HBA mode sees the NetApp DS212C shelf’s IOM12, SES processor, expander, fans, temps, and PSU — all healthy. But zero drives enumerate to either ssacli (controller firmware level) or Linux. Two different known-good SATA drives tested. Before I give up and swap for an LSI 9300-8e, is anyone running this exact combo successfully, and if so, what firmware version is your IOM12 on?
Setup
-
Host: Dell PowerEdge R630, ESXi
-
VM: TrueNAS SCALE 25.04.2.6 (Debian 12 / kernel 6.12.15)
-
HBA: HPE H241, FW 7.00, HBA mode enabled, PCIe passthrough to TrueNAS VM
-
Shelf: NetApp DS212C with dual IOM12 modules (FW 0300), dual PSU
-
Cable: HPE-branded SFF-8644 → SFF-8644, 1m, managed cable, recognized by H241 (PN 00Y8350)
-
Cabling: H241 Port 2E → IOM A Port 1 (verified correct per NetApp “Install and cable DS212C” doc — Port 1/2 = host-in, Port 3/4 = daisy-chain)
-
Drives tested:
-
Random WD SATA drive (provided by a NetApp admin who confirmed it works in their setup)
-
Seagate IronWolf 4TB ST4000VN008 (pulled from a working ZFS pool on another NAS, confirmed healthy)
-
What works
-
H241 reports
HBA Mode Enabled: True,Controller Mode: HBA, firmware 7.00 -
SAS link negotiates, managed cable detected
-
ssacli ctrl slot=0 enclosure all show detailreports the shelf, SES, expander, fans/temps/PSU all OK -
Shelf front panel shows green, ID 14, amber only due to partial population (confirmed non-fault)
What doesn’t
-
ssacli ctrl slot=0 pd all show→Error: The specified controller does not have any physical drives on it. -
lsscsi→ only H241 storage enclosure itself, no drives -
/sys/class/sas_expander/is empty -
/sys/class/sas_end_device/contains onlyend_device-1:1(the HBA’s own port endpoint)
dmesg evidence
Repeats every few minutes regardless of drive insertion:
hpsa 0000:0b:00.0: overrun condition: LUN:000000c000800001 CDB:12010000040000000000000000000000
hpsa 0000:0b:00.0: scsi 1:0:1:0: masked Enclosure NETAPP DS21212IOM12A enclosure SSDSmartPathCap- En- Exp=0
Decoded:
-
CDB
12 01 00 00 04= SCSI INQUIRY VPD Page 0x00 (“supported VPD pages”) against the enclosure’s SES device (LUNc000800001) -
NetApp SES returns more data than hpsa’s buffer expects → driver logs overrun
-
Driver masks the enclosure and flags
En-(enclosure services disabled) andExp=0(expander exposure disabled) -
ssaclialso reportsPhysical Drives: None attached, meaning the H241 firmware itself is hiding the enclosure, not just hpsa
Full ssacli ctrl slot=0 show config detail output (trimmed)
Smart HBA H241 in Slot 0 (Embedded)
Firmware Version: 7.00
HBA Mode Enabled: True
Controller Mode: HBA
DS21212IOM12A at Port 2E, Box 1, OK
Fan Status: OK
Temperature Status: OK
Power Supply Status: Redundant
Vendor ID: NETAPP
Firmware Version: 0300
Expander 378
Firmware Version: 0300
WWID: 500A098008118D89
Vendor ID: NETAPP
Enclosure SEP (NETAPP DS21212IOM12A) 0
Firmware Version: 0300
WWID: 500A098008118D88
Model: DS21212IOM12A
Physical Drives
None attached
Port Name: 2E
SAS Address: 5001438037A02C04
Port Phy Count: 4
Managed Cable Connected: True
Managed Cable Part Number: 00Y8350
Things already ruled out
-
✗ Controller not in HBA mode → it is, confirmed by ssacli
-
✗ Wrong cable port on shelf → confirmed correct per official NetApp DS212C cabling doc
-
✗ Bad cable → managed cable detected and recognized by H241
-
✗ Dead/bad drive → two drives tested, one known-good from working ZFS pool
-
✗ Bad bay → tested multiple bays, same result
-
✗ Shelf in unclean state → full cold power cycle done (both PSUs out 60s), no change
-
✗
smartpqidriver swap → smartpqi doesn’t bind to H241 (wrong generation, Gen9 vs Gen10+) -
✗
hpsa_allow_anyparam → removed from hpsa years ago, rejected by current driver -
✗ Interposer question → told by NetApp staff that interposers aren’t needed for SATA in DS212C
-
✗ 520-byte sector formatting → drives tested are 512b (IronWolf from ZFS pool)
My current theory
The H241 firmware’s SES handler doesn’t cleanly parse the IOM12 firmware 0300’s INQUIRY VPD response and defensively masks the enclosure at the firmware level. Everything behind a masked enclosure is invisible to everything above — ssacli, hpsa, Linux, TrueNAS. This isn’t a driver bug, it’s the H241 firmware making a deliberate choice.
Later IOM12 firmware (0281+, 0411) apparently changed SES response formatting. But updating IOM12 firmware requires an ONTAP filer running storage shelf firmware update, which I don’t have access to.
Questions for the community
-
Anyone actually running H241 + DS212C (IOM12) + SATA drives successfully? If yes, what’s your IOM12 firmware version?
-
Has anyone found a way to update IOM12 firmware without a running NetApp filer? (Standalone sg_write_buffer recipe, community flasher, anything?)
-
Any known H241 firmware downgrades that behave differently with NetApp SES devices?
-
Before I swap for an LSI 9300-8e (~CHF 100), is there any hpsa module parameter, kernel arg, or H241 config knob I’ve missed that could change enclosure masking behavior?
Happy to run more diagnostics if anyone wants specific output.