Linux HP WMI 感測器驅動

版權:

© 2023 James Seo <james@equiv.tech>

描述

惠普 (以及一些 HP Compaq) 商用級計算機透過 Windows Management Instrumentation (WMI) 報告硬體監控資訊。 此驅動程式將該資訊公開給 Linux hwmon 子系統,允許諸如 sensors 之類的使用者空間實用程式收集數字感測器讀數。

sysfs 介面

載入驅動程式後,它會發現系統上可用的感測器,並在 /sys/class/hwmon/hwmon[X] 中根據需要建立以下 sysfs 屬性

([X] 是取決於其他系統元件的某個數字。)

名稱

許可權

描述

curr[X]_input

RO

電流,單位為毫安 (mA)。

curr[X]_label

RO

電流感測器標籤。

fan[X]_input

RO

風扇轉速,單位為 RPM。

fan[X]_label

RO

風扇感測器標籤。

fan[X]_fault

RO

風扇感測器故障指示器。

fan[X]_alarm

RO

風扇感測器警報指示器。

in[X]_input

RO

電壓,單位為毫伏 (mV)。

in[X]_label

RO

電壓感測器標籤。

temp[X]_input

RO

溫度,單位為千分之一攝氏度 (m°C)。

temp[X]_label

RO

溫度感測器標籤。

temp[X]_fault

RO

溫度感測器故障指示器。

temp[X]_alarm

RO

溫度感測器警報指示器。

intrusion[X]_alarm

RW

機箱入侵警報指示器。

fault 屬性

1 而不是 0 讀取為感測器的 fault 屬性表示它在執行期間遇到了一些問題,因此不應信任來自它的測量結果。 如果具有故障狀況的感測器稍後恢復,則讀取此屬性將再次返回 0

alarm 屬性

1 而不是 0 讀取為感測器的 alarm 屬性表示已發生以下情況之一,具體取決於其型別

  • fan: 風扇已停止或在執行時已斷開連線。

  • temp: 感測器讀數已達到臨界閾值。 確切的閾值取決於系統。

  • intrusion: 系統的機箱已開啟。

alarm 屬性讀取 1 後,該屬性會自行重置,並在後續讀取時返回 0。 作為一個例外,intrusion[X]_alarm 只能透過手動寫入 0 來重置。

debugfs 介面

警告

debugfs 介面可能會在沒有通知的情況下更改,並且僅在編譯核心時定義了 CONFIG_DEBUG_FS 時才可用。

sysfs 中的標準 hwmon 介面公開了在驅動程式初始化時連線的幾種常見型別的感測器。 但是,WMI 中通常還有其他感測器不符合這些標準。 此外,可能存在許多用於 alarm 屬性的特定於系統的“平臺事件物件”。 因此,提供了一個 debugfs 介面,用於對所有可用的 HP WMI 感測器和平臺事件物件進行只讀訪問。

/sys/kernel/debug/hp-wmi-sensors-[X]/sensor 包含每個感測器的一個編號條目,具有以下屬性

名稱

示例

名稱

CPU0 風扇

描述

報告 CPU0 風扇 速度

sensor_type

12

other_sensor_type

(一個空字串)

operational_status

2

possible_states

正常,謹慎,嚴重,不存在

current_state

正常

base_units

19

unit_modifier

0

current_reading

1008

rate_units

0 (僅存在於某些系統上)

如果平臺事件物件可用,則 /sys/kernel/debug/hp-wmi-sensors-[X]/platform_events 包含每個物件的一個編號條目,具有以下屬性

名稱

示例

名稱

CPU0 風扇 停止

描述

CPU0 風扇 速度

source_namespace

root\wmi

source_class

HPBIOS_BIOSEvent

category

3

possible_severity

25

possible_status

5

這些代表底層 HPBIOS_BIOSNumericSensorHPBIOS_PlatformEvents WMI 物件的屬性,這些屬性在不同系統之間有所不同。 有關更多詳細資訊和託管物件格式 (MOF) 定義,請參見 [1]

已知問題和限制

  • 如果已載入用於非商用 HP 系統的現有 hp-wmi 驅動程式,即使在支援它們的系統上,alarm 屬性也將不可用。 這是因為此驅動程式用於 alarm 屬性的相同 WMI 事件 GUID 用於這些系統上,例如,用於筆記型電腦熱鍵。

  • 已經觀察到可疑的感測器硬體和不一致的 BIOS WMI 實現會導致不準確的讀數和奇怪的行為,例如警報無法發生或每次啟動僅發生一次。

  • 到目前為止,僅在實際應用中看到溫度、風扇速度和入侵感測器型別。 因此,對電壓和電流感測器的支援是暫定的。

  • 儘管 HP WMI 感測器可能聲稱是任何型別,但 hwmon 未知的任何奇怪的感測器型別將不受支援。

參考文獻