如何在 Ubuntu 20.04 中鎖定 amd gpu 的風扇速度?
我正在嘗試全速鎖定我的 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
config 來編輯這些參數,但它沒有用:$ 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
Python
amdgpu-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_enable
到1
和pwm1
到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。我怎樣才能防止它被除我之外的其他使用者更改?例如,防止它被系統改變?
如果有人對我提出的解決方案和相應的
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