Linux wreszcie odczyta temperaturę chipsetów AMD. Pomógł Windows

Aktualności Płyty główne Obserwuj nas w Google

Linux wreszcie odczyta temperaturę chipsetów AMD. Pomógł Windows

Użytkownicy płyt głównych AMD z chipsetami X670, X670E i B650 doczekają się funkcji, której brakowało w Linuksie od lat. Jądro Linux 7.4 ma umożliwić odczyt temperatury chipsetu za pomocą standardowych narzędzi monitorujących. Najciekawsze jest jednak to, że do uruchomienia nowej funkcji potrzebna była analiza rejestrów i obserwacja działania programu HWiNFO64 w systemie Windows. AMD samo z siebie nic tu nie pomogło.

Każdy, kto korzystał z płyty głównej X670E lub B650 pod Linuksem, zna tę lukę. Procesor bez problemu zgłasza swoje temperatury, ale chipset, czyli część umieszczona pod radiatorem pośrodku płyty i obsługująca USB, SATA i dodatkowe linie PCIe, przewaźnie nie wyświetlał żadnych danych z czujników. To się zmienia w Linuksie 7.4. Najnowsza zmiana dodaje chipsety AMD z serii 600 do sterownika prom21-xhci, a poprawka jest przeznaczona do backportowania do stabilnych serii 7.2 i 7.3.

Ten sam chip, brak identyfikatorów

Sam sterownik nie jest nowy. Pojawił się w Linuksie 7.2, ale tylko z identyfikatorami urządzeń PCI dla chipsetów serii 800 (X870E, X870, B850 i podobnych). To dziwne pominięcie, ponieważ obie rodziny są zbudowane z tej samej matrycy Promontory 21, stosowanej samodzielnie na płytach B650 lub szeregowo w parach na X670 i X670E. Seria 600 AMD po prostu pojawia się na magistrali z różnymi identyfikatorami. Dodanie ich było jedynym rozwiązaniem i żaden inny kod nie musiał być zmieniany.

Sterownik odczytuje temperaturę kontrolera USB zintegrowanego z każdym układem Promontory 21, nie potrzeba tu żadnego dodatkowego czujnika. Dokumentacja jądra wyraźnie o tym informuje: ponieważ kontroler xHCI znajduje się wewnątrz chipsetu, jego odczyt stanowi przybliżony wskaźnik temperatury chipsetu. Na płycie X670E należy spodziewać się dwóch czujników.

AMD nie opublikowało dokumentacji. Pomógł HWiNFO64

Ciekawostką jest sposób znalezienia czujnika. Nie ma publicznej informacji o nim od AMD. Deweloper Jihong Min przesłał jeden z dwóch kontrolerów USB płyty X870E do maszyny wirtualnej z systemem Windows, uruchomił w nim HWiNFO64 i obserwował rejestry mapowane w pamięci kontrolera z hosta Linux, podczas gdy HWiNFO raportował temperaturę. Obserwując rejestry kontrolera USB, porównywał ich wartości z temperaturą wyświetlaną przez program. W ten sposób zidentyfikował rejestr pozwalający uzyskać surowy odczyt.

Następnie ustalił sposób przeliczania tej wartości na stopnie Celsjusza. Zastosowany wzór powstał na podstawie porównania wyników z odczytami HWiNFO64, a nie na podstawie oficjalnej specyfikacji AMD. Z tego powodu szczególnie nietypowe lub skrajne wyniki mogą wymagać ostrożnej interpretacji.

Sterownik ma również techniczne ograniczenia. Może nie uzyskać danych, jeśli kontroler jest zawieszony, a jego działanie może kolidować z oprogramowaniem układowym lub kodem ACPI korzystającym z tych samych rejestrów.

Linux 7.4 przyniesie też inne zmiany

To nie jedyna nowość dotycząca czujników w tym jądrze. Aktualizacja HWMON dla Linuksa 7.4.  Wśród zmian przygotowywanych dla Linuksa 7.4 znalazła się również dodatkowa obsługa płyt głównych ASUS w społecznościowym sterowniku asus-ec-sensors.

Dla właścicieli płyt AM5 najważniejsza pozostaje jednak możliwość sprawdzania temperatury chipsetu bez dodatkowych sztuczek i konieczności korzystania z Windowsa. Po wdrożeniu poprawki wystarczy odpowiednia wersja jądra oraz obsługiwane narzędzie monitorujące. To niewielka zmiana, ale dla osób kontrolujących temperatury całego komputera pod Linuksem zdecydowanie długo wyczekiwana.

Pokaż / Dodaj komentarze do:

Linux wreszcie odczyta temperaturę chipsetów AMD. Pomógł Windows
 0