Diorama płonącej serwerowni OVH
Posted on Tue 23 March 2021 in hack
• [1 min read]
Adnotacja z 2026: artykuł nigdy nie dokończony
Tytuł jest durny ale oddaje to co udało mi się zrobić.
Zaczęło się od tego, że kupiłem nowy serwer: Actina z procesorem AMD Epyc. Sprzęt fajny, cenowo dużo lepszy niż Delle albo HaPeki. Wszystko mający ale z jedną, powiedzmy wadą: bardzo głośny!
W serwerowni szum jego wiatraków włączyłby się w ogólny chór i nie byłoby sprawy ale ten sprzęt znajduje się w szafie stojącej w pokoju gdzie pracują księgowe. Nawet gdy nie jest mocno obciążony, po prostu wyje nie do wytrzymania. Ktoś kto pisał firmware przy wiatrakach przesadził z ustawieniem dolnej granicy obrotów, co jestem w stanie udowodnić więc do rzeczy.
"Skręcenie" obrotów wiatraka za pomocą ustawień BMC nic nie dało, musiałem znaleźć alternatywne rozwiązanie. Ktoś doradzał zmiejszenie napięcia i nawet początkowo poszedłem w tę stronę, dziś już nie pamiętam dlaczego porzuciłem to rozwiązanie - zdaje się, że wentylatory pracowały nierówno. W końcu wyczytałem, że
https://www.hackster.io/Buechner/4-wired-fan-control-pwm-bb29ac
https://starter-kit.nettigo.pl/2012/01/co-to-jest-pwm/
http://pavouk.org/hw/fan/en_fan4wire.html
#!/bin/bash
read -d '\n' -r -a core_temp_arr <<< $(sensors | grep 'Tctl:' | sed -e 's/^Tctl: *//;s/+//;s/°C//')
total_cpu_temp=0
index=0
for i in "${core_temp_arr[@]}"; do :
temp=$(echo $i | sed -n 's/°C.*//; s/.*[+-]//; p; q')
let index++
total_cpu_temp=$(echo "$total_cpu_temp + $temp" | bc)
done
avg_cpu_temp=$(echo "scale=2; $total_cpu_temp / $index" | bc)
echo $avg_cpu_temp
exit 0
stty -F /dev/ttyUSB0 9600 -parity cs8 -cstopb
OR
stty -speed 9600 < /dev/ttyUSB0
Now Send data:
echo "cmd" > /dev/ttyUSB0