Scroll to navigation

THINKFAN.CONF(5) File Formats Manual THINKFAN.CONF(5)

NUME

thinkfan.conf - configurație în format YAML pentru thinkfan(1)

DESCRIERE

YAML este o notație foarte puternică, dar concisă, pentru datele structurate. Specificațiile sale complete sunt disponibile la https://yaml.org/spec/1.2/spec.html. «thinkfan» utilizează doar un mic subset din întreaga sintaxă YAML, așa că ar putea fi util, dar nu strict necesar, ca utilizatorii să consulte specificațiile.

Cel mai important lucru de reținut este că indentarea este relevantă din punct de vedere sintactic. În special, tabulatoarele nu trebuie amestecate cu spațiile. Vă recomandăm să folosiți două spații pentru indentare, așa cum este prezentat mai jos.

Configurația «thinkfan» are trei secțiuni principale:

De unde trebuie citite temperaturile. Sunt acceptate toți controlorii de tip hwmon, precum și /proc/acpi/ibm/thermal și, în funcție de opțiunile din timpul compilării, libatasmart (pentru a citi temperaturile direct de pe discurile dure) și NVML (prin intermediul controlorului proprietar nvidia).

Ce ventilatoare ar trebui utilizate (în prezent este permis doar unul singur). Suportul pentru mai multe ventilatoare este în curs de dezvoltare și este planificat pentru o versiune viitoare. Pot fi utilizate atât comenzile PWM de tip hwmon, cât și cele de tip /proc/acpi/ibm/fan.

Trasează temperaturile în funcție de viteza ventilatorului. O „cartografiere simplă” specifică doar o temperatură ca limită inferioară și superioară (respectiv) pentru o anumită viteză a ventilatorului. Într-o „cartografiere detaliată”, limitele superioară și inferioară sunt specificate pentru fiecare controlor/senzor configurat în sensors:. Acest mod trebuie utilizat atunci când «thinkfan» monitorizează mai multe dispozitive care pot tolera cantități diferite de căldură.

Sub fiecare dintre aceste secțiuni, trebuie să existe o listă de corespondențe cheie-valoare, fiecare dintre acestea configurând un controlor de senzor, un controlor de ventilator sau un interval de viteză a ventilatorului.

CONTROLORI PENTRU SENZORI ȘI VENTILATOARE

Pentru ca «thinkfan» să funcționeze, trebuie mai întâi să știe ce controlori de senzori de temperatură și ce controlori de ventilatoare trebuie să folosească. Corelația dintre citirile de temperatură și vitezele ventilatoarelor este specificată într-o secțiune de configurare separată (a se vedea secțiunea VITEZELE VENTILATORULUI de mai jos).

Sintaxa senzorilor

Intrările din secțiunea sensors: pot specifica controlorii hwmon, thinkpad_acpi, NVML sau atasmart, unde ultimele două trebuie activate la compilare. Poate exista orice număr (mai mare decât zero) și orice combinație de intrări hwmon, tpacpi, nvml și atasmart. Cu toate acestea, poate exista cel mult o singură instanță a intrării tpacpi.

sensors:
  - hwmon: ruta-hwmon
    name: nume-hwmon
    indices: listă-index
    correction: listă-corecție
    optional: permite-erori_boolean
- tpacpi: /proc/acpi/ibm/thermal
    indices: list--index
    correction: listă-corecție
    optional: permite-erori_boolean
  - nvml: id-magistrală-nvml
    correction: listă-corecție
    optional: permite-erori_boolean
  - atasmart: fișier-dispozitiv-disc
    correction: listă-corecție
    optional: permite-erori_boolean
  - ...

Sintaxa ventilatoarelor

În prezent, «thinkfan» permite doar un singur ventilator, astfel încât poate exista o singură intrare în listă. Suportul pentru mai multe ventilatoare este în curs de dezvoltare și este planificat pentru o versiune viitoare. Ventilatorul este fie un ventilator hwmon:

fans:
  - hwmon: ruta-hwmon
    name: nume-hwmon
    indices: listă-index

sau un ventilator tpacpi:

fans:
- tpacpi: /proc/acpi/ibm/fan

Valori

Există trei moduri de a specifica ventilatoare sau senzori hwmon:

1)
O rută completă a unui fișier „temp*_input” sau „pwm*”, cum ar fi „/sys/class/hwmon/hwmon/hwmon0/pwm1” sau „/sys/class/hwmon/hwmon/hwmon0/temp1_input”. În acest caz, intrările „indices: listă-index” și „name: nume-hwmon” nu sunt necesare, deoarece ruta identifică în mod unic un ventilator sau un senzor specific.

Rețineți că această metodă poate duce la probleme atunci când ordinea de încărcare a controlorilor se schimbă în timpul pornirii, deoarece în numele dosarului „hwmonX”, X corespunde de fapt ordinii de încărcare. Utilizați metoda 2) sau 3) pentru a evita această problemă.

2)
Un director care conține un driver hwmon specific, de exemplu „/sys/devices/platform/nct6775.2592”. Rețineți că această rută nu conține directorul „hwmonX”, care depinde de ordinea de încărcare. Atâta timp cât conține doar un singur controlor/interfață hwmon, este suficient să specificați intrarea „indices: listă-index” pentru a-i indica lui «thinkfan» ce senzori specifici să utilizeze din acea interfață. Intrarea „name: nume-hwmon” nu este necesară.

3)
Un director care conține mai multe sau toți controlorii hwmon, de exemplu „/sys/class/hwmon”. Aici, atât intrările „name: nume-hwmon”, cât și „indices: listă-index” sunt necesare pentru a-i indica lui «thinkfan» ce interfață să selecteze sub această rută și ce senzori sau ce ventilator să folosească din acea interfață.

Numele unei interfețe hwmon, care se găsește de obicei într-un fișier numit „nume”. Acesta trebuie specificat dacă ruta-hwmon este o rută de bază care conține mai multe hwmons. Această metodă de specificare a senzorilor este deosebit de utilă în cazul în care ruta completă către un anumit hwmon continuă să se schimbe între porniri, de exemplu, din cauza schimbării ordinii de încărcare a modulelor de control.

O listă YAML [ X1, X2, ... ] care specifică ce senzori, respectiv ce ventilator trebuie să utilizeze de la o anumită interfață. Atât /proc/acpi/ibm/thermal, cât și multe interfețe hwmon conțin mai mulți senzori și nu toți dintre aceștia pot fi relevanți pentru controlul ventilatorului.

Pentru intrările hwmon, acest lucru este necesar în cazul în care ruta-hwmon nu se referă direct la un singur fișier „tempXi_input”, ci la un dosar care conține unul sau mai multe. În acest caz, listă-index specifică Xi pentru fișierele „tempXi_input”care trebuie utilizate. O interfață hwmon poate conține, de asemenea, mai multe comenzi PWM pentru ventilatoare, deci, în acest caz, listă-index trebuie să conțină exact o singură intrare.

Pentru senzorii tpacpi, această intrare este opțională. Dacă este omisă, se vor utiliza toate temperaturile găsite în /proc/acpi/ibm/thermal.

NOTĂ: disponibilă numai dacă «thinkfan» a fost compilat cu opțiunea USE_NVML activată.

ID-ul de magistrală PCI al unei plăci grafice nVidia care rulează cu controlorul proprietar nVidia. Poate fi obținut, de exemplu, cu «lspci | grep -i vga». De obicei, plăcile nVidia vor folosi controlorul „open source” nouveau, care ar trebui să accepte în schimb senzorii hwmon.

NOTĂ: disponibilă numai dacă «thinkfan» a fost compilat cu opțiunea USE_ATASMART activată.

Ruta completă către un fișier de dispozitiv pentru un disc dur care suportă S.M.A.R.T. A se vedea, de asemenea, opțiunea -d din thinkfan(1) care împiedică «thinkfan» să trezească discurile adormite (mecanice) pentru a le citi temperatura.

O listă YAML care specifică decalajele de temperatură pentru fiecare senzor utilizat de către controlorul dat. Folosiți această opțiune dacă doriți să utilizați sintaxa de nivel „simplu”, dar trebuie să compensați pentru dispozitive cu o toleranță termică mai mică. Rețineți totuși că sintaxa de nivel detaliat este de obicei alegerea mai bună (adică un reglaj mai fin).

O valoare de adevăr (yes/no/true/false) care specifică dacă «thinkfan» trebuie să accepte erori atunci când citește de la acest senzor. În mod normal, «thinkfan» va ieși cu un mesaj de eroare dacă citirea temperaturii de la orice senzor configurat eșuează. Marcarea unui senzor ca fiind opțional poate fi utilă pentru hardware-ul detașabil sau pentru dispozitivele care pot fi oprite complet pentru a economisi energie.

VITEZELE VENTILATORULUI

Secțiunea levels: specifică o listă de viteze ale ventilatorului cu limitele de temperatură inferioară și superioară asociate. Dacă temperaturile scad sub limita inferioară, «thinkfan» trece la nivelul anterior, iar dacă este atinsă limita superioară, «thinkfan» trece la nivelul următor.

Sintaxa simplă

În forma simplificată, se specifică doar o singură temperatură ca limită superioară/inferioară pentru o anumită turație a ventilatorului. În acest caz, limita-inferioară și limita-superioară sunt comparate numai cu cea mai mare temperatură găsită printre toți senzorii configurați. Toate celelalte temperaturi sunt ignorate. Acest mod este potrivit pentru sistemele mici (cum ar fi laptopurile) în cazul în care există un singur dispozitiv (de exemplu, CPU) a cărui temperatură trebuie controlată sau în cazul în care comportamentul necesar al ventilatorului este suficient de similar pentru toate dispozitivele care generează căldură.

levels:
  - [ viteza-ventilatorului, limita-inferioară, limita-superioară ]
  - ...

Sintaxa detaliată

Acest mod este potrivit pentru sisteme mai complexe, cu dispozitive care au temperaturi nominale diferite. De exemplu, multe CPU-uri și GPU-uri moderne pot face față zilnic la temperaturi de peste 80°C, în timp ce un disc dur va muri rapid dacă atinge astfel de temperaturi. În modul detaliat, limitele superioare și inferioare de temperatură sunt specificate pentru fiecare senzor în parte:

levels:
  - speed: viteza-ventilatorului
    lower_limit: [ l1, l2, ... ]
    upper_limit: [ u1, u2, ... ]
  - ...

Valori

Valorile posibile ale turației sunt diferite în funcție de controlorul de ventilator utilizat.

Pentru un ventilator hwmon, viteza-ventilatorului este o valoare numerică cuprinsă între 0 și 255, care corespunde valorilor PWM acceptate de diverși controlori ai nucleului.

Pentru un ventilator tpacpi de pe Lenovo/IBM ThinkPad și alte câteva laptopuri Lenovo (a se vedea CONTROLORI PENTRU SENZORI ȘI VENTILATOARE de mai sus), se pot utiliza valori numerice și șiruri de caractere. Valorile numerice variază de la 0 la 7. Valorile de tip șir de caractere au forma "level lvl-id", unde lvl-id poate fi o valoare de la 0 la 7, auto, full-speed sau disengaged. Valorile numerice de la 0 la 7 corespund vitezelor obișnuite ale ventilatorului utilizate de firmware, deși multe firmware-uri nici măcar nu utilizează nivelul 7. Valoarea "level auto" redă controlul firmware-ului, ceea ce poate fi util în cazul în care comportamentul ventilatorului trebuie modificat doar pentru anumite intervale specifice de temperatură (de obicei, la capetele de temperatură ridicată și scăzută ale intervalului). Valorile "level full-speed" și "level disengaged" iau controlul vitezei ventilatorului de la firmware, determinând ventilatorul să urce încet până la un maxim absolut care poate fi atins în limitele electrice. Rețineți că acest lucru va scoate ventilatorul din specificații și va cauza o uzură crescută, deși poate fi util pentru a combate blocarea termică.

Limitele inferioare și superioare se referă la senzori în aceeași ordine în care au fost găsiți la procesarea secțiunii senzors: (a se vedea secțiunea CONTROLORI PENTRU SENZORI ȘI VENTILATOARE de mai sus). Pentru prima intrare de nivel, lower_limit poate fi omisă, iar pentru ultima, upper_limit poate fi omisă. Pentru toate nivelurile intermediare, limitele inferioare trebuie să se suprapună cu limitele superioare ale nivelului anterior, pentru a se asigura că este acoperit întregul interval de temperatură și că există o anumită histerezis între nivelurile de viteză.

CONSULTAȚI ȘI

Pagina de manual thinkfan:
thinkfan(1)
Exemple de configurații livrate împreună cu distribuția sursă, disponibile și la:
https://github.com/vmatare/thinkfan/tree/master/examples
Documentația privind interfața de utilizator hwmon pentru Linux:
https://www.kernel.org/doc/html/latest/hwmon/sysfs-interface.html
Documentația privind interfața thinkpad_acpi:
https://www.kernel.org/doc/html/latest/admin-guide/laptops/thinkpad-acpi.html

ERORI

Raportați erorile în sistemul de urmărire a problemelor din github:
https://github.com/vmatare/thinkfan/issues

TRADUCERE

Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>

Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE.

Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-ro@lists.sourceforge.net.

decembrie 2021 thinkfan 1.3.1