[#] "thermal_zone" czyli strefy termiczne w notebooku a sprawa wiatraczka

( Ostatnio zmieniony pon., 29/12/2008 - 23:09 )
 

UWAGA

Wszystko co zostanie tutaj powiedziane, wykonujesz na własne ryzyko. Jeśli nie jesteś pewien co powinieneś zrobić, nie rób nic. Nie ponoszę odpowiedzialności za ewentualne szkody spowodowane Twoją niewiedzą.

Ostrzegałem.

Informacje ogólne

Kontrolą czjników, wiatraka oraz odpowiednimi akcjami związanymi ze stanem systemu związane jest ACPI (Advanced Configuration & Power Interface).

Czujniki

Płyta główna, procesor i inne posiadają czujniki temperatury. Sprawdzenie nazw i ilości czujników wykonamy następująco:

ls /proc/acpi/thermal_zone/

TZ0  TZ1  TZ3  TZ4  TZ5

Jak widzimy posiadamy w systemie pięć czujników o wyżej wymienionych nazwach.

Znaczenie nazw czujników:

TZ0 – CPU 0 (które tylko odświeża się przy przekroczeniu trip pointa)
TZ1 – CPU 1
TZ2 – Chipset płyty głównej
TZ3 – temperatura otoczenia (systemu) ????
TZ4 – Bateria [czyli wartość powinna wzrosnąć gdy system chodzi z baterii?]
TZ5 – % obrotów wentylatora

Czyli wentylator jest uzależniony od temperatury 1 rdzenia CPU0?

Wiatraczek

Notebook wyposażony został w wiatraczek, którego prędkość wzrasta wraz z zapotrzebowaniem na chłodzenie. Informacji tej, dostarczają wcześniej wspomniane czujniki.

Sprawdzenie nazw i ilości stanów wiatraka wykonamy następująco:

ls /proc/acpi/fan/

C3BB  C3BC  C3BD  C3BE  C3BF

Jak widać posiadamy pięć trybów wiatraczka.

Trip_points – punkty wyzwalacza

Aby możliwe było sterowanie stanami wiatraka brakuje nam jeszcze jednego klocka w całej tej układance. Chodzi oczywiście o „trip_points“, czyli punkty wyzwalacza stanu wiatraka.

Aby dokonać sprawdzenia ustawień wyzwalacza wykonajmy:

cat /proc/acpi/thermal_zone/TZ0/trip_points

critical (S5):           256 C
active[0]:               80 C: devices=C3BB
active[1]:               65 C: devices=C3BC
active[2]:               55 C: devices=C3BD
active[3]:               40 C: devices=C3BE
active[4]:               30 C: devices=C3BF

z wykonania powyższego polecenia wynika że istnieje pewne powiązanie nazwy stanu wiatraka z temperaturą.

Sprawdźmy zatem jaki mamy aktualnie wykorzystywany stan wiatraka:

cat /proc/acpi/thermal_zone/TZ0/state

state:                   active[3]

Jest to stan [3], czyli odpowiednio do powyższego wyniku nie przekroczyliśmy temperatury 55 C, inaczej załączył by się stan [2]. Aby teraz dokonać sprawdzenia które stany wiatraka są w użyciu wykonamy:

cat /proc/acpi/fan/*/*

status:                  off
status:                  off
status:                  off
status:                  on
status:                  on

Potwierdźmy nasze wyliczenia – czy tak powinno być:

cat /proc/acpi/thermal_zone/TZ0/temperature

temperature:             45 C

Tak, temperatura nie przekroczyła stanu wyzwalacza więc wszystko się zgadza, jesteśmy w stanie [3] i daleko nam do stanu [2]. Z tego co mi wiadomo, niemożliwa jest na dzień disiejszy zmiana trip_ponts, jednak jeśli twój BIOS jest faktycznie „spaprany“ i potrzebujesz tego obejścia – nie smuć się – jest na to rada (ale to już w innym poście)

Krytyczny punkt

A co jeśli procesor osiągnie niebezpieczną temperaturę? Ano i na to jest sposób w rozumieniu ACPI:

cat /proc/acpi/thermal_zone/TZ1/trip_points

critical (S5):           108 C
passive:                 105 C: tc1=1 tc2=2 tsp=300 devices=CPU0 CPU1

gdzie TZ1 to czujnik procesora.

Jak widzimy, po osiągnięciu temperatury procesora 108 C, system ma za zadanie wykonać instrukcję S5 co oznacza:
S1 – „Stopgrant“ Zasilanie do CPU jest dostarczane ale nie są wykonywane żadne instrukcje. W Microsoft Windows, domyślnie przypisana jest akcja „Wstrzymaj“
S2 – nie używane
S3 – „Uśpij do RAM“ dla kernel > 2.4
S4 – „Uśpij do Dysk“ dla kernel > 2.4
S5 – „Wyłącz komputer“

Samowolka – ostrożnie

Zmiany stanu wiatraka możemy wykonać samodzielnie, jednak bądźmy przy takiej operacji bardzo ostrożni gdyż możemy zagrzać naszego notebooka na śmierć.

Przykład wyłączenia i ponownego włączenia stanu [3] wiatraka (active[3]: 40 C: devices=C3BE )

sudo -s

# wyłącz
echo 3 > /proc/acpi/fan/C3BE/state

# włącz
echo 0 > /proc/acpi/fan/C3BE/state

Linki

Dokumentacja ACPI
Projekt ACPI

Inne:
http://www.lesswatts.org/documentation/
http://www.lesswatts.org/tips/

5
Twoja ocena: Brak Średnio: 5 (2 głosy)