首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Ubuntu20.04中如何锁定amd的风扇速度?

在Ubuntu20.04中如何锁定amd的风扇速度?
EN

Unix & Linux用户
提问于 2021-01-02 11:11:29
回答 3查看 7.8K关注 0票数 5

我试图以全速锁定我的AMD Radeon录像机风扇的RPM:

代码语言:javascript
复制
echo 1 > /sys/class/hwmon/hwmon1/pwm1_enable
echo 255 > /sys/class/hwmon/hwmon1/pwm1

到目前为止我尝试过的

显然,由于缺少权限(即使是sudo/root),它无法工作,因为它是/sys

代码语言:javascript
复制
$ sudo su
$ echo 255 > /sys/class/drm/card1/device/hwmon/hwmon1/pwm1
bash: echo: write error: Invalid argument

我也尝试过sysfs配置来编辑这些参数,但是它没有工作:

代码语言:javascript
复制
$ 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也没有:

代码语言:javascript
复制
sudo sh -c 'echo 225 > /sys/class/drm/card1/device/hwmon/hwmon1/pwm1'
sh: 1: echo: echo: I/O error

Archilinux指出,虽然https://wiki.archlinux.org/index.php/fan_速度_control#Configuration_的_手册_控制,但它们可以直接用echo编辑值,并且看起来很适合它们。

另一个指南还建议以https://linuxconfig.org/overclock-your-radeon-gpu-with-amdgpu的方式配置粉丝。

Python包对我也不起作用。

sudo fancontrol也不起作用:

代码语言:javascript
复制
$ 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

Daemon (服务)也不起作用:

代码语言:javascript
复制
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驱动程序,Ubuntu20.04。我想避免使用像fancontrol这样的脚本

这个问题本身,

我想知道这是否可能仅仅是将pwm1_enable设置为1,将pwm1设置为255?看起来建议的方法应该有效,但是Ubuntu20.04的安全限制比其他发行版的限制更严格。

更新这个东西有效!但是只有1-2秒,之后,粉丝们又回到了系统定义的速度https://github.com/DominiLux/amdgpu-pro-fans/blob/master/amdgpu-pro-fans.sh上。

update 2

禁用pwm的工作时间约为1-2秒.echo 0 > /sys/class/hwmon/hwmon1/pwm1_enable

但是在此之后,一些守护进程将此值恢复到2。我如何防止除我之外的其他用户更改该值?防止它被系统改变?

EN

回答 3

Unix & Linux用户

回答已采纳

发布于 2021-01-02 15:48:53

如果有人感兴趣,我所做的解决方案和相应的systemd服务在这里:redfan https://github.com/nmtitov/redfan

到目前为止,我的最佳猜测是编写以下脚本并始终在后台运行:

代码语言:javascript
复制
while sleep 1; do echo 0 > /sys/class/drm/card1/device/hwmon/hwmon1/pwm1_enable; done

每一秒我“禁用”pwm并使风扇以最大速度运行。驱动程序(或其他一些东西)恢复值,但下一秒我立即再次禁用它。

票数 1
EN

Unix & Linux用户

发布于 2021-08-17 19:16:41

我想在80%的时候锁定风扇,但方式略有不同。我在/sys/class/drm/中没有做任何更改。只是

代码语言:javascript
复制
readlink -f /sys/class/drm/card1/device

,card1是我的和我的录像机。

因此,我知道要更改的文件的路径。

在那之后:

代码语言:javascript
复制
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

票数 3
EN

Unix & Linux用户

发布于 2021-03-14 17:00:55

我的配置是

代码语言:javascript
复制
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])

我设置Hawe&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中的“矩阵”可以完成这项工作。

代码语言:javascript
复制
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
票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/627182

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档