Linux Grafikkarte /-werte in Conky

Linux Betriebssystem

danica_talos

Member
Themenstarter
Registriert
19 Jan. 2012
Beiträge
445
Ich nutze derzeit CashyOS und als Grafikkarte eine Radeon RX 7600.

Diese möchte ich gerne in Conky anzeigen lassen aber meine Versuche diesbezüglich scheiterten.

Habt ihr einen Stipp für mich? Ich weiß, es ist kein TP, aber vielleicht könnt ihr mir ja trotzdem helfen.
 
Was willst du dir denn anzeigen lassen..?
Ich möchte mir anzeigen lassen, welche Grafikkarte im System werkelt, ähnlich wie es bei der CPU ist.
was genau hast du denn bisher versucht?

Code:
${execi 5 radeontop -d- -l1 | grep -o ‘gpu [0-9]{1,3}’ | cut -c 5-7 }%

Damit hast nicht geklappt.

Code:
${execi 60 aticonfig --od-getclocks | awk '/load/ {print $4}' | sed 's/%//'}%${alignr}${execibar 60 aticonfig --od-getclocks | awk '/load/ {print $4}'| sed 's/%//'}

Damit leider auch nicht.
 
Was heißt "nicht geklappt"? Welche Ausgaben bekommst du?
Liefern radeontop bzw. aticonfig einzeln aufgerufen prinzipiell sinnvolle Werte, die man nur weiterverarbeiten müsste?
Liegt das Problem im Verständnis der conky-Syntax?
 
Es wird nichts ausgegeben, wobei ich inzwischen festgestellt habe, dass cashyos weder was mit aticonfig noch mit radeontop anfangen kann.
 
Du könntest den Output von lspci parsen.
Hier sieht das z.B. so aus:
Code:
$ lspci | grep 'VGA compatible controller: ' | sed 's/[0-9][0-9]:[0-9][0-9]\.[0-9] VGA compatible controller: //'
Advanced Micro Devices, Inc. [AMD/ATI] Park [Mobility Radeon HD 5430]
 
Zuletzt bearbeitet:
Oder einen Conky Manager. Hatten einen im Gebrauch vor nicht allzulanger Zeit, das war aber unter Debian. Arch dürfte das aber auch sicher im Repo haben
 
Du könntest den Output von lspci parsen.
Hier sieht das z.B. so aus:
Code:
$ lspci | grep 'VGA compatible controller: ' | sed 's/[0-9][0-9]:[0-9][0-9]\.[0-9] VGA compatible controller: //'
Advanced Micro Devices, Inc. [AMD/ATI] Park [Mobility Radeon HD 5430]
Code:
03:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Navi 33 [Radeon RX 7600/7600 XT/7600M XT/7600S/7700S / PRO W7600] (rev cf)
Beitrag automatisch zusammengeführt:
 
Zuletzt bearbeitet:
Code:
${color #676767}${font StyleBats:size=12}A${font}Radeon 7600:${color #676767}${alignr} @ ${color #676767}${exec grep -Pom 1 '\d+:\s\K(\d+)(?=.*\*$)' /sys/class/drm/card0/device/pp_dpm_sclk} MHz ${color #676767}
${color #676767}${font StyleBats:size=12}A${font}Mem:${color #676767}${alignr}     ${exec numfmt --to=iec < /sys/class/drm/card0/device/mem_info_vram_used}
${color #676767}${font StyleBats:size=12}A${font}Usage: ${color #676767}${exec cat /sys/class/drm/card0/device/gpu_busy_percent}%${color #676767}${alignr}${color #676767}Driver: ${color #676767}Mesa ${execi 60 glxinfo | grep Version | cut -c 14-23}${color #676767}

Wenn ich diesen Code verwende, sollte eigetlich die MHz der GPU, der Speicher und die Nutzung angezeigt werden. tuts aber nicht.

Woran kann das liegen?
 
Code:
03:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Navi 33 [Radeon RX 7600/7600 XT/7600M XT/7600S/7700S / PRO W7600] (rev cf)
Sieht doch gut aus! Jetzt musst du das nur noch durch sed pipen. Das sed-Kommando aus meinem letzten Beitrag könnte man problemlos noch etwas vereinfachen:
Code:
sed 's/^.\+VGA compatible controller: //'

Wenn ich diesen Code verwende, sollte eigetlich die MHz der GPU, der Speicher und die Nutzung angezeigt werden. tuts aber nicht.

Woran kann das liegen?
Vielleicht existieren die abgefragten Pfade nicht, oder deren Inhalt passt nicht auf das Muster des Parsers, etc., pp.
Versuche zu verstehen, was diese Kommandos inhaltlich tun!

Ich vermute, du hast diese Kommandos irgendwo ergooglet und sie dann in deine Config gekippt, ohne verstanden zu haben, was da passiert. Sowas solltest du auf keinen Fall tun! Führe niemals Kommandos aus, wenn du nicht zumindest grundlegend verstanden hast, was sie tun!
Andernfalls kann ein Angreifer beliebige Kommandos unter deinem Account ausführen (z.B. Daten löschen, verändern, verschlüsseln).

In deinem Beispiel werden diese vier Kommandos abgesetzt (und deren Ausgabe dann von Conky noch etwas formatiert):
Code:
grep -Pom 1 '\d+:\s\K(\d+)(?=.*\*$)' /sys/class/drm/card0/device/pp_dpm_sclk
numfmt --to=iec < /sys/class/drm/card0/device/mem_info_vram_used
cat /sys/class/drm/card0/device/gpu_busy_percent
glxinfo | grep Version | cut -c 14-23
In diesem Fall sind die Kommandos harmlos.
Die ersten Drei lesen im Wesentlichen virtuelle Dateien aus dem vom Kernel bereitgestellten /sys-Baum aus. Auf meinem Rechner mit Intel-Grafik gibt es keine der Dateien, weshalb ich hier auch keinen Output kriegen kann.

Das vierte Kommando ruft das Programm glxinfo auf (welches dazu natürlich installiert sein muss), und parst dessen Output in zwei Schritten (grep, cut), um die Mesa-Version auszugeben.
Bei mir sieht die Ausgabe so aus:
Code:
$ glxinfo | grep Version | cut -c 14-23
20.3.5
Lasse ich das cut weg, dann bekomme ich das:
Code:
$ glxinfo | grep Version
    Version: 20.3.5
Lasse ich auch das grep weg, dann bekomme ich den vollen glxinfo-Output, den ich hier nicht posten möchte, weil er ellenlang ist.

Hangele dich nach dem selben Schema vorwärts bzw. rückwärts, bis du den Punkt gefunden hast an dem etwas Unerwartetes passiert! Dann ergründe, warum genau das passiert!
 
Habe den Fehler gefunden. In der Tat habe ich die Codes aus dem I-net. Im Code stand card0, bei mir ist es aber card1. Jetzt wird alles korrekt angezeigt.

Danke für deine Hilfe! :)
 
  • ok1.de
  • IT Refresh - IT Teile & mehr
  • thinkstore24.de
  • Preiswerte-IT - Gebrauchte Lenovo Notebooks kaufen

Werbung

Zurück
Oben