AMD RYzen 7 перегрев 95 градусов

Ограничение максимальной температуры процессора AMD Ryzen 7 6800H в Arch Linux/Manjaro

С недав­не­го вре­ме­ни я явля­юсь обла­да­те­лем про­цес­со­ра AMD Ryzen 7 6800H в соста­ве ноут­бу­ка. Камень, конеч­но, быст­рый, встрой­ка AMD Radeon 680M поз­во­ля­ет в боль­шин­стве слу­ча­ев обой­тись без дис­крет­ной GPU. Но одна вещь меня в этом ЦП очень уди­ви­ла, и, что пре­умень­шать, шоки­ро­ва­ла: если нагру­зить на 100% все ядра про­цес­со­ра, его тем­пе­ра­ту­ра дохо­дит до 93–95°C! Я с дет­ства при­вык, что любое пре­вы­ше­ние по t ЦП более 75°C – пло­хо, одна­ко инже­не­ры AMD счи­та­ют ина­че, уве­ряя что тем­пе­ра­ту­ры Ryzen 7 дохо­дя­щие до 95°C – абсо­лют­ная нор­ма и они спе­ци­аль­но спро­ек­ти­ро­ва­ны для рабо­ты на такой высо­кой тем­пе­ра­ту­ре. Но и физи­ку никто не отме­нял, и дегра­да­цию крем­ния на высо­ких тем­пе­ра­ту­рах тоже. Как бы там ни было, тем­пе­ра­ту­ру захо­те­лось пони­зить, и сде­лать это в Arch Linux и Manjaro очень про­сто.

Установка RyzenAdj

Что­бы иметь воз­мож­ность менять пара­мет­ры рабо­ты про­цес­со­ров AMD Ryzen, нуж­но уста­но­вить спе­ци­аль­ную ути­ли­ту RyzenAdj. PKGBUILD, поз­во­ля­ю­щий это сде­лать быст­ро и про­сто, есть в AUR. Ста­вим с помо­щью любо­го aur-хел­пе­ра:

paru -S --noconfirm ryzenadj-git

Я не пом­ню ста­вит ли ути­ли­та какие-нибудь dkms-моду­ли, но если да, сто­ит перед про­дол­же­ни­ем пере­за­гру­зить­ся.

Теперь оста­лось огра­ни­чить мак­си­маль­ную тем­пе­ра­ту­ру про­цес­со­ра нуж­ным нам зна­че­ни­ем, за это отве­ча­ет пара­метр –tctl-temp. Я решил огра­ни­чить тем­пе­ра­ту­ру сво­е­го Ryzen 80°C, для это­го выпол­нил в кон­со­ли про­стую коман­ду:

sudo ryzenadj --tctl-temp=75

Эту строч­ку мож­но поме­стить в crontab  для авто­ма­ти­че­ско­го при­ме­не­ния после пере­за­груз­ки. Так же реко­мен­дую создать пра­ви­ло, пери­о­ди­че­ски её при­ме­ня­ю­щее, т.к., напри­мер, изме­не­ние режи­ма энер­го­по­треб­ле­ния систе­мы её сби­ва­ет. Я настро­ил на при­ме­не­ние каж­дые 5 минут с помо­щью cronie.

Гото­во! Теперь тем­пе­ра­ту­ра про­цес­со­ра нико­гда не пре­вы­сит 80 гра­ду­сов цель­сия. Чем мы жерт­ву­ем? Про­из­во­ди­тель­но­стью, конеч­но же. Теперь при тем­пе­ра­ту­ре 80°C про­цес­сор нач­нёт пони­жать так­то­вые часто­ты ядер, не допус­кая пре­вы­ше­ния сво­ей тем­пе­ра­ту­ры, тем самым пони­жая свою про­из­во­ди­тель­ность.

Сохраняем установленное значение после перезагрузки

Оста­лось сде­лать так, что­бы уста­нов­лен­ное зна­че­ние сохра­ня­лось после пере­за­груз­ки систе­мы. Исполь­зу­ем систем­ный пла­ни­ро­щик Cron. Откры­ва­ем для редак­ти­ро­ва­ния:

sudo EDITOR=nano crontab -e

Поме­ща­ем туда стро­ку

@reboot ryzenadj --tctl-temp=75
*/5 * * * * ryzenadj --tctl-temp=75

Сохра­ня­ем изме­не­ния и закры­ва­ем редак­тор: CTRL+O -> ENTER -> CTRL+X. Гото­во.