Ubuntu 20.04에서 AMD GPU 팬 속도를 잠그는 방법은 무엇입니까?

Ubuntu 20.04에서 AMD GPU 팬 속도를 잠그는 방법은 무엇입니까?

AMD Radeon 그래픽 카드 팬의 RPM을 최고 속도로 잠그려고 합니다.

echo 1 > /sys/class/hwmon/hwmon1/pwm1_enable
echo 255 > /sys/class/hwmon/hwmon1/pwm1

내가 지금까지 시도한 것

sudoroot분명히 다음과 같은 이유로 권한 누락으로 인해 작동하지 않습니다(/ 포함) /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

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 Driver GUI 애플리케이션에서 팬을 직접 조정할 수 있습니다.

나는 화려한 곡선을 원하지 않고 단지 정적 회전수를 강제로 잠그고 싶습니다(풀 스로틀 모드). 저는 amdgpu-proUbuntu 20.04 드라이버를 사용하고 있습니다. 다음과 같은 스크립트를 사용하지 않고 싶습니다.fancontrol

문제 그 자체

pwm1_enable그냥 to 1pwm1to 로 설정할 수 있는지 궁금합니다 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

, 여기서 카드1은 내 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"

일하다! 우분투 커널 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. Ellesmere에서는 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

관련 정보