我正在尝试全速锁定 AMD Radeon 显卡风扇的 RPM:
echo 1 > /sys/class/hwmon/hwmon1/pwm1_enable
echo 255 > /sys/class/hwmon/hwmon1/pwm1
到目前为止我已经尝试过的
sudo
显然,由于缺少权限(即使使用/ ) ,它不起作用,root
因为它是/sys
:
$ sudo su
$ echo 255 > /sys/class/drm/card1/device/hwmon/hwmon1/pwm1
bash: echo: write error: Invalid argument
我也尝试过sysfs
配置来编辑这些参数,但它不起作用:
$ cat /etc/sysfs.conf
class/drm/card1/device/hwmon/hwmon1/pwm1 = 255
class/drm/card1/device/hwmon/hwmon1/pwm1_enable = 1
echo 5 | sudo tee ...
也不起作用。
也不sudo sh -c
:
sudo sh -c 'echo 225 > /sys/class/drm/card1/device/hwmon/hwmon1/pwm1'
sh: 1: echo: echo: I/O error
Archilinux Wiki 指出这应该是可能的https://wiki.archlinux.org/index.php/fan_speed_control#Configuration_of_manual_control他们直接使用 and 编辑值echo
,看起来这对他们有用。
另一篇指南也建议以这种方式配置风扇https://linuxconfig.org/overclock-your-radeon-gpu-with-amdgpu
Pythonamdgpu-fan
包也不适合我。
sudo fancontrol
也不行:
$ sudo fancontrol
Loading configuration from /etc/fancontrol ...
Common settings:
INTERVAL=10
Settings for hwmon1/pwm1:
Depends on hwmon1/temp1_input
Controls
MINTEMP=10
MAXTEMP=60
MINSTART=50
MINSTOP=0
MINPWM=0
MAXPWM=255
AVERAGE=1
Enabling PWM on fans...
Starting automatic fan control...
/usr/sbin/fancontrol: line 649: echo: write error: Invalid argument
Error writing PWM value to /sys/class/hwmon/hwmon1/pwm1
Aborting, restoring fans...
Verify fans have returned to full speed
守护进程(服务)也不起作用:
fancontrol[1877]: MAXPWM=255
fancontrol[1877]: AVERAGE=1
fancontrol[1877]: Enabling PWM on fans...
fancontrol[1877]: Starting automatic fan control...
fancontrol[1877]: /usr/sbin/fancontrol: line 649: echo: write error: Invalid argument
fancontrol[1877]: Error writing PWM value to /sys/class/hwmon/hwmon1/pwm1
fancontrol[1877]: Aborting, restoring fans...
fancontrol[1877]: Verify fans have returned to full speed
systemd[1]: fancontrol.service: Main process exited, code=exited, status=1/FAILURE
systemd[1]: fancontrol.service: Failed with result 'exit-code'.
总结一下:似乎我根本无法编辑 /sys/ amdgpu 相关条目
第2部分
看来必须有另一种方法,比如一些amdgpu
配置或类似的东西。也许在启动期间覆盖内核定义的值?
在 Windows 中,可以直接从 AMD Radeon 驱动程序 GUI 应用程序调整风扇。
我不想要花哨的曲线,我只是想强制锁定静态转速(全速模式)。我正在使用amdgpu-pro
驱动程序,Ubuntu 20.04。我想避免使用类似的脚本fancontrol
问题本身
我想知道是否可以只设置pwm1_enable
to1
和pwm1
to 255
?看起来建议的方法应该有效,但 Ubuntu 20.04 的安全限制比其他发行版的限制更严格。
更新
这东西有效!但仅持续 1-2 秒,之后风扇恢复到系统定义的速度https://github.com/DominiLux/amdgpu-pro-fans/blob/master/amdgpu-pro-fans.sh
更新2
禁用 pwm 大约需要 1-2 秒。
echo 0 > /sys/class/hwmon/hwmon1/pwm1_enable
但之后,某些守护进程会将此值恢复为 2。我如何才能防止除我之外的其他用户更改它?例如防止它被系统改变?
答案1
我想将粉丝锁定在 80%,但方式略有不同。我没有更改 /sys/class/drm/ 中的任何内容。只是
readlink -f /sys/class/drm/card1/device
,其中 card1 是我的 amd 显卡。
因此我知道我想要更改的文件的路径。
在那之后:
sudo sh -c "echo '1' > /sys/devices/pci0000:00/0000:00:03.0/0000:06:00.0/hwmon/hwmon1/pwm1_enable"
sudo sh -c "echo '200' > /sys/devices/pci0000:00/0000:00:03.0/0000:06:00.0/hwmon/hwmon1/pwm1"
作品! Ubuntu 内核 5.4
答案2
如果有人感兴趣,我提出的解决方案和相应的systemd
服务在这里:redfan
https://github.com/nmtitov/redfan
到目前为止,我最好的猜测是编写以下脚本并使其始终在后台运行:
while sleep 1; do echo 0 > /sys/class/drm/card1/device/hwmon/hwmon1/pwm1_enable; done
每一秒我都会“禁用”pwm
并让风扇以最大速度运行。驱动程序(或其他东西)恢复了该值,但下一秒我立即再次禁用它。
答案3
我的配置是
sinix@sinix-garage:~$ lspci -v | grep VGA
lspci: Unable to load libkmod resources: error -12
Flags: bus master, VGA palette snoop, 66MHz, medium devsel, latency 64, NUMA node 0
01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Hawaii XT / Grenada XT [Radeon R9 290X/390X] (prog-if 00 [VGA controller])
04:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere [Radeon RX 470/480/570/570X/580/580X/590] (rev e7) (prog-if 00 [VGA controller])
06:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Baffin [Radeon RX 550 640SP / RX 560/560X] (rev cf) (prog-if 00 [VGA controller])
我设置了 Hawai & Baffin 来合作amdgpu-fan
,而 Ellesmere 只与 合作redfan
。这不是解决方案,因为我无法在埃尔斯米尔上设置 pwm。因此,使用此解决方案时,PC 会不断冻结。我知道这是amdgpu-20.45
与内核 5.4.65之间的关系问题。
因此,我决定尝试不同的内核,最终找到了合适的内核。
https://kernel.ubuntu.com/~kernel-ppa/mainline/v4.19.180/
安装 4.19 后,Ellesmere 启动, pwm1_enable=2
但最终它们听到 1 的“回声”,并且所有其他守护进程都正常工作,例如amdgpu-fan
.
所以“矩阵”在/etc/amdgpu-fan-config.yaml
起作用。
GPU0 t=66°C fan 67% power 134.09W, GPU1 t=54°C fan 56% power 104.09W, GPU2 t=51°C fan 53% power 47.23W. Total power: 285.41W