Nie ma takiej rzeczy, której nie oprogramujesz w Linuksie



Zbyt rzadko sobie przypominam, jakim jestem szczęściarzem, że wciągnąłem się w ekosystem Linuksowy. Tu wszystko jest możliwe. Nota bene zapoznałem się z Linuksem przypadkiem – kolega, który miał mi przegrać FreeBSD miał problem z… zamountowaniem dyskietki (było to w okolicach roku 1998). Przez brak FreeBSD skierowałem się po next best thing czyli lajnuksa.

Zmieniając trochę temat, mam różne mniej lub bardziej poważne hobby. Za to czasem spotyka mnie czułość od Żony. Np. przyszła mnie przytulić, gdy kolejna osoba zginęła chodząc po Himalajach (hobby niebezpieczne, nie moje), a ja akurat siedziałem w gabinecie z lutownicą (hobby bezpieczne, moje).

Ostatnio zgłębiam zasoby Youtube pod kątem współczesnych komputerów PC, konkretnie ich chłodzenia. Mój serwerek/media center to nie jest maszyna jakoś specjalnie wymagająca, nawet dedykowanej karty graficznej nie ma (gram na Stadii). Ma być cichy i trwały. Obejrzawszy jutuby zrobiłem więc porządek z kablami, poprawiłem obieg powietrza, dołożyłem wiatraczek, dwa, ewentualnie dziesięć.

Generalnie działa, czasami coś zmienię albo przełożę.

Prawdziwa zabawa to sterowanie. Podstawowym parametrem do regulacji jest prędkość obrotów wentylatorków. Przeszedłem już przez kilka opcji: sterowanie przez płytę główną, związanie prędkości z temperaturą dysków/NVMe, czy też uzależnienie od temperatury procesora (coretemp). Dorobiłem się po drodze przyjemnych wykresów. Nawet przypomniałem sobie trochę Teorii Sterowania ze studiów. Ostatnio doszedłem do wniosku, że dobrze by było reagować na podstawie temperatury cieczy chłodzącej, bo duża pojemność cieplna wody dobrze uśrednia przebiegi… ale nie mam zestawu mierzącego ten parametr.

Za to mam od paru lat czujniki temperatury typu 1wire. Wziąłem jeden z nich i przykleiłem do radiatora. Do tego napisałem paręnaście linijek w Pythonie. Osiągnąłem efekt wow.

% systemctl show -p StatusText fancontrol-onewire
StatusText=Ambient: 26.1°C, water: 31.7°C, CPU: 39.0°C → PWM: 64

Na innych platformach byłbym zapewne ograniczony do własnościowego oprogramowania. Może byłoby w stanie odczytać temperaturę procesora, może czujniki na płycie głównej i w modułach RAM, ale na pewno nie jakieś zupełnie z kosmosu rzeczy na 1wire.

Jakby dobrze poszło, to we własnościowym sofcie może mógłbym wyrysować z grubsza krzywe zależności między temperaturą a prędkością wiatraczków. A mi się uwidziło zrobić zależność po sinusoidzie – z początku przyrost prędkości większy, potem mniejszy. W pythonie: ależ proszę bardzo. Co więcej, w obliczeniach biorę pod uwagę temperaturę powietrza wokół serwera. Z obserwacji mi wyszło, że w typowej sytuacji radiator jest cieplejszy od otoczenia o ok. 4,5°C. Jak to wyrazić w GUI? Praktycznie nie da rady.

Linux daje mi (mi, specjaliście IT; nie każdemu) mnóstwo swobody. Praktycznie co wymyślę mogę osiągnąć kilkoma prostymi integracjami. Jestem, kurcze, szczęściarzem, że trafiłem na tę platformę.

Comments


Comments powered by Disqus