Documentation/hwmon/hp-wmi-sensors.rst
Source file repositories/reference/linux-study-clean/Documentation/hwmon/hp-wmi-sensors.rst
File Facts
- System
- Linux kernel
- Corpus path
Documentation/hwmon/hp-wmi-sensors.rst- Extension
.rst- Size
- 6393 bytes
- Lines
- 141
- Domain
- Support Tooling And Documentation
- Bucket
- Documentation
- Inferred role
- Support Tooling And Documentation: documentation
- Status
- atlas-only
Why This File Exists
Repository support layer: documentation, build tooling, samples, user-space helper tools, generated initramfs support, licenses, and validation utilities.
- Repository support layer: documentation, build tooling, samples, user-space helper tools, generated initramfs support, licenses, and validation utilities.
Dependency Surface
- No C-style include directives detected by the generator.
Detected Declarations
- No top-level syscall, struct, function, initcall, or export declaration detected by the generator.
Annotated Snippet
.. SPDX-License-Identifier: GPL-2.0-or-later
.. include:: <isonum.txt>
===========================
Linux HP WMI Sensors Driver
===========================
:Copyright: |copy| 2023 James Seo <james@equiv.tech>
Description
===========
Hewlett-Packard (and some HP Compaq) business-class computers report hardware
monitoring information via Windows Management Instrumentation (WMI).
This driver exposes that information to the Linux hwmon subsystem, allowing
userspace utilities like ``sensors`` to gather numeric sensor readings.
sysfs interface
===============
When the driver is loaded, it discovers the sensors available on the
system and creates the following sysfs attributes as necessary within
``/sys/class/hwmon/hwmon[X]``:
(``[X]`` is some number that depends on other system components.)
======================= ======= ===================================
Name Perm Description
======================= ======= ===================================
``curr[X]_input`` RO Current in milliamperes (mA).
``curr[X]_label`` RO Current sensor label.
``fan[X]_input`` RO Fan speed in RPM.
``fan[X]_label`` RO Fan sensor label.
``fan[X]_fault`` RO Fan sensor fault indicator.
``fan[X]_alarm`` RO Fan sensor alarm indicator.
``in[X]_input`` RO Voltage in millivolts (mV).
``in[X]_label`` RO Voltage sensor label.
``temp[X]_input`` RO Temperature in millidegrees Celsius
(m\ |deg|\ C).
``temp[X]_label`` RO Temperature sensor label.
``temp[X]_fault`` RO Temperature sensor fault indicator.
``temp[X]_alarm`` RO Temperature sensor alarm indicator.
``intrusion[X]_alarm`` RW Chassis intrusion alarm indicator.
======================= ======= ===================================
``fault`` attributes
Reading ``1`` instead of ``0`` as the ``fault`` attribute for a sensor
indicates that it has encountered some issue during operation such that
measurements from it should not be trusted. If a sensor with the fault
condition recovers later, reading this attribute will return ``0`` again.
``alarm`` attributes
Reading ``1`` instead of ``0`` as the ``alarm`` attribute for a sensor
indicates that one of the following has occurred, depending on its type:
- ``fan``: The fan has stalled or has been disconnected while running.
- ``temp``: The sensor reading has reached a critical threshold.
The exact threshold is system-dependent.
- ``intrusion``: The system's chassis has been opened.
After ``1`` is read from an ``alarm`` attribute, the attribute resets itself
and returns ``0`` on subsequent reads. As an exception, an
``intrusion[X]_alarm`` can only be manually reset by writing ``0`` to it.
debugfs interface
=================
.. warning:: The debugfs interface is subject to change without notice
and is only available when the kernel is compiled with
Annotation
- Atlas domain: Support Tooling And Documentation / Documentation.
- Implementation status: atlas-only.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.