Hallo zusammen,

Ich bin immernoch dabei lm_sensors zu konfigurieren, ich komme an einer Stelle nicht weiter.
Der Hintergrund ist, ich bin dabei eine /etc/sensors.d/Gigabyte-B550M-DS3H.conf zu erstellen und auf https://github.com/lm-sensors/lm-sensors/tree/master/configs/Gigabyte zur Verfügung zu stellen.
Weil es dort für dieses Mainboard "Gigabyte-B550M-DS3H" bzw. den Chip "IT-8688e" noch keine gibt.
Die korrekten "Labels" und "Computes" für die Voltages habe ich schon recherchiert.

Lm_sensors zeigt teilweise unrealistische Tempwerte für "low+high" (Temp 1, 2, 4, 5, 6) an:

it8688-isa-0a40
Adapter: ISA adapter
in0: 864.00 mV (min = +0.00 V, max = +3.06 V)
in1: 2.03 V (min = +0.00 V, max = +3.06 V)
in2: 2.03 V (min = +0.00 V, max = +3.06 V)
in3: 2.03 V (min = +0.00 V, max = +3.06 V)
in4: 1.09 V (min = +0.00 V, max = +3.06 V)
in5: 888.00 mV (min = +0.00 V, max = +3.06 V)
in6: 1.37 V (min = +0.00 V, max = +3.06 V)
3VSB: 3.26 V (min = +0.00 V, max = +6.12 V)
Vbat: 3.12 V
fan1: 421 RPM (min = 10 RPM)
fan2: 0 RPM (min = 0 RPM)
fan3: 461 RPM (min = 10 RPM)
temp1: +30.0°C (low = +127.0°C, high = +127.0°C) sensor = thermistor
temp2: +43.0°C (low = +127.0°C, high = +127.0°C) sensor = thermistor
temp3: +37.0°C (low = +0.0°C, high = +70.0°C) sensor = AMD AMDSI
temp4: +23.0°C (low = +0.0°C, high = +127.0°C) sensor = thermistor
temp5: +35.0°C (low = +0.0°C, high = -125.0°C) sensor = thermistor
temp6: +51.0°C (low = +127.0°C, high = +127.0°C) sensor = thermistor
intrusion0: ALARM

Der Grund dafür scheint zu sein dass hwmon hier falsche Werte gespeichert hat:
cat /sys/class/hwmon/hwmon3/temp6_max
127000

Die "low+high" Werte für "acpitz-acpi-0", "nvme-pci-0100" und "nvme-pci-0700" sind auch unrealistisch:

nvme-pci-0100
Adapter: PCI adapter
Composite:    +36.9°C  (low  =  -5.2°C, high = +79.8°C)
                       (crit = +84.8°C)

nvme-pci-0700
Adapter: PCI adapter
Composite:    +38.9°C  (low  =  -0.1°C, high = +77.8°C)
                       (crit = +80.8°C)
Sensor 1:     +38.9°C  (low  = -273.1°C, high = +65261.8°C)
Sensor 2:     +42.9°C  (low  = -273.1°C, high = +65261.8°C)

acpitz-acpi-0
Adapter: ACPI interface
temp1:        +16.8°C  (crit = +20.8°C)
temp2:        +16.8°C  (crit = +20.8°C)

Diese Werte z.B. von "nvme-pci-0700" stammen auch von hwmon:
cat /sys/class/hwmon/hwmon2/temp3_max
65261850

Was misst "acpitz-acpi-0" eigentlich, welche Thermalzone ist gemeint?

Falsche Tempwerte können durch "compute" in einer /etc/sensors.d/*.conf korrigiert werden,
nur wie korrigiert man diese negativen Werte?

Läuft etwas im Kernel hier falsch oder warum speichert er diese falschen Werte unter
/sys/class/hwmon/?

  • Martin-MS hat auf diesen Beitrag geantwortet.

    fdell Lm_sensors zeigt teilweise unrealistische Tempwerte für "low+high" (Temp 1, 2, 4, 5, 6) an

    Da liegt ein Verständnisproblem vor. Bei den Temperaturangaben handelt es sich um definierte Grenzwerte und keine historischen Messwerte. Bei Über- oder Unterschreitung wird ein Alarm ausgelöst, der beispielsweise im journal protokolliert wird.

    In den gezeigten Fällen würde also ein Alarm ausgelöst, wenn die Temperatur +127.0°C überschreitet. Wenn die Werte nicht realistisch sind, könnte man sie natürlich korrigieren, entweder durch absolute oder berechnete Werte.

    • fdell hat auf diesen Beitrag geantwortet.

      Martin-MS ja darum gehts, die unrealistischen Werte sollen korrigiert werden. Man kann zwar, wie beschrieben mittles "compute" die gemessenen Werte ändern, die Grenzwerte jedoch nicht. Der "set" Wert wird nicht angenommen. Stattdessen werden weiter unsinnige Grenzwerte wie z.B. in "nvme-pci-0700" Sensor 1+2 angezeigt.

      Wie sieht denn dein dropfile mit den korrigierten Werten aus? So etwas

      chip "it8688*"
          set temp1_min 0
          set temp1_max 70

      sollte eigentlich die Grenzwerte für temp1 nach beenden und neu starten des sensord.service so setzen, wie sie für temp3 gesetzt wurden.

      chip "it8688-*"
          set temp1_min 0
          set temp1_max 70

      Es ist egal ob man 70 oder 70.000 schreibt, die Werte werden nicht geändert durch die "set" Anweisung.
      "sensord.service" benutze ich nicht bzw. ist nicht gestartet, lm_sensors liefert die Werte auch ohne "sensord.service". Testweise habe ich "sensord.service" gestartet und geprüft ob die "set" Anweisung dann ausgeführt wird. Ergebnis, nein die Werte bleiben unverändert.

      Übrigens, der Wert für "temp3" wurde nicht durch "set" oder "compute" geändert, der ist automatisch richtig gesetzt, im Gegensatz zu den anderen Grenzwerten. Liegt es vielleicht am "sensor = thermistor"?

      • Martin-MS hat auf diesen Beitrag geantwortet.

        fdell

        fdell "sensord.service" benutze ich nicht bzw. ist nicht gestartet, lm_sensors liefert die Werte auch ohne "sensord.service".

        Sorry, mein Fehler... bei mir läuft sensord.service zusätzlich, weil ich die Messwerte noch protokolliere; neu gestartet werden müsste der lm_sensors.service. Ob die Änderungen nach dem Neustart angekommen sind, kannst du dir auch direkt mit sensors -u it8688-isa-0a40 anzeigen lassen.

        Ich habe das vorhin noch einmal getestet, und bei mir kamen die Änderungen sofort nach Neustart des Services an. Wichtig ist nur, dass sich in /etc/sensors.dauch wirklich nur eine Datei für den entsprechenden Chip befindet, um Konflikte zu vermeiden.

        • fdell hat auf diesen Beitrag geantwortet.

          Martin-MS Vielen Dank, das ist die Lösung.

          Ich wusste nicht, dass der lm_sensors.service neu gestartet werden muss.
          Ich habe mir angwöhnt, den Ausgangszustand wiederherzustellen wenn etwas nicht funktioniert hat und ich das Experiment beende. Somit konnten die Änderungen auch nicht nach einem Neustart des Rechners aktiv werden.

          Jetzt kann ich die Werte korrigieren, muss mir nur noch alle Herstellerspezifikationen
          der Geräte und Lüfter besorgen um die korrekten Werte einzutragen bzw. zu berechnen.

          Bis jetzt sieht meine lm_sensors Ausgabe so aus:

          k10temp-pci-00c3
          Adapter: PCI adapter
          Tctl_CPU_Temperature_Control_Value:  +31.9°C  
          Tccd1_CPU_Temperature:               +31.5°C  
          
          nvme-pci-0700
          Adapter: PCI adapter
          Composite:    +37.9°C  (low  =  +0.8°C, high = +77.8°C)
                                 (crit = +80.8°C)
          Sensor 1:     +37.9°C  (low  =  +0.8°C, high = +77.8°C)
          Sensor 2:     +41.9°C  (low  =  +0.8°C, high = +80.8°C)
          
          acpitz-acpi-0
          Adapter: ACPI interface
          temp1:        +16.8°C  (crit = +20.8°C)
          temp2:        +16.8°C  (crit = +20.8°C)
          
          gigabyte_wmi-virtual-0
          Adapter: Virtual device
          SYS1_(mobo_rear)_Temp:   +30.0°C  
          SYS2_(mobo_front)_Temp:  +42.0°C  
          CPU_Temp:                +31.0°C  
          PCIe_x16_Temp:           +23.0°C  
          VRM_MOS_Temp:            +34.0°C  
          VSOC_MOS_Temp:           +47.0°C  
          
          it8688-isa-0a40
          Adapter: ISA adapter
          Vcore_Voltage:               924.00 mV (min =  +0.00 V, max =  +3.06 V)
          +3.3V_Voltage:                 3.35 V  (min =  +0.00 V, max =  +5.05 V)
          +12V_Voltage:                 12.17 V  (min =  +0.00 V, max = +18.36 V)
          +5V_Voltage:                   5.07 V  (min =  +0.00 V, max =  +7.65 V)
          Vcore_SoC_Voltage:             1.09 V  (min =  +0.00 V, max =  +3.06 V)
          Vddp_Voltage:                900.00 mV (min =  +0.00 V, max =  +3.06 V)
          DRAM_Channel_A/B_Voltage:      1.37 V  (min =  +0.00 V, max =  +3.06 V)
          3VSB_Voltage:                  3.26 V  (min =  +0.00 V, max =  +6.12 V)
          Vbat_Battery_Voltage:          3.12 V  
          CPU_Fan:                      426 RPM  (min =   10 RPM)
          System_Fan_1:                   0 RPM  (min =    0 RPM)
          System_Fan_2:                 476 RPM  (min =   10 RPM)
          SYS1_(mobo_rear)_Temp:        +30.0°C  (low  =  +0.0°C, high = +127.0°C)  sensor = thermistor
          SYS2_(mobo_front)_Temp:       +42.0°C  (low  =  +0.0°C, high = +127.0°C)  sensor = thermistor
          CPU_Temp:                     +31.0°C  (low  =  +0.0°C, high = +95.0°C)  sensor = AMD AMDSI
          PCIe_x16_Temp:                +23.0°C  (low  =  +0.0°C, high = +127.0°C)  sensor = thermistor
          VRM_MOS_Temp:                 +34.0°C  (low  =  +0.0°C, high = +125.0°C)  sensor = thermistor
          VSOC_MOS_Temp:                +47.0°C  (low  =  +0.0°C, high = +127.0°C)  sensor = thermistor
          Pc-Case-Intrusion-Detection: OK
          
          nvme-pci-0100
          Adapter: PCI adapter
          Composite:    +35.9°C  (low  =  +0.8°C, high = +79.8°C)
                                 (crit = +84.8°C)

          Baustellen sind noch:
          1.

          acpitz-acpi-0
          Adapter: ACPI interface
          temp1:        +16.8°C  (crit = +20.8°C)
          temp2:        +16.8°C  (crit = +20.8°C)

          Ich weiss immer noch nicht was dieser Sensor misst und ob die Werte realistisch sind.
          Ich habe die Vermutung hier wird gar nichts gemessen, denn diese Temps verändern sich NIE egal welche Systemlast oder uptime.

          2.

          CPU_Fan:                      413 RPM  (min =   10 RPM)
          System_Fan_1:                   0 RPM  (min =    0 RPM)
          System_Fan_2:                 469 RPM  (min =   10 RPM)

          Hier gibt sensors -u aus:

          fan1:
            fan1_input: 426.000
            fan1_min: 10.000
            fan1_alarm: 0.000
            fan1_beep: 1.000
          fan2:
            fan2_input: 0.000
            fan2_min: 0.000
            fan2_alarm: 0.000
            fan2_beep: 1.000
          fan3:
            fan3_input: 455.000
            fan3_min: 10.000
            fan3_alarm: 0.000
            fan3_beep: 1.000

          Die max Werte (laut Herstellerspezifikation) werden nirgends angegeben und auch nicht akzeptiert wenn ich sie so Eintrage:

          set fan1_min 10.000
          set fan1_max 800.000
          set fan3_min 10.000
          set fan3_max 1200.000

          Vielleicht sind die max Werte nicht relevant, aber ich fände es schon einen guten Indikator zu wissen ob ein Lüfter über längere Zeit nahe seiner Maximalgeschwindigkeit läuft. Akustisch ist da nichts mehr zu machen, denn die Lüfter laufen (zum Glück) so leise, dass man sie kaum noch hört.

          • Martin-MS hat auf diesen Beitrag geantwortet.

            ok, Baustelle 2 kann wahrscheinlich gestrichen werden, denn wie ich eben gelesen habe:

            The IT8603E/IT8623E is a custom design, hardware monitoring part is similar to
            IT8728F. It only supports 3 fans, 16-bit fan mode, and the full speed mode
            of the fan is not supported (value 0 of pwmX_enable).

            Quelle: /usr/src/it87-162.2925658/README
            Vermutlich ist der "it8688e" auch so ein "custom design" Chip.
            Erstaunlich, denn Gigabyte verbaut diesen Chip auch in den highend MoBos wie der Aorus Pro Serie.
            https://www.gigabyte.com/de/Motherboard/B550-AORUS-PRO-AC-rev-1x/sp#sp

            Nun habe ich auch die Hersteller-min-Werte der Fans angeben können:

            k10temp-pci-00c3
            Adapter: PCI adapter
            Tctl_CPU_Temperature_Control_Value:  +30.8°C  
            Tccd1_CPU_Temperature: +32.5°C nvme-pci-0700 Adapter: PCI adapter WD-SN550-NVME_Temp: +34.9°C (low = +0.8°C, high = +59.9°C) (crit = +80.8°C) Sensor 1: +34.9°C (low = +0.8°C, high = +59.9°C) Sensor 2: +38.9°C (low = +0.8°C, high = +69.8°C) acpitz-acpi-0 Adapter: ACPI interface temp1: +16.8°C (crit = +20.8°C) temp2: +16.8°C (crit = +20.8°C) gigabyte_wmi-virtual-0 Adapter: Virtual device SYS1_(mobo_rear)_Temp: +28.0°C
            SYS2_(mobo_front)_Temp: +40.0°C
            CPU_Temp: +30.0°C
            PCIe_x16_Temp: +22.0°C
            VRM_MOS_Temp: +32.0°C
            VSOC_MOS_Temp: +46.0°C it8688-isa-0a40 Adapter: ISA adapter Vcore_Voltage: 996.00 mV (min = +0.00 V, max = +3.06 V) +3.3V_Voltage: 3.35 V (min = +0.00 V, max = +5.05 V) +12V_Voltage: 12.17 V (min = +0.00 V, max = +18.36 V) +5V_Voltage: 5.07 V (min = +0.00 V, max = +7.65 V) Vcore_SoC_Voltage: 1.10 V (min = +0.00 V, max = +3.06 V) Vddp_Voltage: 900.00 mV (min = +0.00 V, max = +3.06 V) DRAM_Channel_A/B_Voltage: 1.37 V (min = +0.00 V, max = +3.06 V) 3VSB_Voltage: 3.26 V (min = +0.00 V, max = +6.12 V) Vbat_Battery_Voltage: 3.14 V
            CPU_Fan: 409 RPM (min = 300 RPM) System_Fan_1: 0 RPM (min = 0 RPM) System_Fan_2: 460 RPM (min = 399 RPM) SYS1_(mobo_rear)_Temp: +28.0°C (low = +0.0°C, high = +127.0°C) sensor = thermistor SYS2_(mobo_front)_Temp: +40.0°C (low = +0.0°C, high = +127.0°C) sensor = thermistor CPU_Temp: +30.0°C (low = +0.0°C, high = +95.0°C) sensor = AMD AMDSI PCIe_x16_Temp: +22.0°C (low = +0.0°C, high = +127.0°C) sensor = thermistor VRM_MOS_Temp: +32.0°C (low = +0.0°C, high = +125.0°C) sensor = thermistor VSOC_MOS_Temp: +46.0°C (low = +0.0°C, high = +127.0°C) sensor = thermistor Pc-Case-Intrusion-Detection: OK nvme-pci-0100 Adapter: PCI adapter Crucial-P5-NVME_Temp: +34.9°C (low = +0.8°C, high = +69.8°C) (crit = +84.8°C) ```

            fdell aber ich fände es schon einen guten Indikator zu wissen ob ein Lüfter über längere Zeit nahe seiner Maximalgeschwindigkeit läuft

            Dazu könnte ich den schon gestern irrtümlich erwähnten sensord.service, der eine Round-Robin-Datenbank mit den Messwerten ausgibt, empfehlen. Eigentlich hatte ich mir das anlässlich einer Fehlersuche für die Überwachung der Betriebsspannungen eingerichtet, aber er protokolliert nebenbei auch noch die CPU-Lüfter und -temperaturen und bereitet sie in Tages- und Wochendiagrammen auf. Hier sehe ich dann beispielsweise, wann der CPU-Lüfter wie beschäftigt war:

            • fdell hat auf diesen Beitrag geantwortet.

              Martin-MS Sieht gut aus, muss man da noch was konfigurieren oder wie kommt man an den Plot?

              Man muss nur den sensord.service mit den entsprechenden Parametern starten, die ich der manpage zu sensord entnommen habe, und zusätzlich das Paket rrdtool für die grafische Aufbereitung installieren, die nötigen Konfigurationseinstellungen habe ich wieder aus der manpage geholt, weil es dazu leider keinen Wiki-Artikel gibt.

              Dann muss man sich ein cgi-Script erstellen (dabei hilft der Assistent der rdd-Tools) und es im Browser aufrufen, das generiert dann aus der Datenbank die Grafik mit historischen Daten.