Aktywne Wpisy
factoryoffaith_ +504
Ponad 4 lata starań, rezygnacja z pracy (praca z dziećmi tylko przypominała mi o moim pragnieniu), żeby się nie stresować i oddać ogarnianiu swojego organizmu. Godziny dziennie poświęcone latami na czytanie badań naukowych o moich i partnera problemach. Układanie diety, stylu życia, terapia. Tysiące złotych na badania, pewnie dziesiątki tysięcy na lekarzy, tony supli, leki które wpływają codziennie na moje samopoczucie. Układanie życia pod wizyty lekarskie + loty (tylko niewielką część czasu
michorn +85
Manjaro i Asus GL702ZC - konfiguracja chłodzenia Ryzen 7 1700 na Linuxie
W tym roku wymieniłem swój stary, leciwy już laptop, chodzący na Pentiumie jeszcze, na nowiutkiego, 8 rdzeniowego potwora z Ryzenem 7 1700, 32 GB RAM i 256 GB SSD PCI-E M2 na pokładzie.
Przeskok oczywiście niesamowity, niemniej jednak zaniepokoiło mnie coś, o czym pisałem już w innymi wpisie - wysokie temperatury i ogólne problemy ze wsparciem sprzętu.
W skrócie - kernel jeszcze nie obsługiwał tej konkretnej konfiguracji zbyt dobrze, przez co laptop rozgrzewał się do temperatur o wiele wyższych, niż mógłbym sobie tego życzyć.
Jednakże niedawno, mimo całego zamieszania wokół świata Linuxa, wyszła wersja 4.19 jądra. Przeglądając changelog natknąłem się tam na wzmiankę o czymś takim jak steronwnik k10temp, oraz rzekomo lepsze wsparcie dla pewnych procesorów z rodziny Ryzen/Threadripper. Zaświeciła mi się lampka.
Nie zrozumcie mnie źle, Windows nie jest zły - jak pisałem, to tylko narzędzie, ale fajnie by jednak było móc siedzieć sobie na Linuxie jako hoście. Oj tak.
A więc postanowiłem się trochę pobawić i sprawdzić, czy faktycznie coś się zmieniło.
# Manjaro to the rescue!
Dystrybucje, które najszybciej adaptują nowe kernele bez większych problemów, to zazwyczaj te, które mają cykl wydawniczy Rolling Release - oznacza to tyle, że nia ma tam jakiś konkretnych wersji, które są wspierane przez X czasu, nasz system jest ciągle aktualizowany po prostu.
Jedną z takich dystrybucji jest dystrybucja Manjaro. Świetna sprawa, ogółem super system, polecam.
W każdym razie. Zainstalowałem i zacząłem bój. I co?
Otóż, wyobraźcie sobie, udało się. Niżej przedstawiam jakie kroki podjąłem - jeśli ktoś z was również korzysta z tej konfiguracji sprzętowej, to być może skorzysta.
Pierwszą rzeczą, którą musiałem zrobić, to upewnienie się, czy posiadam zainstalowane dwie paczki tak w zasadzie -
lm_sensors
orazlib32-lm_sensors.
Jeśli takowe posiadamy, (ja miałem je zainstalowane domyślnie), to wskakujemy do kochanej konsoli i wpisujemy:
sudo sensors-detect
Po czym wszystko potwierdzamy. Na koniec moim oczom ukazała się taka oto wiadomość:
Driver
k10temp' (autoloaded):
AMD Family 17h thermal sensors' (confidence: 9)- Chip
Wiedziałem, że jestem w domu. Po tem jeszcze wpisałem
sensors
, które faktycznie wydrukowało mi wskaźniki temperatur!Po chwili googlowania, wyczytałem, iż dobrze by było zainstalować jeszcze:
asus-fan-dkms-git
Kluczem do sukcesu okazała się jednak paczka
nbfc
Zainstalować ją można prosto z AUR'a, ale do wyboru są dwie paczki -
nbfc
inbfc-git
Ja wybrałem tą drugą, gdyż może ona być kapkę nowsza czasem, a mi zależało na jak najświeższej wersji.
Jak instalować z AURa? Potrzebny nam
yaourt
Czyli:
sudo pacman -Syu yaourt
yaourt nbfc-git
W zależności od potrzeby, czasem do tego yaourta trzeba dorzucić sudo, ale z tym bym uważał, bo to paczki z AUR'a jednak, a potrafią być one niebezpieczne (bardzo, bardzo rzadko), ale jednak.
Zgodnie z dokumentacją
nbfc
, odpalam serwis.systemctl start nbfc.service
Potem już tylko
nbfc config -r
które ma mi zasugerować jaki config powinienem wybrać dla mojego sprzętu. Niestety dla laptopa GL702ZC takowy nie istniał, ale dostałem rekomendację zbliżonego - GL702VM, który co prawda sprzętowo jest zupełnie inny, ale cóż... A może zadziała?
Odpalam zatem następujące polecenie:
nbfc config -a "Asus ROG GL702VM"
Niestety, rzuca mi błędem. Podobnież znany problem, wystarczyło wpisać:
mv /opt/nbfc/Plugins/StagWare.Plugins.ECSysLinux.dll /opt/nbfc/Plugins/StagWare.Plugins.ECSysLinux.dll.old
I ponowić próbę.
Chwila prawdy i.... Działa. Wiatrak zaczyna pracować inaczej. Sukces.
Teraz tylko problem, bo dalej nie chodzi tak, jak chciałem - a to wiatrak od GPU się nie załącza kiedy trzeba, a to wiatrak od CPU za szybko i głośno chodzi. Coś ten config mi nie odpowiadał i to bardzo. Cóż miałem zatem zrobić, jak nie napisać swój. Biorę się do roboty zatem.
Okazało się to nie za trudne - jedynie męczące było ustalenie odpowiednich rejestrów Embedded Controllera, które odpowiadają za kontrolowanie prędkości wiatraczków, niemniej jednak narzędzie
ec-probe
przyszło mi z pomocą. Jak? A no albo rzucaszec-probe monitor —clearly
lub co jakiś czasec-probe dump
to wyświetla nam rejestry, tylko skąd wiedzieć, który jest odpowiedni?Wybrałem prostą metodę - obciążając mocno CPU/GPU wymuszałem szybszą pracę wiatraków, wtedy też od razu zmieniały się wartości w rejestrze, co sugerowało, że to ten poszukiwany. Jak to zrobić? Do obciążania CPU/pamięci/dysku jest fajna paczka -
stress
, po jej instalacji wystarczy wpisać, w przypadku ryzena 7:stress --cpu 16 --timeout 60
I już przez 60 sekund nasze CPU będzie w 100% obciążone, co wymusi szybkie odpalenie się wiatraczków. Rejestr ustalony.
Dla GPU analogicznie, tylko zamiast
stress
, korzystam zglmark2
.Jak się okazuje, za wiatraczki odpowiadają rejestry spod adresów 0xA0 i 0xA6, czy też raczej 160, 166. No to wstawiam je do configu, metodą prób i błędów ustalam jakie prędkości będą dobre przy jakich temperaturach tak, żeby za głośno laptop nie chodził przypadkiem jeśli temperatura jest niska, ale i żeby na wyższych dobrze chłodził. Ostatecznie coś takiego mi wyszło:
``
"/opt/nbfc/Configs/Asus ROG GL702ZC.xml"xml version="1.0"?
GL702ZC
grski
500
false
90
151
151
0
8
false
0
0
true
8
CPU
30
0
0
45
40
12.5
65
50
37.5
70
60
50
75
65
75
79
72
100
85
75
100
152
152
0
8
false
0
0
true
8
GPU
30
0
0
45
40
12.5
65
50
37.5
70
60
50
75
65
75
79
72
100
85
75
100
Set
OnWriteFanSpeed
160
10
true
10
Set
CPU FAN
Set
OnWriteFanSpeed
166
10
true
10
Set
GPU FAN
Teraz już tylko zapisanie tego pliku do
nbfc` i czekam teraz na odpowiedź.oraz odpalenie
nbfc config -a "Asus ROG GL702ZC"
Finito. Działa wszystko tak, jak chciałem. A jak działa, to czemu by się z kimś nie podzielić - zrobiłem zatem PR'kę do repo
Na koniec przydałoby się jednak jeszcze to, by ta usługa odpalała się automatycznie po uruchomieniu komputera, a więc jeszcze:
systemctl enable nbfc.service
Teraz już serio gotowe. Śmiga, lapek raczej poniżej 60 trzyma, co jak na to cpu jest spoko podczas pracy.
Męczący, to był dzień i wyzwanie, zajęło mi to kilka godzin, ale fajnie. Lubię takie przygody.
Jak coś to zajrzeć można też do mnie na bloga: grski.pl albo na steemit - tam też piszę.
#programowanie #linux
Komentarz usunięty przez autora
Jaki wersji nie ma? Czy jakich wersji nie ma?
na desktopach tego problemu nie było
zresztą teraz już faktycznie jest to relikt przeszłości, jak tylko zostanie zmergowany mój PR do repo nbfc - będzie wystarczyło zainstalować nbfc i tyle :D