A New Gigabyte Motherboard WMI Temperature Driver Will Likely Arrive In Linux 5.13

From LinuxReviews
Jump to navigationJump to search

Linux users with newer Gigabyte and ASUS motherboards for AMD processors have to compile a out-of-tree version of the it87 to get hardware sensors and fan control working, and sensor support for the very newest motherboards is a shot in the dark even if you do that. That may change for Gigabyte-users with Linux 5.13 as a new, Gigabyte-specific WMI driver has been merged into the Linux kernels platform drivers git tree. It will likely be merged into Linux 5.13 when the merge window opens.

written by 윤채경 (Yoon Chae-kyung)  2021-04-14 - last edited 2021-04-15. © CC BY

GA-MA790FXT-UD5P DDR3 RAM STICKS 20191205.jpg
Gigabyte GA-MA790FXT-UD5P "Ultra Durable" motherboard.

Hardware sensors chips, and fan control chips, on modern Gigabyte and ASUS motherboards for AMD Ryzen processors are typically provided by the Taiwanese chip-designer ITE Tech. Inc. They do not care about GNU/Linux operating system users, and neither do their biggest customers such as ASUS and Gigabyte.

A Choice Between Bad And Worse

Linux users with older motherboards with ITE chips on them can use the in-kernel it87 module to get hardware sensors and either partial or full fan control working. This module uses the Super I/O range to talk directly with ITE chips. It has not been updated in ages. It works fine you have an older ITE chip like the IT8720F found on AM3 motherboards from Gigabyte Technology. We are talking 2009-era hardware. We have the technology and we can confirm that the kernels it87 work perfectly fine with ancient Gigabyte motherboards like the GA-MA790FXT-UD5P.

Those new newer motherboards with ITE chips such as the IT8665E, IT8686E and IT8792E/IT8795E are are mostly out of luck. There is a out-of-tree it87 module that is more updated than the practically abandoned one in the Linux kernel. Those with the skill and the know-how required to compile a out of tree kernel modules can use it, but it's not a great option.

Guenter Roeck used to maintain the out-of-tree driver it87 driver for ITE chips. He gave up on that project in 2018 with farewell-message that reads:

"I have been unable to meet support demands for this driver, resulting in unpleasant experience and frustration for everyone involved.

Consequently, the driver will be removed from github, effective August 1, 2018. Interested parties are encouraged to clone the driver before that time and to start maintaining it on their own."

Guenter Roeck in the last out-of-tree it87 driver commit message

There were, luckily, quite a few people like us who noticed this announcement and saved the code. You can download It87-groeck-2018-06.tar.bz2 or clone one of the many GitHub repositories who forked it (like github.com/a1wong/it87).

One unfortunate problem with the out-of-tree it87 driver is that newer Linux 5.x kernels won't load it without the unsafe ignore_resource_conflict=1 flag. It is possible to work around this, but it is not ideal.

File: /etc/modprobe.d/it87.conf
options it87 ignore_resource_conflict=1

The out-of-kernel it87 will work with some semi-new Gigabyte and ASUS motherboards such as the Gigabyte GA-AX370-GAMING-5 and the ASUS ROG STRIX B350-F GAMING (we know it works on those). You can't expect it to work with the latest B550 and X570 boards without slightly altering the source code. That's not a great solution for people with no programming experience.

Do be aware that you will have big problems if you combine the it87 driver with other out-of-tree drivers like the OpenRGB driver for controlling the RGB lights on Gigabyte and ASUS motherboards.

Germany To The Rescue

German software developer Thomas Weißschuh has written a new and entirely different driver for ITE chips from scratch. The new 195 lines long gigabyte-wmi driver uses the Windows Management Instrumentation (WMI) interface on Gigabyte motherboards to access the ITE chips on those boards. That leaves those with ASUS boards with ITE chips out in the cold.

The new driver is, in some ways, severely limited. It can read sensors information from ITE chips through the WMI interface, but it can not write to them. There is no support for fan control or other functionality that requires two-way support. We have no idea if the WMI interface even provides any means of doing fan control or if it can only be done by communicating directly with the ITE chips over the Super I/O interface.

Hans de Goede from Red Hat has reviewed and signed-off on the new driver, so it is very likely that the gigabyte-wmi driver will be become a part of Linux 5.13 when Linux 5.12 is released and the merge window opens. It will be better than nothing for those who have a Gigabyte motherboard and no sensor information or fan control under Linux, but it may be a step backwards if you already have sensors and fan control working using the out-of-tree it87 driver.

(0 votes)

Add your comment
LinuxReviews welcomes all comments. If you do not want to be anonymous, register or log in. It is free.