Early version, read only

Baseboard

A native GNOME app for the sensors and fans of motherboards on Linux.

The Overview page: processor, mainboard, fan and voltage readings, with fans named after their headers, such as CPU_FAN1 and SYS_FAN1, and voltages within their tolerance.
Overview: readings named after the board’s fan headers and voltage rails.

What it shows today

Baseboard shows readings and system information and does not control anything yet. There are no releases or packages; it is built from source.

  • Temperatures, fan speeds and voltages, named after the fan headers and rails in the board profile.
  • Voltages rated against their tolerance, and the minimum and maximum of each reading since the app started.
  • A System page with the board, BIOS, processor, memory, graphics card, disks and the state of the fan driver.
  • A “Copy Information” button with a text for bug reports, without serial numbers or MAC addresses.
  • English and Polish.
The System page: the board with its code and PCB revision, the verified board profile, the BIOS version, the processor, the operating system and the kernel.
System: board, BIOS, processor, memory, disks and the fan driver.

How it works

For sensors and fans Baseboard relies only on the kernel drivers and their standard hwmon interface in sysfs, through libsensors where it is installed. It has no hardware access of its own: no I/O ports, no /dev/port or /dev/mem, and nothing in user space writes to the embedded controller (EC). It runs as a normal user.

What belongs to one board, such as the names of its fan headers and the tolerances of its voltages, is kept in a board profile, a data file. The point of reference is the sensor and fan part of MSI Center on Windows.

Fans and the kernel

Fan control on these boards depends on the nct6683 kernel driver. Baseboard does not check the kernel version. It reads the sysfs attributes of each fan channel and decides from them what the driver allows; the System page already shows this level. Fan control itself comes in the next milestone, and from then on each level below unlocks by itself once the kernel provides it, without a new release of Baseboard.

LevelWhat Baseboard doesWhat it needs from the kernelState in the kernel
Read onlyReadings, and the fans shown read only with a note that control needs a newer driverThe nct6683 driver for the board’s NCT6687D-R chipIn current kernels
Manual controlA fixed duty cycle per header, set through a system helperWritable pwmN and pwmN_enable, and their restore after resumeIn hwmon-next, the hwmon maintainer’s tree; not in a released kernel yet
Curve viewThe fan curves stored in the EC and their temperature source, as a previewReadable pwmN_auto_point* and pwmN_auto_channels_tempIn hwmon-next; not in a released kernel yet
Curve editingEditing the seven-point curves in the EC; they keep working without the appWritable pwmN_auto_point*Patches in review on linux-hwmon: v1 thread
Temperature sourceChoosing the sensor a curve followsWritable pwmN_auto_channels_tempPlanned, not sent yet

Patches in review may change or may not be accepted. If a patch changes its interface, Baseboard will follow it.

Kernel work

Support for this board in the Linux kernel is being developed alongside the app, in the mainline kernel tree.

In the mainline tree, not in a released kernel yet

hwmon (sensors and fans)

Supported boards

One board is verified: MAG B850M MORTAR WIFI (MS-7E61), PCB revision 1. On other computers Baseboard runs in a generic mode: the readings are there, without the board’s header names and without fan control.

Profiles of other boards will come only from their manuals, public sources and tests on the hardware. Until the header mapping is tested on a board, its profile shows readings and names without fan control.

Report your board

Open an issue on GitHub and paste the text from System → Copy Information. It holds the board model and code, the BIOS, the hwmon devices and the fan driver level, and no serial numbers or MAC addresses.

Install

There are no packages yet. A release on Flathub is planned.

From source

Requires Rust 1.92 or newer, GTK 4.22, libadwaita 1.9 and Meson 1.1.

git clone https://github.com/TomaszBojanowski/baseboard.git
cd baseboard
meson setup build
meson compile -C build
meson devenv -C build ./crates/app/baseboard

Local Flatpak

The manifest uses the GNOME 51 runtime and builds without network access for the Rust dependencies.

flatpak-builder --user --install --install-deps-from=flathub --force-clean \
    build/flatpak build-aux/flatpak/me.bojanowski.Baseboard.json
flatpak run me.bojanowski.Baseboard

The Flatpak reads the sensors and the system information with read-only access to the udev database. It does not see the system’s lm-sensors configuration, so its labels and ignore statements do not apply; the board’s readings are still scaled and named from its profile. To use the configuration, give the app read-only access to the whole of /etc:

flatpak override --user --filesystem=host-etc:ro me.bojanowski.Baseboard

From the sandbox Baseboard cannot see other programs that control fans, and the System page says so.

Plans

Next: fan control

A curve preview first, then a small system helper (D-Bus and polkit) that is the only part allowed to change fan settings, then manual mode and a curve editor. The helper cannot be part of a Flatpak and will come as a separate system package. It follows fixed safety rules:

  • minimum duty cycles for the CPU fan and the pump;
  • the pump never stops;
  • curves for the CPU and the pump reach 100 % by the emergency temperature;
  • headers in manual mode return to firmware control when the helper exits or crashes, before shutdown, and when a temperature passes its emergency threshold;
  • settings last until the next reboot;
  • control only on a board whose profile matches, PCB revision included, and only on headers whose writes were tested on that board.

Under consideration

These are ideas without a schedule, and they may not happen:

  • onboard RGB lighting;
  • power profiles and restarting into the firmware setup;
  • help with BIOS updates without flashing from the running system.