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