Hi zusammen.
Je älter die Komponenten im PC so wichtiger wird wohl die Überwachung der Selben.
Mir ist in der jüngsten Vergangenheit die Grafikkarte gestorben. Was wohl an den hohen Tages Temperaturen gelegen haben mag. Und nicht zuletzt an so einigen Wollmäusen.
Meine Hardware
inxi -v3
System:
Host: linux-e8nd Kernel: 5.3.18-lp152.33-default x86_64 bits: 64
compiler: gcc v: 7.5.0 Desktop: KDE Plasma 5.18.5
Distro: openSUSE Leap 15.2
Machine:
Type: Desktop System: wortmann product: N/A v: N/A
serial: <superuser/root required>
Mobo: ASUSTeK model: P8H67 v: Rev X.0x serial: <superuser/root required>
BIOS: American Megatrends v: 3801 date: 09/12/2013
Battery:
Device-1: hidpp_battery_0
model: Logitech Wireless All-in-One Keyboard TK820
charge: 100% (should be ignored) status: Discharging
Device-2: hidpp_battery_1
model: Logitech Wireless Touch Keyboard K400 Plus
charge: 50% (should be ignored) status: N/A
CPU:
Topology: Quad Core model: Intel Core i5-3470 bits: 64 type: MCP
arch: Ivy Bridge rev: 9 L2 cache: 6144 KiB
flags: avx lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx
bogomips: 25620
Speed: 3461 MHz min/max: 1600/3600 MHz Core speeds (MHz): 1: 3362
2: 3512 3: 3493 4: 3474
Graphics:
Device-1: NVIDIA GK104 [GeForce GTX 760] vendor: CardExpert
driver: nouveau v: kernel bus ID: 01:00.0
Display: x11 server: X.Org 1.20.3 driver: nouveau
unloaded: fbdev,modesetting,vesa resolution: 1: 1920x1080~60Hz
2: 1920x1080~60Hz
OpenGL: renderer: NVE4 v: 4.3 Mesa 19.3.4 direct render: Yes
Network:
Device-1: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet
vendor: ASUSTeK P8P67 and other motherboards driver: r8169 v: kernel
port: c000 bus ID: 06:00.0
IF: eth1 state: up speed: 100 Mbps duplex: full mac: 54:04:a6:f1:88:b1
Drives:
Local Storage: total: 2.29 TiB used: 20.06 GiB (0.9%)
Info:
Processes: 220 Uptime: 14h 02m Memory: 7.74 GiB used: 3.50 GiB (45.3%)
Init: systemd runlevel: 5 Compilers: gcc: 7.5.0 Packages: 3147
Shell: Bash v: 4.4.23 inxi: 3.1.05
Alles anzeigen
Zunächst ist es mit meinem Asus Main Board nicht ganz so einfach die ACPI Resourchen zu bekommen. Nur wenn ich den Kommand-Parrameter :
acpi_enforce_resources=LAX
Aus dem Kernel-Doc:
acpi_enforce_resources= [ACPI]
{ strict | lax | no }
Check for resource conflicts between native drivers
and ACPI OperationRegions (SystemIO and SystemMemory
only). IO ports and memory declared in ACPI might be
used by the ACPI subsystem in arbitrary AML code and
can interfere with legacy drivers.
strict (default): access to resources claimed by ACPI
is denied; legacy drivers trying to access reserved
resources will fail to bind to device using them.
lax: access to resources claimed by ACPI is allowed;
legacy drivers trying to access reserved resources
will bind successfully but a warning message is logged.
no: ACPI OperationRegions are not marked as reserved,
no further checks are performed.
Alles anzeigen
Bekomme ich unter >> /sys/class/<< und unter >> /sys/kerne<<l Parameter angezeigt, welche sich auch auslesen lassen.
Wie dem Kernel ein Kommando mitgegeben werden kann, das ist in den HOW-TOs bestimmt nachzulesen.
Wie geht das mit dem Lesen und wie kann ich den Sensor erkennen, den ich hier in Conky anzeigen lasse.
Erfreulicher Weise sind die erforderlichen Programme, hier Dolphin, wieder ganz normal aus der Konsole startbar und für die einfachen Abfragen gut zu gebrauchen.
Konsole root werden : su -l >> dolphin /sys , so ist die Struktur zugänglich und wird dargestellt.
Ich suche nach den Parametern, mit dem o.g Einstellungen nach >> hwmon << für die Parameter für Lüfter-Drehzahlen und Temperaturen.
Dolphin ist so freundlich und stellt eine Konsole bereit, welche dem grafischen herum-klicken gern folgt.
Die Abfragen aus den einzelnen Dateien, auch wenn da 0Byte stehen sollte geht so:
#cat /sys/kernel/debug/dri/0/pstate
gibt als Ausgabe:
07: core 405 MHz memory 648 MHz AC DC *
0a: core 405-967 MHz memory 1620 MHz
0e: core 405-1267 MHz memory 6200 MHz
0f: core 405-1267 MHz memory 6200 MHz
DC: core 405 MHz memory 648 MHz
Das sind die Powerstats meiner GTX-760. Das >> * << zeigt: Powersave, das sind so 21 Watt aufnahme. Mehr benötigt der X-server nicht.
#echo 0a > /sys/kernel/debug/dri/0/pstate Kann der Satus verändert werden. Aber VORSICHT, das ist kein Spielzeug!
Alles anzeigen
Kommen wir zu Conky:
hier meine conkyrc:
conky.config = {
alignment = 'bottom_right',
background = false,
border_width = 0,5,
default_color = 'white',
default_outline_color = 'grey',
default_shade_color = 'black',
double_buffer = true,
draw_borders = true,
draw_graph_borders = true,
draw_outline = false,
draw_shades = false,
use_xft = true,
font = 'DejaVu Sans Mono:size=11',
gap_x = 10,
gap_y = 430,
minimum_height = 5,
minimum_width = 5,
net_avg_samples = 1,
cpu_avg_samples = 1,
update_interval = 1/2,
out_to_console = false,
out_to_stderr = false,
extra_newline = false,
own_window = true,
own_window_colour = '000000',
own_window_class = 'Conky',
own_window_argb_visual = true,
own_window_type = 'dock',
own_window_transparent = true,
own_window_hints = 'undecorated,below,sticky,skip_taskbar,skip_pager',
stippled_borders = 0,
uppercase = false,
use_spacer = 'none',
show_graph_scale = false,
show_graph_range = false,
}
conky.text = [[
${color yellow}Kernel: $kernel #$nodename
$hr
${color red}Uptime: $uptime
${color green}Frequency (GHz):$color $freq_g
${color yellow}RAM Usage: $color $mem${color yellow}/
${color}$memperc% ${color yellow}${membar 10}
${color red}CPU Usage:$color
$cpu% ${color yellow}${cpubar 10}
#$hr
#
#
#${color}Networking:
#${color green} Down ${color red} Up
#${color green}${downspeedgraph eth1 90,150 65000000 -l} ${alignr}${color red}${upspeedgraph eth1 90,150 14000000 -l}
#${color green}${downspeed eth1} ${alignr} ${color red} ${upspeed eth1}
${color white}$hr
#${color white} Procs:$color $processes ${color white}Run:$color $running_processes
#${color} Name PID CPU% MEM%
#${color} ${top name 1} ${top pid 1} ${top cpu 1} ${top mem 1}
#${color} ${top name 2} ${top pid 2} ${top cpu 2} ${top mem 2}
#${color} ${top name 3} ${top pid 3} ${top cpu 3} ${top mem 3}
#${color} ${top name 4} ${top pid 4} ${top cpu 4} ${top mem 4}
#$hr
#
#
${offset 5}Core 0 ${color green}${cpubar cpu1 6}${color white}
${offset 5}Core 1 ${color green}${cpubar cpu2 6}${color white}
${offset 5}Core 2 ${color green}${cpubar cpu3 6}${color white}
${offset 5}Core 3 ${color green}${cpubar cpu4 6}${color white}
$hr
${color DarkOrange1}GTX-760${color green}${GOTO 95}${hwmon 0 temp 1input}.0°C
${color DarkOrange1}GTX-760${color yellow}${GOTO 95}${hwmon 0 fan 1input} RPM
#${color DarkOrange1}GTX-760${color green}${GOTO 95}${hwmon 0 power 1input} mW
${color DarkOrange1}GTX-760${color green}${GOTO 85}${exec sensors|grep "power1" | cut -d ':' -f2 | tr -s ' ' | cut -d '(' -f1}
$hr
${color DarkOrange1}CPU_Temp${color green}${GOTO 95}${hwmon 3 temp 1input}.0°C
${color DarkOrange1}Fan_CPU ${GOTO 95}${color yellow}${hwmon 4 fan 2input} RPM
$hr
#
#${color DarkOrange1}GeForce${color green}${GOTO 65}${exec sensors|grep "temp1:" | cut -d ':' -f2 | tr -s ' ' | cut -d '(' -f1 | head -1}
#
${color DarkOrange1}/SDA${color green}${GOTO 95}${exec /usr/sbin/hddtemp /dev/sda|awk '{print $NF}'}
${color DarkOrange1}SysIn ${GOTO 95}${color green}${hwmon 4 temp 1input}°C
${color white}$hr
${color DarkOrange1}Fan_Ein ${GOTO 95}${color yellow}${hwmon 4 fan 4input} RPM
${color DarkOrange1}Fan_Aus ${GOTO 95}${color yellow}${hwmon 4 fan 1input} RPM
${color DarkOrange1}Fan_Psu ${GOTO 104}${color yellow}${hwmon 4 fan 3input} RPM
$hr
]]
Alles anzeigen
Einige Zeilen sind hier auskommentiert mit # um zu zeigen womit ich mich beschäftigt habe. Die Abfragen geben auch einen Wert zurück, aber der Weg über hwmon/hwmonX scheind mir der bessere zu sein.
Was mir noch fehlt ist, das die Anzeige auf dem Desktop flüssiger, und noch etwas Aussagekräftiger sein könnte, für ein 24/7 System. Ich bekomme Conky nicht dazu schneller als
1/s abzufragen. Eine Bar zeigt recht Eckig an. Geht das nicht flüssig laufend?
Wenn Conky das überhaupt leisten könnte, dann hätte ich gern:
keinen exec aufruf mehr für hddtemp / Eine Möglichkeit den Inhalt einer /_input zu berechnen.
Z.b.: liefert mir die Abfrage:
#${color DarkOrange1}GTX-760${color green}${GOTO 95}${hwmon 0 power 1input} mW
Ausgabe: 22535040
${color DarkOrange1}GTX-760${color green}${GOTO 85}${exec sensors|grep "power1" | cut -d ':' -f2 | tr -s ' ' | cut -d '(' -f1}
Ausgabe: 22.53 W(att) Sensors hat den Wert schon berechnet und bezeichnet.
Die Formatierungen mit >>cut<< habe ich mit so gut es eben ging aus anderen rc´s zusammengesucht.
Zudem hätte ich gern einen code, der mir die Anzeigefarbe oder sogar einen Warnton Beeper im Pc ausgibt. Also die angezeigte Fabe ändert sich beim ereichen des Triggers und darüber ein Warnton, könnte hilfreich sein.
Freue mich auf Eure Beiträge
Ahoi von hier aus