Wczesna wersja, tylko odczyt

Baseboard

Natywna aplikacja GNOME, która pokazuje czujniki i wentylatory płyty głównej w Linuksie.

Strona Przegląd: odczyty procesora, płyty, wentylatorów i napięć; wentylatory nazwane według złączy, np. CPU_FAN1 i SYS_FAN1, napięcia w tolerancji.
Przegląd: odczyty nazwane według złączy wentylatorów i szyn napięć płyty.

Co pokazuje dziś

Baseboard pokazuje odczyty i informacje o systemie, ale jeszcze niczym nie steruje. Nie ma wydań ani pakietów; aplikację buduje się ze źródeł.

  • Temperatury, obroty wentylatorów i napięcia, nazwane tak jak złącza i szyny w profilu płyty.
  • Ocenę napięć względem tolerancji oraz minimum i maksimum każdego odczytu od uruchomienia aplikacji.
  • Stronę System: płytę, BIOS, procesor, pamięć, kartę graficzną, dyski i stan sterownika wentylatorów.
  • Przycisk „Kopiuj informacje” z tekstem do zgłoszenia błędu, bez numerów seryjnych i adresów MAC.
  • Interfejs po polsku i po angielsku.
Strona System: płyta z kodem i rewizją PCB, sprawdzony profil płyty, wersja BIOS-u, procesor, system i jądro.
System: płyta, BIOS, procesor, pamięć, dyski i sterownik wentylatorów.

Jak działa

Czujniki i wentylatory Baseboard czyta wyłącznie przez sterowniki jądra i ich standardowy interfejs hwmon w sysfs, a jeśli jest zainstalowana, przez bibliotekę libsensors. Nie ma własnego dostępu do sprzętu: żadnych portów I/O, /dev/port ani /dev/mem, a z przestrzeni użytkownika nic nie pisze do kontrolera wbudowanego (EC). Działa jako zwykły użytkownik.

To, co dotyczy jednej płyty, czyli nazwy złączy wentylatorów i tolerancje napięć, leży w profilu płyty, w pliku danych. Punktem odniesienia jest część MSI Center dla Windows odpowiedzialna za czujniki i wentylatory.

Wentylatory a jądro

Sterowanie wentylatorami na tych płytach zależy od sterownika jądra nct6683. Baseboard nie sprawdza wersji jądra. Czyta atrybuty sysfs każdego kanału wentylatora i z nich wnioskuje, na co pozwala sterownik; ten poziom widać już na stronie System. Samo sterowanie przyjdzie w kolejnym etapie, a od tego momentu każdy poziom z tabeli odblokuje się sam, gdy jądro go udostępni, bez nowego wydania Baseboard.

PoziomCo zrobi BaseboardCzego wymaga od jądraStan w jądrze
Tylko odczytOdczyty oraz wentylatory tylko do podglądu, z wyjaśnieniem, że sterowanie wymaga nowszego sterownikaSterownika nct6683 dla układu NCT6687D-R płytyW obecnych jądrach
Tryb ręcznyStałe wypełnienie dla każdego złącza, ustawiane przez pomocnika systemowegoZapisywalnych pwmN i pwmN_enable oraz przywracania ich po wybudzeniuW hwmon-next, drzewie opiekuna podsystemu hwmon; jeszcze nie w wydanym jądrze
Podgląd krzywychKrzywe zapisane w EC i ich źródło temperatury, do podgląduCzytelnych pwmN_auto_point* i pwmN_auto_channels_tempW hwmon-next; jeszcze nie w wydanym jądrze
Krzywe w ECEdycja siedmiopunktowych krzywych w EC; działają też bez aplikacjiZapisywalnych pwmN_auto_point*Łatki w recenzji na liście linux-hwmon: wątek v1
Wybór temperaturyWybór czujnika, za którym idzie krzywaZapisywalnego pwmN_auto_channels_tempPlanowane, jeszcze niewysłane

Łatki w recenzji mogą się zmienić albo nie zostać przyjęte. Jeśli zmieni się ich interfejs, Baseboard się do niego dostosuje.

Praca w jądrze

Obsługa tej płyty w jądrze Linuksa powstaje równolegle z aplikacją, w głównym drzewie jądra.

W wydanych jądrach

Dźwięk

W głównym drzewie, jeszcze nie w wydanym jądrze

hwmon (czujniki i wentylatory)

Obsługiwane płyty

Sprawdzona jest jedna płyta: MAG B850M MORTAR WIFI (MS-7E61), rewizja PCB 1. Na innych komputerach Baseboard działa w trybie ogólnym: odczyty są, ale bez nazw złączy płyty i bez sterowania wentylatorami.

Profile kolejnych płyt powstaną wyłącznie z ich instrukcji, publicznych źródeł i testów na sprzęcie. Dopóki przypisanie złączy nie zostanie sprawdzone na danej płycie, jej profil daje odczyty i nazwy, ale nie steruje wentylatorami.

Zgłoś swoją płytę

Załóż zgłoszenie na GitHubie i wklej tekst z System → Kopiuj informacje. Jest w nim model i kod płyty, BIOS, urządzenia hwmon i poziom sterownika wentylatorów, a nie ma numerów seryjnych ani adresów MAC. Ten tekst jest zawsze po angielsku, także przy polskim interfejsie.

Instalacja

Pakietów jeszcze nie ma. Planowane jest wydanie na Flathubie.

Ze źródeł

Potrzebne są Rust 1.92 lub nowszy, GTK 4.22, libadwaita 1.9 i 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

Lokalny Flatpak

Manifest korzysta ze środowiska GNOME 51, a zależności Rusta buduje bez dostępu do sieci.

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

Flatpak czyta czujniki i informacje o systemie z dostępem tylko do odczytu do bazy udev. Nie widzi konfiguracji lm-sensors systemu, więc jej etykiety i instrukcje ignore nie działają; odczyty płyty i tak są przeliczone i nazwane według profilu. Żeby korzystać z tej konfiguracji, daj aplikacji dostęp tylko do odczytu do całego /etc:

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

Z piaskownicy Baseboard nie widzi innych programów sterujących wentylatorami i strona System mówi to wprost.

Plany

Najbliżej: sterowanie wentylatorami

Najpierw podgląd krzywych, potem mały pomocnik systemowy (D-Bus i polkit), jedyny element, który może zmieniać ustawienia wentylatorów, a na końcu tryb ręczny i edytor krzywych. Pomocnik nie może być częścią Flatpaka, więc trafi do osobnego pakietu systemowego. Obowiązują go stałe zasady bezpieczeństwa:

  • minimalne wypełnienie dla wentylatora procesora i pompy;
  • pompa nigdy nie staje;
  • krzywe procesora i pompy osiągają 100 % najpóźniej przy temperaturze awaryjnej;
  • złącza w trybie ręcznym wracają pod sterowanie firmware, gdy pomocnik się zakończy albo ulegnie awarii, przed wyłączeniem komputera i gdy temperatura przekroczy próg awaryjny;
  • ustawienia działają do następnego restartu;
  • sterowanie tylko na płycie, do której pasuje profil, łącznie z rewizją PCB, i tylko na złączach, których zapis sprawdzono na tej płycie.

Do rozważenia

To pomysły bez terminu i mogą się nigdy nie pojawić:

  • podświetlenie RGB płyty;
  • profile energii i restart do ustawień firmware;
  • pomoc przy aktualizacji BIOS-u, bez flashowania z działającego systemu.