Hi, I’m trying to measure power consumption on my Hailo-10H M.2 module but every approach fails, despite documentation suggesting it should work out-of-the-box.
Environment:
-
Device: Hailo-10H, M.2 Key M (2242/2280), confirmed via vendor spec sheet
-
Interface: PCIe Gen 3.0, 4 lanes
-
HailoRT: 5.3.0 (
hailort+hailort-pcie-driverpackages, arm64, installed via apt) -
Host: NVIDIA Jetson AGX Orin, JetPack 6.1.0
-
hailortcli fw-control identifyconfirms: Device Architecture HAILO10H, Boot source PCIE
What the documentation says:
The Python Power Measurement Tutorial (HailoRT 5.3.0 User Guide, section 5.6) states that power measurement requires an INA231 sensor on the board, and that:
“The default for platforms supporting current monitoring, such as M.2 and mPCIe modules, is
DvmTypes.OVERCURRENT_PROTECTION, which measures the power consumption of the whole module.”
Since my module is confirmed M.2, I expected this to work by default.
What actually happens:
- Explicitly requesting the documented default DVM for M.2 modules:
$ hailortcli measure-power --duration 1 --dvm OVERCURRENT_PROTECTION
Executing on device: pci/0005:01:00.0
[HailoRT] [error] CHECK_SUCCESS failed with status=HAILO_INVALID_ARGUMENT(2)
Failed to set power measurement parameters, status HAILO_INVALID_ARGUMENT(2)
Failed power measurement, status HAILO_INVALID_ARGUMENT(2)
Failed to execute on device: pci/0005:01:00.0. status= HAILO_INVALID_ARGUMENT(2)
- Just running with default (AUTO) DVM selection, no explicit
--dvm:
$ hailortcli measure-power --duration 1
Executing on device: pci/0005:01:00.0
[HailoRT] [error] CHECK_SUCCESS failed with status=HAILO_OPEN_FILE_FAILURE(13)
Failed to start power measurement, status HAILO_OPEN_FILE_FAILURE(13)
Failed power measurement, status HAILO_OPEN_FILE_FAILURE(13)
Failed to execute on device: pci/0005:01:00.0. status= HAILO_OPEN_FILE_FAILURE(13)
-
Same result from a different DVM (
VDD_CORE) — alsoHAILO_OPEN_FILE_FAILURE(13). -
Same failure reproduced at the Python API level, bypassing the CLI entirely:
python
from hailo_platform import Device
target = Device()
power = target.control.power_measurement()
hailo_platform.pyhailort._pyhailort.HailoRTException: libhailort failed with error: 13 (HAILO_OPEN_FILE_FAILURE)
Also tried, as a benchmark side-effect:
$ hailortcli benchmark <hef> --power-mode performance
...
Measurement power is not supported
Measurement current is not supported
My question:
-
OVERCURRENT_PROTECTIONfails withHAILO_INVALID_ARGUMENT, suggesting the DVM itself isn’t recognized as valid on my device — even though the docs say this should be the default for M.2 modules. -
Every other DVM fails with
HAILO_OPEN_FILE_FAILURE, suggesting something at a lower level (driver / sysfs / device file) isn’t available.
Is power measurement expected to work out-of-the-box on a standard Hailo-10H M.2 module, or does it require something extra (specific firmware config, a board revision with INA231 populated, a driver component not included in the standard apt package)? What does HAILO_OPEN_FILE_FAILURE typically indicate in this context, and is there a way to check from software whether my specific board actually has the INA231 populated?
Thanks in advance!