Skip to content

HP EliteDesk 800 G3 DM 65W

Complete Linux guide for HP EliteDesk 800 G3 DM 65W hardware monitoring using hp-wmi-sensors. Read CPU fan speed, temperatures, voltages, intrusion alarms, and hwmon sysfs values on Gentoo and other Linux distributions.


Compile HP_WMI_SENSORS and load it

cd /usr/src/linux
make menuconfig
$ Search for hp_wmi
  Press [`/`] for search
  Press [m] on: SENSORS_HP_WMI
save
make -j$(nproc)
make modules_install
modprobe hp-wmi-sensors

Print system information

$ dmidecode -t system
# dmidecode 3.7
Getting SMBIOS data from sysfs.
SMBIOS 3.0.0 present.

Handle 0x0005, DMI type 1, 27 bytes
System Information
        Manufacturer: HP
        Product Name: HP EliteDesk 800 G3 DM 65W
        Version:  
        Serial Number: 1DB5126QM1
        UUID: 00f793b2-55c2-3a1f-1ae3-da78dc1b72f3
        Wake-up Type: Power Switch
        SKU Number: Y3A18AV
        Family: 103C_53307F HP EliteDesk

  • Modules loaded: hp-wmi-sensors
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°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.

Enable hp-wmi-sensors

modprobe -r hp-wmi-sensors

Disable hp-wmi-sensors

rmmod hp-wmi-sensors

Enable hp-wemi-sensors in kernel

zcat /proc/config.gz |grep CONFIG_SENSORS_HP_WMI=y

Print fan speed in rpm by using awk

$ awk 'NR==1{l=$0;next}{print l ": " $0 " RPM"}' /sys/class/hwmon/hwmon0/fan1_label /sys/class/hwmon/hwmon0/fan1_input
CPU Fan Speed: 2847 RPM

Print fan speed in rpm

sed 's/^/Fan Speed: /g' /sys/class/hwmon/hwmon0/fan1_input

Print module names of hwmon

grep -R . /sys/class/hwmon/hwmon*/name

Read CPU fan speed (rpm) via hp-wmi-sensors

cat /sys/class/hwmon/hwmon*/fan*_input 2>/dev/null

Example 2: Read CPU fan speed (rpm) via hp-wmi-sensors

d=$(for x in /sys/class/hwmon/hwmon*; do [ -f "$x/name" ] && [ "$(cat "$x/name")" = "hp_wmi_sensors" ] && echo "$x" && break; done)
cat "$d"/fan*_input

Find the hp-wmi-sensors hwmon directory

for d in /sys/class/hwmon/hwmon*; do
  [ -f "$d/name" ] && [ "$(cat "$d/name")" = "hp_wmi_sensors" ] && echo "$d"
done

Read cpu fan RPM (raw sysfs value)

HWMON=$(for d in /sys/class/hwmon/hwmon*; do
  [ -f "$d/name" ] && [ "$(cat "$d/name")" = "hp_wmi_sensors" ] && echo "$d" && break
done)

cat "$HWMON"/fan*_input

Read cpu fan RPM with a label and values

for f in "$HWMON"/fan*_input; do
  n=${f%_input}
  label_file="${n}_label"
  label=$( [ -f "$label_file" ] && cat "$label_file" || basename "$n" )
  printf "%s: %s RPM\n" "$label" "$(cat "$f")"
done

Print current cpu speed

cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_cur_freq

If enable as [M]odule in kernel then add hp-wmi-sensors to lm_sensors.conf

echo 'hp-wmi-sensors' >> /etc/modules.d/lm_sensors.conf

Read temperature and rpm for hp-wmi-sensors module

for t in "$HWMON"/temp*_input; do
  n=${t%_input}
  label_file="${n}_label"
  label=$( [ -f "$label_file" ] && cat "$label_file" || basename "$n" )
  # temps are usually millidegrees C
  printf "%s: %.1f°C\n" "$label" "$(awk '{print $1/1000}' "$t")"
done

CPU Temperature: 53.0°C
Chassis Temperature: 33.0°C