All Projects → electrified → Asus Wmi Sensors

electrified / Asus Wmi Sensors

Licence: gpl-2.0
Linux HWMON (lmsensors) sensors driver for various ASUS Ryzen and Threadripper motherboards

Programming Languages

c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to Asus Wmi Sensors

BioBalanceDetector
Bio Balance Detector's products aim to show the weak electromagnetic fields around every living being (including plants, animals and humans) and display it in a heat-map like hyper-spectral image.
Stars: ✭ 18 (-90.67%)
Mutual labels:  driver, sensors
mlx90632-library
MLX90632 library for the Melexis 90632 Infra Red temperature sensor.
Stars: ✭ 34 (-82.38%)
Mutual labels:  driver, sensors
Ioctlbf
Windows Kernel Drivers fuzzer
Stars: ✭ 170 (-11.92%)
Mutual labels:  driver
Ridesharing Android
Ridesharing driver & rider sample apps using HyperTrack SDK
Stars: ✭ 186 (-3.63%)
Mutual labels:  driver
Garhal csgo
A project that demonstrates how to screw with CSGO from Kernel Space. (CSGO Kernel Cheat/Hack) All cleaned up, and with updated offsets.
Stars: ✭ 179 (-7.25%)
Mutual labels:  driver
Dokanx
user-mode filesystem framework for Windows
Stars: ✭ 173 (-10.36%)
Mutual labels:  driver
Omnimidi
A software MIDI synthesizer for professional use.
Stars: ✭ 181 (-6.22%)
Mutual labels:  driver
Objcmongodb
Mac OS and iOS library for MongoDB and BSON
Stars: ✭ 166 (-13.99%)
Mutual labels:  driver
Teensystep
Fast Stepper Motor Library for Teensy boards
Stars: ✭ 191 (-1.04%)
Mutual labels:  driver
Ros canopen
CANopen driver framework for ROS (http://wiki.ros.org/ros_canopen)
Stars: ✭ 178 (-7.77%)
Mutual labels:  driver
Phpfastcache
A high-performance backend cache system. It is intended for use in speeding up dynamic web applications by alleviating database load. Well implemented, it can drops the database load to almost nothing, yielding faster page load times for users, better resource utilization. It is simple yet powerful.
Stars: ✭ 2,171 (+1024.87%)
Mutual labels:  driver
Arangodb Php
PHP ODM for ArangoDB
Stars: ✭ 178 (-7.77%)
Mutual labels:  driver
Arangodb Java Driver
The official ArangoDB Java driver.
Stars: ✭ 174 (-9.84%)
Mutual labels:  driver
Ksocket
KSOCKET provides a very basic example how to make a network connections in the Windows Driver by using WSK
Stars: ✭ 183 (-5.18%)
Mutual labels:  driver
Ssd Gpu Dma
Build userspace NVMe drivers and storage applications with CUDA support
Stars: ✭ 172 (-10.88%)
Mutual labels:  driver
Hive Jdbc Uber Jar
Hive JDBC "uber" or "standalone" jar based on the latest Apache Hive version
Stars: ✭ 188 (-2.59%)
Mutual labels:  driver
Postgres
Postgres.js - The Fastest full featured PostgreSQL client for Node.js
Stars: ✭ 2,193 (+1036.27%)
Mutual labels:  driver
Openrazer
Open source driver and user-space daemon to control Razer lighting and other features on GNU/Linux
Stars: ✭ 2,508 (+1199.48%)
Mutual labels:  driver
Wirehome.core
Wirehome.Core is a home automation system written in C# targeting .NET Core. It runs on Linux, Windows and macOS.
Stars: ✭ 180 (-6.74%)
Mutual labels:  sensors
Platypush
A versatile and extensible platform for home and life automation with hundreds of supported integrations
Stars: ✭ 192 (-0.52%)
Mutual labels:  sensors

Linux ASUS WMI Sensor driver

General info

Provides a Linux kernel module "asus_wmi_sensors" that provides sensor readouts via ASUS' WMI interface present in the UEFI of some X370/X470/B450/X399 Ryzen motherboards.

Note: X570/B550/TRX40 boards do not have the WMI interface and are not supported.

Features

  • Reports all values scaled and named identically to in the UEFI interface
  • No sensor configuration required

Supported hardware

Board Minimum BIOS Version
Asus ROG Crosshair Hero VII (WiFi) 1002
Asus ROG Crosshair Hero VII 1002
Asus ROG Crosshair Hero VI 6301
Asus ROG Crosshair Hero VI (WiFi) 6302
Asus ROG Crosshair Hero VI Extreme ?
ROG STRIX B450-E GAMING 2406
ROG STRIX B450-F GAMING 2406
ROG STRIX B450-I GAMING 2406
ROG STRIX X470-F GAMING 5007
ROG STRIX X470-I GAMING ?
ROG STRIX X399-E GAMING
ASUS Zenith Extreme 1607/1701
ASUS Zenith Extreme Alpha 0207
Prime X399-A 1002
Prime X470-Pro 4602

Currently don't work / unknown

Board
X570 boards (no WMI interface - use nct6775 driver instead)
B550 boards (no WMI interface - use nct6775 driver instead)
TRX40 boards (no WMI interface - use nct6775 driver instead)
Prime B450-Plus
Prime X370-Pro
TUF B450-PLUS GAMING
TUF X470-PLUS GAMING

How to install

Ensure you have lm_sensors, DKMS, kernel sources, GCC etc installed. Kernel version 4.12 or later is required.

If you have built your own kernel, it must have been built with CONFIG_HWMON (found under Device Drivers) and CONFIG_ACPI_WMI (found under Device Drivers -> X86 Platform Specific Device Drivers) enabled. It is not necessary to have built the "ASUS WMI Driver" (CONFIG_ASUS_WMI) module.

Arch Linux

Available as an AUR package - https://aur.archlinux.org/packages/asus-wmi-sensors-dkms-git/

This hooks into DKMS to build a module for your available kernels and adds a /etc/module-load.d/ entry so the module is loaded at boot.

The module can be manually loaded by issuing sudo modprobe asus_wmi_sensors

Run sensors and you should see a asuswmisensors-isa-0000 device and readouts as you see in the UEFI interface.

Gentoo

An ebuild is available in gyakovlev's overlay. https://github.com/gyakovlev/gentoo-overlay/tree/master/sys-kernel/asus-wmi-sensors

NixOS

Available as a package since 20.03 release, could be enabled with:

boot.extraModulePackages = [
    pkgs.asus-wmi-sensors
];

Other distributions

Clone the git repository: git clone https://github.com/electrified/asus-wmi-sensors.git

Build the module sudo make dkms

Insert the module sudo modprobe asus-wmi-sensors

Run sensors and you should see a asuswmisensors-isa-0000 device and readouts as you see in the UEFI interface.

Optional - consult your distro's documentation for info on how to make the module be loaded automatically at boot

FAQ

I think my motherboard should be supported but it doesn't work, what can I do?

First verify that WMI hardware monitoring is working for your board under Windows. Both HWiNFO (https://www.hwinfo.com/) and SIV(http://rh-software.com/) will make use of ASUS WMI for reading sensors if available. If your board is supported by those, post the output of sudo dmidecode -t baseboard and it should be possible to add support.

Why do some of my temperatures return 216 deg C?

This is the value returned for temperature sensor headers with no sensor connected.

Why are some of the sensors (e.g. CPU Core Voltage) duplicated?

The driver simply returns all the sensors available in the WMI output. CPU Voltage and others are included twice, in the Embedded Controller and SIO banks.

Why is reading from the sensors so slow?

This driver is not reading from the SuperIO/ Embedded controller directly, it uses a WMI interface put in the UEFI firmware by ASUS. Reading from this WMI interface seems inherently slow. I am investigating calling the underlying ACPI methods that the WMI interface calls which I have been told performs better.

Why does this driver exist?

Many of Asus' recent Ryzen motherboards have the ITE IT8665E sensor IC, which does not have any publicly available datasheets. Some support has been added to the out-of-tree IT87 driver, but this is currently unmaintained and not working on recent kernels. Also many Windows drivers are moving to use this WMI interface rather than accessing the chip directly as this avoids conflicts when multiple monitoring apps attempt to read the sensors simultaneously.

Why have you created a new driver and not added to the existing Asus/eeepc drivers?

  • The existing drivers are basic platform devices rather than using the kernels' WMI bus
  • These new sensor methods are on a different WMI class - "ASUSHW" than the existing "ASUSManagment" class which the other driver uses. The existing driver largely deals with laptop functionality (hotkeys, WiFi kill switches, screen brightness). Adding to that driver support for this additional sensors functionality would make it quite large.

Is it possible to control the speed of fans with this driver?

No, fan control is not part of the Asus sensors WMI interface. It may be possible via an undocumented method, but that would require reverse engineering effort.

I am using Ubuntu with a Ukuu kernel and the module won't build

If you use ukuu, or any other method to install a kernel, you should use the version of GCC used to build the kernel to build any additional out-of-tree modules otherwise you may run into issues.

Check cat /proc/version to see the version of GCC used to build the kernel, and upgrade your GCC install appropriately. (Usually an upgrade from GCC 7 to GCC 9 is needed)

Example sensors output

asuswmisensors-isa-0000
Adapter: Virtual device
CPU Core Voltage:         +0.88 V  
CPU SOC Voltage:          +1.13 V  
DRAM Voltage:             +1.34 V  
VDDP Voltage:             +0.24 V  
1.8V PLL Voltage:         +1.85 V  
+12V Voltage:            +11.88 V  
+5V Voltage:              +5.01 V  
3VSB Voltage:             +3.33 V  
VBAT Voltage:             +3.18 V  
AVCC3 Voltage:            +3.36 V  
SB 1.05V Voltage:         +1.07 V  
CPU Core Voltage:         +0.81 V  
CPU SOC Voltage:          +1.14 V  
DRAM Voltage:             +1.35 V  
CPU Fan:                  749 RPM
Chassis Fan 1:              0 RPM
Chassis Fan 2:            904 RPM
Chassis Fan 3:            888 RPM
HAMP Fan:                   0 RPM
Water Pump:                 0 RPM
CPU OPT:                    0 RPM
Water Flow:                 0 RPM
AIO Pump:                   0 RPM
CPU Temperature:          +37.0°C  
CPU Socket Temperature:   +31.0°C  
Motherboard Temperature:  +28.0°C  
Chipset Temperature:      +45.0°C  
Tsensor 1 Temperature:   +216.0°C  
CPU VRM Temperature:      +31.0°C  
Water In:                +216.0°C  
Water Out:                +28.0°C  
CPU VRM Output Current:   +1.00 A 

Known Issues

  • The WMI implementation in some of Asus' BIOSes is buggy. This can result in fans stopping, fans getting stuck at max speed, or temperature readouts getting stuck. This is not an issue with the driver, but the BIOS. The Prime X470 Pro seems particularly bad for this. The more frequently the WMI interface is polled the greater the potential for this to happen. Until you have subjected your computer to an extended soak test while polling the sensors frequently, don't leave you computer unattended. I can personally say I've seen the issue on the Crosshair VII with BIOS 2606 and a Ryzen 2700X, upgrading to 3004 rectified the issue.
  • A few boards report 12v voltages to be ~10v. Once again this is a BIOS issue.

Thanks

  • Ray Hinchcliffe, author of SIV for info
  • Original authors of the IT87 makefile
  • Authors of other mainlined HWMON kernel modules that I've studied while writing this
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].