[Eisfair] lm_sensors: Chipkonfiguration

Marcus Roeckrath marcus.roeckrath at gmx.de
Sa Mai 27 12:08:44 CEST 2017


Hallo Uwe,

Uwe Kunze wrote:

> Nach dem Kernel-Wechsel heute funktionierte (wie schon bei meinem Test
> vor 2 Wochen) fancontrol nicht mehr .... der CPU-Lüfter (der Einzige,
> den ich steuere) lief mit Vollgas.
> 
> Ich habe dann zuerst pwmconfig benutzt, aber der CPU-Lüfter drehte
> weiter volle Pulle (keine Änderung)
> 
> Deshalb dann erstmal das lm-sensors-Menü aufgerufen und Punkt 3
> (Re)detect Hardware ausgeführt und abgespeichert.
> 
> Danach wieder pwmconfig ... jetzt funktioniert die Drehzahlsteuerung
> wieder.
> 
> Die ALTE fancontrol.conf (3.2er Kernel) sah SO aus:
> ---------------------------------------------------
> 
> # Configuration file generated by pwmconfig, changes will be lost
> INTERVAL=10
> DEVPATH=hwmon0=devices/platform/w83627ehf.656
> DEVNAME=hwmon0=w83627dhg
> FCTEMPS=hwmon0/device/pwm2=hwmon0/device/temp2_input
> FCFANS= hwmon0/device/pwm2=hwmon0/device/fan2_input
> MINTEMP=hwmon0/device/pwm2=38
> MAXTEMP=hwmon0/device/pwm2=45
> MINSTART=hwmon0/device/pwm2=150
> MINSTOP=hwmon0/device/pwm2=100
> 
> Die neue config:
> ----------------
> 
> # Configuration file generated by pwmconfig, changes will be lost
> INTERVAL=10
> DEVPATH=hwmon1=devices/platform/w83627ehf.656
> DEVNAME=hwmon1=w83627dhg
> FCTEMPS= hwmon1/device/pwm2=hwmon1/device/temp2_input
> FCFANS= hwmon1/device/pwm2=hwmon1/device/fan2_input
> MINTEMP= hwmon1/device/pwm2=38
> MAXTEMP= hwmon1/device/pwm2=45
> MINSTART= hwmon1/device/pwm2=150
> MINSTOP= hwmon1/device/pwm2=0
> 
> Also aus hwmon0 ist jedenfalls hwmon1 geworden ...

In den beiden von Dir geposteten Daten vom alten und neuen Kernel, war es
aber für den w83627 als hwmon1; mag sein, dass das vorher mal anders war.

Ich laste das udev an, wobei dessen Verhalten sich auch von Kernel zu Kernel
leicht unterscheiden kann.

Bei mir tritt manchmal beim gleichen Kernel der Effekt auf, dass die beiden
Sensorenmodule vertauscht eingebunden werden.

> Jetzt erstmal DANKE für die Informationen zu lm-sensors !
> Trotzdem ist mir immernoch nicht ganz klar, was der Zweck der
> Optimierungen ist ... geht es um die Spannungen, die man senken kann, um
> die CPU etwas kühler zu betreiben (oder ggf. auch in die andere Richtung)
> ?

Nein, es geht schlicht darum, dass die Pseudorawwerte auf die echten Werte
umgerechnet werden.

Du hast z. B. in den Raw-Werten nirgendwo die 12V-Leitung drin, weil der
Chip nur auf eine Referenzspannung ausgelegte Rawwerte liefert:

w83627dhg-isa-0290
Adapter: ISA adapter
in0:          +1.14 V  (min =  +0.92 V, max =  +1.48 V)
in1:          +0.76 V  (min =  +0.67 V, max =  +0.83 V)
in2:          +3.25 V  (min =  +2.96 V, max =  +3.63 V)
in3:          +3.25 V  (min =  +1.25 V, max =  +0.00 V)  ALARM
in4:          +1.83 V  (min =  +1.36 V, max =  +2.04 V)
in5:          +1.27 V  (min =  +1.13 V, max =  +1.38 V)
in6:          +1.46 V  (min =  +1.42 V, max =  +1.52 V)
in7:          +3.23 V  (min =  +2.96 V, max =  +3.63 V)
in8:          +3.12 V  (min =  +2.96 V, max =  +3.63 V)

Sind wirklich alle in-Leitungen vom Boardhersteller verbunden? Bei in2/3
kommen mir da Zweifel.

Die inX liefern Messungen für alle Spannungen, also folgende möglichen
Spannungen, +-5, +-3, +-12, Batterie, ...

Du siehst da aber nirgendwo Werte für 5 oder 12 Volt, weil obige Werte auf
eine Referenzspannung bezogen/runtergerechnet sind.

Erst mit den zu Chip und Board passenden Formel erhälst Du die echten
Spannungswerte.

Leitungen die nicht wirklich vom Boardhersteller genutzt sind, zeigen
zufällige Werte an, die zu ALARM neigen (siehe in3).

Falls Du aufgrund der Messwerte eine Überwachung druchführen solltest, geht
auch im lm_sensors-Paket, bekämmst Du ständig Warungen oder Runterfahren
des Systems.

Entweder ist in3 nicht verwendet worden oder benötigt saubere Definitionen,
um korrekte verwertbare Informationen zu liefern.


fan1:           0 RPM  (min =  753 RPM, div = 128)  ALARM
fan2:         162 RPM  (min =  727 RPM, div = 64)  ALARM
fan3:           0 RPM  (min =  753 RPM, div = 128)  ALARM
fan4:           0 RPM  (min =  753 RPM, div = 128)  ALARM
fan5:           0 RPM  (min =  753 RPM, div = 128)  ALARM

IMHO sind fan 1,3,4,5 garnicht angeschlossen/verdrahtet, dann wären diese zu
ignorieren:

ignore fan1

temp1:        +38.0°C  (high = +75.0°C, hyst = +70.0°C)  sensor = thermistor
temp2:        +39.0°C  (high = +77.0°C, hyst = +72.0°C)  sensor = CPU diode
temp3:        +35.0°C  (high = +77.0°C, hyst = +72.0°C)  sensor = CPU diode

intrusion0:  ALARM

Um den Alarm loszuwerden:

ignore intrusion0

>> Du müsstest zunächst
>> LM_SENSORS_CHIP_1='w83627dhg'
>> wählen.
>>
>> Im lm_sensors-Menu gibt es Beispielkonfigurationen für bestimmte Chips
>> und diverse Boards, die man Importieren kann.
>>
>> Welches Board hast Du?
> 
> Mobo: Supermicro model: C2SBC-Q v: PCB Version

Dafür gibt es keine Beispielkonfiguration, aber für C2SBA und C2SBE
(Definitionen bei beiden Boards gleich):

chip "w83627dhg-*"
   label in0 "VCore"
   label in1 "+12V"
   label in2 "+3.3V"
   ignore in3
   label in4 "DIMM Voltage"
   label in5 "+5V"
   label in6 "-12V"
   label in7 "+3.3VSB"
   label in8 "VBAT"
   compute in0 @, @
   set in0_min 1.0
   set in0_max 1.4
   compute in1 @*16,  @/16
   set in1_min 12*0.95
   set in1_max 12*1.05
   compute in2 @, @
   set in2_min 3.3*0.95
   set in2_max 3.3*1.05
   compute in4 @, @
   set in4_min 1.8*0.95
   set in4_max 1.8*1.05
   compute in5 @*4, @/4
   set in5_min 5*0.95
   set in5_max 5*1.05
   compute in6 ((@-2.048)*24.2)+2.048, ((@-2.048)/24.2)+2.048
   set in6_min -12*1.05
   set in6_max -12*0.95
   compute in7 @, @
   set in7_min 3.3*0.95
   set in7_max 3.3*1.05
   compute in8 @, @
   set in8_min 3*0.9
   set in8_max 3*1.1
   label fan1      "Fan 3"
   label fan2      "Fan1/CPU Fan"
   label fan3      "Fan 5"
   label fan4      "Fan 4"
   label fan5      "Fan 2"
   label temp1     "System Temp"
   set temp1_max 45
   label temp2     "CPU Temp"
   set temp2_max 65
   ignore temp3

Wie ich schon vermutete, ist in3 nicht angeschlossen.

fan1, 3 ,4 und 5 würde ich auf ignore setzen, um Alarme zu vermeiden.

ignore temp3

würde ich dagegen nicht setzen, da der bei Dir wohl auch Werte liefert (2-
Kern?)

also vielleicht:

   label temp1     "System Temp"
   set temp1_max 45
   label temp2     "CPU1 Temp"
   set temp2_max 65
   label temp2     "CPU2 Temp"
   set temp2_max 65

Das komplette Set von Einstellungen wäre nun zeilenweise in die Line-Zeiles
für den Chip in lm_sensors einzutragen, oder aber die
Board-Beispielkonfiguration einzulesen und nachträglich für Dein Board an
den angegebenen Stellen anzupassen.

Die in den label-Zeilen angegebenen Namen sind natürlich beliebig wählbar.

Falls Du eisgraph verwendest, und nun Werte ignorierst, ergeben andere
eisgraph rrd-DBs, die für korrektes Funktionieren neu erzeugt werden
müssen.

> Mit optimalen lm-sensors-Werten kann man das noch verbessern ?

Damit hat das nicht zu tun; es geht nur im die Anzeige der korrekten Werte
durch sensors und Ausblendung nicht angeschlossener Leitungen.

-- 
Gruss Marcus


Mehr Informationen über die Mailingliste Eisfair