Richtige Sensorposition für den Temperaturmonitor im lxpanel?

7

Der Temperaturmonitor in lxpanel (ich verwende Lubuntu 12.10) erkennt automatisch einen meiner Sensoren, aber ich möchte ihm einen alternativen geben.

Hier ist die Ausgabe von Sensoren:

Adapter: Virtual device
temp1:        +26.8°C  (crit = +100.0°C)
temp2:         +0.0°C  (crit = +100.0°C)

coretemp-isa-0000
Adapter: ISA adapter
Core 0:       +58.0°C  (high = +80.0°C, crit = +90.0°C)
Core 2:       +55.0°C  (high = +80.0°C, crit = +90.0°C)

Es sieht so aus, als würde der Temperaturmonitor Temp1 automatisch erfassen, aber ich möchte ihn auf Core 0 oder Core 2 einstellen. Er hat eine Zeichenfolge für "Sensor", aber ich bin mir nicht sicher, was das sein würde.

Ich habe "Core 0", "coretemp-isa-0000" und "/sys/devices/platform/coretemp.0/temp2_input" ausprobiert, aber keines scheint zu funktionieren.

Irgendwelche Gedanken?

alexpotato
quelle

Antworten:

1

Einfache Lösung

1) Führen Sie diesen Befehl aus, um die Typen der verfügbaren Thermal_Zone-Geräte aufzulisten:
ls -1 /sys/class/thermal/thermal_zone*/type | xargs -I % sh -c "echo % ; cat %"
Sie sollten eine ähnliche Ausgabe erhalten:

/sys/class/thermal/thermal_zone0/type
acpitz
/sys/class/thermal/thermal_zone1/type
acpitz
/sys/class/thermal/thermal_zone2/type
x86_pkg_temp

2) Finden Sie heraus, welche Sie benötigen, für die CPU sollte es einen ähnlichen Typ haben x86_pkg_temp. In meinem Beispiel x86_pkg_tempwerde ich auswählen , wenn ich verwenden möchte /sys/class/thermal/thermal_zone2/.

3) Geben Sie es in den Einstellungen für "Temperaturüberwachung" an und stellen Sie sicher, dass es mit einem Schrägstrich abgeschlossen ist (wie in meinem Beispiel am Ende mit "/" eingeschlossen):
Beispiel-Screenshot

Fertig, es sollte jetzt wie vorgesehen funktionieren.


Weitere Details und alternative Lösung

Begann heute mit der Verwendung von LUbuntu Desktop und stellte fest, dass ich das gleiche Problem hatte.
Nachdem /plugins/thermal/thermal.cich mich umgesehen und Open Source Code geknackt hatte, fand ich einige Lösungen. Zunächst bezieht sich der Parameter "Sensor" in den Optionen auf den Speicherort als Verzeichnis. Suchen Sie auf Quellen kann es drei Arten von Sensor Verzeichnissen im Automatik - Modus erkennen und sieht für sie in /proc/acpi/thermal_zone/, /sys/class/thermal/und /sys/class/hwmon/hwmon[i]/, Funktionen zu suchen , die hier genannt werden:

static void
check_sensors( thermal *th )
{
    // FIXME: scan in opposite order
    find_sensors(th, PROC_THERMAL_DIRECTORY, NULL, proc_get_temperature, proc_get_critical);
    find_sensors(th, SYSFS_THERMAL_DIRECTORY, SYSFS_THERMAL_SUBDIR_PREFIX, sysfs_get_temperature, sysfs_get_critical);
    if (th->numsensors == 0)
        find_hwmon_sensors(th);
    g_info("thermal: Found %d sensors", th->numsensors);
}  

Wenn wir uns nun ansehen, was passiert, wenn Sie die Konfiguration festlegen, sehen wir Folgendes:

if(th->sensor == NULL) th->auto_sensor = TRUE;
    if(th->auto_sensor) check_sensors(th);
    else if (strncmp(th->sensor, "/sys/", 5) != 0)
        add_sensor(th, th->sensor, th->sensor, proc_get_temperature, proc_get_critical);
    else if (strncmp(th->sensor, "/sys/class/hwmon/", 17) != 0)
        add_sensor(th, th->sensor, th->sensor, sysfs_get_temperature, sysfs_get_critical);
    else
        add_sensor(th, th->sensor, th->sensor, hwmon_get_temperature, hwmon_get_critical);

Soweit ich verstanden habe, th->sensorwird auf das eingestellt, was Sie im Eingabefeld "Sensor" in den Optionen angegeben haben.
Zuerst wird auto_sensorgeprüft , ob gesetzt ist, und wenn dies nicht der Fall ist, werden eine Reihe anderer Prüfungen durchgeführt.
Wenn Ihr Sensorpfad nicht /sys/darin enthalten ist, werden proc_getFunktionen verwendet, bei denen es sich um veraltete Sensoren vom Typ ACPI handelt, die in neuen Versionen von Ubuntu nicht verwendet werden. Andernfalls werden, wenn Ihr Pfad enthält /sys/class/hwmon, hwmonFunktionen verwendet, und wenn es sich um einen anderen Sensortyp handelt /sys/*, wird sysfsder Sensortyp verwendet.
Basierend auf , dass wir der einfachste Weg Sensor befand angeben würde schließen können /sys/class/thermal/, zum Beispiel /sys/class/thermal/thermal_zone1. Wenn wir mitgehen würden/sys/class/hwmon/Es würde sowieso nicht den richtigen Sensor auswählen, da es keine Möglichkeit gibt, genau anzugeben temp[i]_input, was verwendet werden soll, und wenn wir kein /sys/Verzeichnis verwenden würden, würde es davon ausgehen, dass wir veraltet verwenden acpi/thermal_zone, was ebenfalls nicht ideal ist. Sie könnten Skript erstellen, das gefälschte Sensor - Verzeichnis in Ihrem Home - Ordner mit 2 Dateien erstellen wird, trip_pointsund temperature. trip_points würde so aussehen und macht nicht viel aus:

critical (S5): 110 C
passive: 105 C: tc1=2 tc2=10 tsp=100 devices=0xdf72e380
active[0]: 48 C: devices=0xc157fec0  

Die Temperatur sollte für die aktuelle Temperatur abgelesen werden und sollte folgendermaßen aussehen:

temperature: 49 C  

Schließlich benötigen Sie ein Skript, um die Dateien des tatsächlich verwendeten Sensors zu aktualisieren und die Ausführung alle N Sekunden zu planen. Diese Lösung würde die Verwendung /sys/class/hwmon/hwmon1von Sensoren und manuell gelesenen Werten ermöglichen, die von der LXpanel-Thermoanzeige verwendet werden können. Sie können diese Methode auch verwenden, um diesen thermischen Indikator andere Arten von Indikatoren anzeigen zu lassen. Dies scheint jedoch eine Verschwendung von Aufwand zu sein, wenn Sie stattdessen einfach einen anderen Indikator verwenden. Ich werde mit einem Beispielskript aktualisieren, um es später zu tun, wenn es erforderlich ist. Ich werde eines für mich selbst erstellen.

Ethuil UI
quelle
0

Ich habe ein ähnliches Problem (mein Standardsensor zeigt immer 40,0 ° C an) und ich kann diesen Sensor im Temperaturmonitor des Original-Lxpanels nicht ändern. Es gibt aber noch eine andere Lösung: lm-sensores LXDE lxpanel Plugin.

https://github.com/danamlund/sensors-lxpanel-plugin

Es ist einfach zu kompilieren (in lubuntu 16.04 habe ich auch Anweisungen zur Debian-Installation verwendet) und einfach zu verwenden:

Sensoren-lxpanel-Plugin

federk
quelle