Linux

如何在 Ubuntu 20.04 中鎖定 amd gpu 的風扇速度?

  • August 17, 2021

我正在嘗試全速鎖定我的 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

我也嘗試過sysfsconfig 來編輯這些參數,但它沒有用:

$ 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他們直接編輯值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 應用程序調整風扇。

我不想要花哨的曲線,我只是想強制鎖定靜態 RPM(全開模式)。我正在使用amdgpu-pro驅動程序,Ubuntu 20.04。我想避免使用像fancontrol

問題本身

我想知道這是否可能只是設置pwm1_enable1pwm1255?看起來建議的方法應該有效,但 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。我怎樣才能防止它被除我之外的其他使用者更改?例如,防止它被系統改變?

如果有人對我提出的解決方案和相應的systemd服務感興趣:redfan https ://github.com/nmtitov/redfan

到目前為止,我最好的猜測是編寫以下腳本並使其始終在後台執行:

while sleep 1; do echo 0 > /sys/class/drm/card1/device/hwmon/hwmon1/pwm1_enable; done

每秒鐘我都會“禁用”pwm並讓風扇以最大速度執行。驅動程序(或其他東西)恢復了該值,但下一秒我立即再次禁用它。

我想將粉絲鎖定在 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

引用自:https://unix.stackexchange.com/questions/627182