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
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-pro
Ubuntu 20.04 드라이버를 사용하고 있습니다. 다음과 같은 스크립트를 사용하지 않고 싶습니다.fancontrol
문제 그 자체
pwm1_enable
그냥 to 1
및 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
, 여기서 카드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