Als je op dezelfde hardware ook Windows geïnstalleerd hebt, kun je daar mee controleren of de door lm_sensors geleverde waarden overeenkomen met het programma van de fabrikant of andere hardwaremonitoring-software en kijken welke benamingen de onderdelen hebben. Moderne BIOS-versies hebben ook gedetailleerde weergaven en instellingen voor de sensordata. Je moet ook de grenswaarden en minimale en maximale waarden noteren. Die helpen je later bij het identificeren van de sensordata.
Bij het aanroepen van sensors lijkt het soms of de hele pc zich in een alarmtoestand bevindt. Slechts zelden zijn de grenswaarden van de sensors correct geconfigureerd en achter veel waarden staat dan ook ALARM. Voor sommige systemen staan op de GitHub-projectpagina van lm_sensors kant-en-klare configuraties die de juiste waarden instellen. Soms levert even zoeken op internet ook een configuratiebestand op. Als je er een gevonden hebt, kopieer je die naar /etc/sensors.d/. Let er daarbij op dat de bestandsnaam eindigt op .conf.
Als je vanaf nul begint, kun het volgende commando uitvoeren:
sensors -u | less
De lijst die je dan te zien krijgt, laat alle sensorchips en hun inputs zien – en de bijbehorende instellingen. Daarnaast zie je ook de interne benamingen van de grenswaarden en inputnamen of labels. Voor de kernspanning van de cpu zag dat er als volgt uit:
in0:
in0_input: 1.392
in0_min: 0.000
in0_max: 1.744
in0_alarm: 0.000
in0_beep: 0.000
De naam van de betreffende input is in0. Dat wordt gevolgd door in0_input: voor de huidige waarde, en daarna komen de beide minimale en maximale waarden met de suffix _min en _max die die input mag hebben. De twee laatste getallen bepalen de grenswaarden voor het alarm en het akoestische signaal. Als die op 0 staan, dan wordt dat door lm_sensors genegeerd. Afhankelijk van je systeem zie je daar meer of minder parameters staan, maar de opbouw is altijd hetzelfde.
Bij temperatuursensors komt daar nog de suffix _max_hyst bij, waarbij hyst hysterese betekent. Als de sensorwaarde bijvoorbeeld de maximale temperatuur van 80 °C overschrijdt, geldt de alarmtoestand. Pas wanneer de sensor onder de lagere hysterese van 60 °C uitkomt, wordt de alarmtoestand opgeschort. Zelfs wanneer de temperatuur slechts even tot 81 °C stijgt en dan meteen weer 79 °C wordt, geldt het alarm, want er heeft zich toch ongebruikelijk veel hitte ontwikkeld. Als de waarde onder de hysterese uitkomt, dan lijkt het alsof het probleem opgelost is.
Er kunnen afhankelijk van de ingebouwde chip en het sensortype nog andere parameters voorkomen. Waar die voor dienen, kun je het beste eens bekijken bij de documentatie van Hwmon van de Linux-kernel.
Open vervolgens in de directory /etc/sensors.d/mijn-sensors.conf om een aangepaste configuratie voor je hardware te maken. Hieronder staat een voorbeeld.

Met een paar configuratie-opties kun je voor orde in de wirwar aan sensoren zorgen.
Het configuratiebestand begint met het sleutelwoord chip, gevolgd door de typenaam van de chip. Daarna volgt een suffix, die het bussysteem voor de chip vastlegt. Daar gebruik je de placeholder -* voor, want bij de gebruikelijke pc-hardware bestaat er maar één chip van dat type in het systeem.
De inputbenaming stel je in met het sleutelwoord label, gevolgd door de interne benaming van de input en de tekst die je als naam wilt gebruiken:
label in7 “System +3V”
Hier wordt van in7 de input ‘System +3V’ gemaakt. Om grenswaarden als in7_max in te stellen, gebruik je het sleutelwoord set in je configuratie:
set in7_max 3.63
set in7_max 3.3 * 1.1
Beide regels doen hetzelfde, want je kunt de waarden absoluut aangeven of rekenkundige operatoren gebruiken. Beide set-commando’s stellen de waarde 3,63 volt (3,3 volt nominaal plus 10 procent tolerantie) als maximale waarde voor de sensor in. De tweede variant is echter beter leesbaar en makkelijker te corrigeren als je de tolerantie kleiner wilt maken of vergroten. Als je bij de sensors waarvoor geen minimale en maximale waarden ingesteld zijn die waarden toch instelt, moet ook de alarmmelding daarachter verdwijnen.
Vaak zijn er sensorwaarden die te hoog of te laag zijn, Bij spanningen komt dat door het kleine meetbereik van de chips. Dat loop meestal van 0 tot 3,3 of 5 volt. Daardoor kan die chip hogere spanningen alleen indirect meten. Je moet de uitvoer daarvan aanpassen, zodat de waarde 1,008 V overeenkomt met de eigenlijk gemeten 12,096 V. Het achterhalen van de werkelijke waarde moet je zelf voor elkaar zien te krijgen. Daar kun je de onder Windows genoteerde waarden voor gebruiken en dan kijken welke van de data van lm_sensors zodanig om te rekenen zijn dat ze de gezochte meetwaarden representeren. Dan moet je even afwachten of de meetwaardeschommelingen, als die er zijn, zich binnen de verwachte orde van grootte bevinden. Vervolgens moet je dan nog berekenen of andere sensoren wellicht voor de gezochte meetwaarde in aanmerking zouden kunnen komen. Welke er het beste voor in aanmerking komt, moet je zelf beslissen. Afhankelijk van de sensor heb je nog meetwaarden over, die niet toe te wijzen zijn. Je kunt die dan gewoon weglaten of negeren.
Als je de sensorwaarde ontdekt hebt die je moet corrigeren, dan kun je compute gebruiken om rekenoperaties op de meetwaarde los te laten:
compute temp1 @/2 , @*2
set temp1_max 40
Daar moet je wel even goed bij opletten, want daarmee wordt niet alleen de inputwaarde van een sensor omgerekend, maar ook alle met die input samenhangende waarden. Daarom staat hier ook alleen maar temp1 en niet temp1_input achter het sleutelwoord. De grenswaarden worden net zo omgerekend als de inputdata.
De parameters van compute hebben de volgende volgorde: eerst komt de te corrigeren input (temp1), vervolgens twee door een komma gescheiden operaties. De eerste operatie geeft aan hoe lm_sensors de door de driver geleverde meetwaarden moet aanpassen voordat ze weergegeven worden. Als de driver bijvoorbeeld een waarde van 72 °C levert, maar je weet dat de werkelijk temperatuur maar half zo hoog is, dan deel je die door twee. De @ is de variabele voor de door de driver geleverde waarde. Door het delen komt de uitvoer van lm_sensors overeen met de werkelijke waarde van 36 °C.
De operatie achter de komma werkt precies andersom. Daar wordt gedefinieerd hoe lm_sensors waarden moet berekenen die de gebruiker heeft ingesteld, voordat ze aan de driver worden doorgegeven. De door set ingestelde maximale waarde voor deze sensor is bijvoorbeeld 40. Dan wordt die waarde door lm_sensors vermenigvuldigd met twee. Het resultaat (80) wordt doorgegeven aan de driver, zodat die een maximale waarde doorkrijgt die aangepast is aan de te hoge temperatuurwaarden.
Bij sommige sensors volstaat het om de eerste parameter te corrigeren en de tweede op de oorspronkelijke waarde (@) te laten staan. Of dat zo is, moet je uitproberen. Bij het omrekenen kun je alle vier de basisoperaties gebruiken, met haakjes werken of een minteken voor een waarde zetten om hem om te keren.
Als je je configuratie klaar hebt, voer je een keer het commando sudo sensors -s uit. Het programma leest de configuratie dan opnieuw in en past de sensorinstellingen aan door waarden in het door de driver in /sys beschikbaar gestelde bestand te schrijven. Een nieuwe aanroep van sensors moet dan de veranderingen weerspiegelen. Als er fouten in het configuratiebestand staan, dan meldt het programma dat en laat het de regels zien waar de problemen zitten.

Pas na het aanpassen van de instellingen geeft lm_sensors zinvolle sensorwaarden.
Als je inputs wilt verbergen die onzinnige dingen laten zien, dan kun je dat in het configuratiebestand doen met het sleutelwoord ignore.
Je kunt een voorbeeldconfiguratie voor lm_sensors downloaden en die aanpassen. Online zijn ook hardwarespecifieke configuratiebestanden te vinden zoals voor het MSI X370 SLI Plus moederbord.