我是 UNIX 和 Gnu/Linux 脚本的新手,我需要帮助来构建修改 lm-sensors 输出的脚本。
当我使用该命令时,sensors
这是当前输出
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)
我来自 Windows,我曾经使用 HWMonitor 来实时查看使用情况和临时信息等内容,但很难在 Linux 上完成此任务,我的脚本想法是制作一些可以获取传感器信息并将友好输出转换为像这样的东西:
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 %% )
你能帮助我吗?我不是在询问完整的脚本,只是询问您可能对新手有的任何建议,这个脚本可以制作吗?
顺便说一句,我尝试过 PSensor,但它不显示 amdgpu 模块,而 RadeonTop 不显示温度和 VRAM。
答案1
对于 AMD GPU,您可以作为简单用户访问所有这些数据/sys/class/drm/card0/device/
你正在寻找的是/sys/class/drm/card0/device/gpu_busy_percent
它可能与card0不同(取决于你有多少GPU)
在此目录中,您将拥有所需的一切,例如 GPU/VRAM 使用情况、温度、张力等。
大多数文件对于 cat 都是安全的,但是切勿 cat /sys/class/drm/card0/device/remove
,如果这样做,只需重新启动即可。
我强烈建议您阅读本文,以下只是摘要:
https://dri.freedesktop.org/docs/drm/gpu/amdgpu.html#gpu-power- Thermal-controls-and-monitoring
这是可以安全识别的文件列表。
/sys/class/drm/card0/device/gpu_busy_percent
GPU 核心使用率 (%)
/sys/class/drm/card0/device/mem_busy_percent
GPU 内存使用率 (%)
除了 . 之外,所有带有前缀的文件pp_
都是可读的pp_table
。
pp_dpm_*
与 GPU 核心和内存时钟相关
pp_dpm_sclk
用于 GPU 核心
pp_dpm_mclk
用于 GPU 内存
当前状态用*
在该目录下,hwmon
您将有另一个与您的硬件监视器相对应的目录,它的名称hwmon0
如下:
/sys/class/drm/card0/device/hwmon/hwmon0/fan*
GPU 风扇当前/最小/最大
/sys/class/drm/card0/device/hwmon/hwmon0/in*
GPU mV 和标签
/sys/class/drm/card0/device/hwmon/hwmon0/power*
GPU 功率当前/最小/最大
/sys/class/drm/card0/device/hwmon/hwmon0/pwm*
GPU PWM 电流/最小/最大/
/sys/class/drm/card0/device/hwmon/hwmon0/temp*
GPU 温度当前/最小/最大