Preciso de ajuda para escrever meu primeiro script (LM-Sensors Custom Output)

Preciso de ajuda para escrever meu primeiro script (LM-Sensors Custom Output)

Sou novo aqui e em scripts UNIX e Gnu/Linux, preciso de ajuda para construir um script que modifique a saída do lm-sensors.
Quando eu uso o comando sensorsesta é a saída atual

mint@desktop:~$ sensors
amdgpu-pci-0100
Adapter: PCI adapter
vddgfx:       +0.72 V
fan1:        1245 RPM  (min =    0 RPM, max = 2400 RPM)
edge:         +37.0°C  (crit = +94.0°C, hyst = -273.1°C)
power1:       34.26 W  (cap = 145.00 W)
coretemp-isa-0000
Adapter: ISA adapter
Package id 0:  +39.0°C  (high = +85.0°C, crit = +105.0°C)
Core 0:        +36.0°C  (high = +85.0°C, crit = +105.0°C)
Core 1:        +40.0°C  (high = +85.0°C, crit = +105.0°C)
Core 2:        +35.0°C  (high = +85.0°C, crit = +105.0°C)
Core 3:        +37.0°C  (high = +85.0°C, crit = +105.0°C)

Eu venho do Windows e costumava ter o HWMonitor para ver em tempo real coisas como uso e temperatura, mas é difícil conseguir essa tarefa no Linux, minha ideia de script é fazer algo que pegue as informações dos sensores e traduza uma saída amigável para algo assim:

amdgpu-pci-0100
Voltage:     +0.72 V 
Fans Speed:  1248 RPM ( Percentage %% )
Temperature: +36.0°C  ( Percentage %% )
Power:       34.22 W  ( Percentage %% )
GPU Usage:   Percentage %%
VRAM Usage:  1GB / 8GB ( Percentage %% )

Pode me ajudar? Não estou pedindo o roteiro completo, apenas algum conselho que você possa ter para um novato. Esse roteiro é possível de ser feito?

A propósito, tentei o PSensor, mas ele não mostra o módulo amdgpu e o RadeonTop não mostra temps e VRAM.

Responder1

Para GPUs AMD, você pode acessar todos esses dados como um simples usuário em/sys/class/drm/card0/device/

O que você está procurando é /sys/class/drm/card0/device/gpu_busy_percent
que pode ser diferente do card0 (dependendo de quantos GPUs você possui)

Neste diretório você terá tudo o que precisa como uso de GPU/VRAM, temperatura, tensão e assim por diante.

A maioria dos arquivos é segura para cat, mas NUNCA cat /sys/class/drm/card0/device/removee se você fizer isso, apenas reinicie.

Eu recomendo fortemente que você leia isto, o seguinte é apenas um resumo:
https://dri.freedesktop.org/docs/drm/gpu/amdgpu.html#gpu-power-thermal-controls-and-monitoring

Esta é uma lista de arquivos que são seguros para cat.
/sys/class/drm/card0/device/gpu_busy_percentUso do núcleo da GPU em%
/sys/class/drm/card0/device/mem_busy_percentUso do GPU Mem em%

Todos os arquivos prefixados com pp_são legíveis, exceto pp_table.
pp_dpm_*estão relacionados ao núcleo da GPU e aos relógios de memória
pp_dpm_sclké para o núcleo da GPU
pp_dpm_mclké para a memória da GPU
O estado atual é marcado com um*

Sob o diretório hwmonvocê terá outro diretório correspondente ao seu monitor de hardware, para mim é chamado hwmon0, aqui estão

/sys/class/drm/card0/device/hwmon/hwmon0/fan*Corrente do ventilador da GPU/min/máx
/sys/class/drm/card0/device/hwmon/hwmon0/in*GPU mV e etiqueta
/sys/class/drm/card0/device/hwmon/hwmon0/power*GPU Watt corrente/min/máx
/sys/class/drm/card0/device/hwmon/hwmon0/pwm*Corrente GPU PWM/min/máx/
/sys/class/drm/card0/device/hwmon/hwmon0/temp*Corrente de temperatura da GPU/min/máx

informação relacionada