Sapphire Radeon RX580 Nitro ventillátor vezérlés, Ubuntu alatt.

Fórumok

Sziasztok!
Egy baráti társaság egységesen úgy döntött hogy búcsút mondanak a Windows világának. Főként net, közösségi média, videónézés, zene, email, minimális iroda meló, otthonról dolgozás megy majd a gépeken. Az Ubuntu család valamelyik tagját fogják választani.
A szórakozás a War Thunder nevű online játék, mivel van natív Linux kliens.

A nagy kérdés, főleg ebben a melegben hogy Ubuntu alatt van-e lehetőség a VGA kártya ventilátorainak vezérlésre a hőfok alapján mint a Windows driver-ben. Gugliztam már 1 napot de egyértelmű megoldást nem találtam, persze lehet hogy én vagyok a béna.

Tudnátok ebben segíteni.
Előre is köszönöm!

gThomek.

Hozzászólások

Szerkesztve: 2021. 06. 26., szo – 08:27

CoreCtrl a barátod.

sudo add-apt-repository ppa:ernstp/mesarc

sudo apt-get install corectrl

Minden ami megy amdgpu driverrel (rx580 is ilyen), mellesleg ez az alapértelmezett, nagyon szépen szabályozható. Boot paraméternek meg kell adni a következőt: "amdgpu.ppfeaturemask=0xffffffff" ezek után lehet feszültségeket, órajelet, ventilátort is szabályozni.

(nálam pl Sapphire Radeon RX470 esetében)

Aktuális beállítások lekérdezése:

cat /sys/class/drm/card0/device/pp_od_clk_voltage
OD_SCLK:
0:        300MHz        800mV
1:        466MHz        818mV
2:        751MHz        824mV
3:       1019MHz        837mV
4:       1074MHz        881mV
5:       1126MHz        925mV
6:       1169MHz        962mV
7:       1216MHz       1012mV
OD_MCLK:
0:        300MHz        800mV
1:       1750MHz       1000mV
OD_RANGE:
SCLK:     300MHz       2000MHz
MCLK:     300MHz       2100MHz
VDDC:     800mV        1175mV

shader illetve memory órajel állítása:

echo "s 7 1216 920" >> /sys/class/drm/card0/device/pp_od_clk_voltage
echo "s 6 1180 910" >> /sys/class/drm/card0/device/pp_od_clk_voltage
echo "s 5 1150 900" >> /sys/class/drm/card0/device/pp_od_clk_voltage

echo "m 1 1750 980" >> /sys/class/drm/card0/device/pp_od_clk_voltage

 ha változtatsz az órajeleken azt még érvényesíttetni is kell:

echo "c" > /sys/class/drm/card0/device/pp_od_clk_voltage

alapbeállítások visszaállítása:

echo "r" > /sys/class/drm/card0/device/pp_od_clk_voltage

 

Azt is meg lehet csinálni, hogy csak bizonyos szinteket engedélyezel:

echo "manual" > /sys/class/drm/card0/device/power_dpm_force_performance_level
echo "0 1 2 3" > /sys/class/drm/card0/device/pp_dpm_sclk

 

A ventilátor fordulatszámát PWM ciklusokkal lehet szabályozni, (100% fordulatszám 255, 50% 128, stb), itt is be kell kapcsolni a kézi vezérlést.

echo "1" > /sys/class/drm/card0/device/hwmon/hwmon1/pwm1_enable

echo "128" > /sys/class/drm/card0/device/hwmon/hwmon1/pwm1

Ventilátort visszakapcsolni automatába, ami egy driver hiba miatt nem biztos, hogy működik, szóval egy újraindítás erősen ajánlott.

echo "2" > /sys/class/drm/card0/device/hwmon/hwmon1/pwm1_enable

 

Szerintem, egy jól irányzott alulfeszeléssel sokkal jobb hatásfokot, hűvösebb működést lehet elérni mintha csak a ventilátor fordulatát szabályoznánk.

Természetesen mindenki csak saját felelősségére használja a fentieket.

..,

Ezt ki fogom próbálni. Most kaptam meg a gépeket (6db) az adatmentés megy a felhőbe, életembe most látok először 50TB felhő tárhelyet :)
Ubuntu Budgie -re esett a választás, ha nem sikerül a "régebbi" LTS verzióra rábeszélni őket, akkor mivel a többihez nincs AMDGPU-PRO driver ezek a beállítások oibaf driver -el is működnek ?

OFF: jól megszívtam azzal hogy hódmezővásárhelyi vagyok, itt a t-systems 1000-es nete feltöltés szintjén maximum 25 megabitet jelent. Szóval szép hosszú feltöltés lesz.

Oibaf driverről nem tudom micsoda, illetve AMDGPU-PRO drivert sem használok. A fenti leírt dolgok, az alapértelmezetten linux kernel által szállított amdgpu meghajtóra vonatkozik. Azt mondanám minden disztribúcióban ez az alapértelmezett meghajtó. Illetve azt gondolom messze a legstabilabb is. Ha csak valami tényleg speciális igény miatt nincs szükséged másra, szerintem nem éri meg az időt, fáradtságot a kísérletezés.

Rákerestem oibafra, látom csak egy tároló, amiben a legfrissebb van mindenből. Azt gondolom erre sincs feltétlenül szükséged, ez nélkül is mennie kell a dolognak.

..,

Nem értem, milyen „többihez” nincs driver? Egyébként nem is kell amdgpu pro, megy a sima amdgpu driverrel is. Természetesen az oibaf-fal is működnie kell, az csak annyiban speciális, hogy újabb verzió, mint az LTS ökoszisztéma, de amúgy kb. semmiben nem különbözik.

50 TB-ot feltölteni 6 gépről mindenhol szívás, mindegy, hogy milyen gyors neted van. Eleve a tárhely által nyújtott sávszél is limitálni fog, akkor is, ha a jó isten terabites netével lövöd felfelé.

The world runs on Excel spreadsheets. (Dylan Beattie)

Egy gépet telepítettem fel, abban így néz ki:

# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
#   info -f grub -n 'Simple configuration'

GRUB_DEFAULT=0
GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=0
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""

# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"

# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480

# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true

# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"

# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

helyére

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash amdgpu.ppfeaturemask=0xffffffff"

és update-grub, majd reboot.

"Az élet tele van kérdésekkel. Az idióták tele vannak válaszokkal."

"Its easier to fool a man than it is to convince they have been fooled"

Nálam Debian van, de szerintem azonos lesz Ubuntu alatt is. A GRUB_CMDLINE_LINUX_DEFAULT-ba kell beírni, a meglévő rész mellé, utána grub.cfg újragenerálás (nálam update-grub, nálad lehet más):

GRUB_CMDLINE_LINUX_DEFAULT="... amdgpu.ppfeaturemask=0xfffd7fff"

Ajánlások között valahol csupa-f, valahol az ami nálam van. Ahol a bit 1-es, azt bekapcsolod, szerintem a ha többet kapcsolsz, nem probléma.

Melyik bit mi: https://github.com/torvalds/linux/blob/625acffd7ae2c52898d249e6c5c39f34…

"Az élet tele van kérdésekkel. Az idióták tele vannak válaszokkal."

"Its easier to fool a man than it is to convince they have been fooled"

Ezt köszi. Tudsz esetleg olyan oldalt, oldalakat ahol van egy szép lista melyik kártyán milyen ajánlások vannak? Olyat találtam, hogy XML formátumban van ajánlott beállítás, de olyat már nem találtam amivel be is tudom tölteni, vagy csak akár konvertálni ilyen kerneles amdgpu-s cuccra. Szerintem Windows-os program tudja kezelni, létrehozni. WattmanGTK-t találtam, de az csak egy GUI szerintem a kernelparaméterekhez, semmi extra.

"Az élet tele van kérdésekkel. Az idióták tele vannak válaszokkal."

"Its easier to fool a man than it is to convince they have been fooled"

Írsz egy scriptet (akár init scriptet ,nyílván ez akkor járható út, ha kitesztelted milyen értékek mellett stabil még a kártya) azt használod.

Találhatsz ajánlásokat, de alapvetően minden kártya különbözik. Két azonos típusú kártya sem feltétlenül tudja ugyanazokat az értékeket.

..,

Köszi, azt gondoltam léteznek biztonságos értékek kártya szinten, nem feltétlen a szélsőséges értékig akarok elmenni, az természetesen már konkrét kártya, memória függő, ezt sejtem. Olyat találtam rom-okkal, hogy kártya, rom és memória típusra vannak moddolt romok, ahol azt vettem ki, hogy ott a romban már módosították az értékeket, hogy azzal induljon a kártya. Meg polaris editort, ha a saját, lementett rom image-ben akarnék túrkálni. De annyira azért vagyok nyuszi, hogy egy rom égetést nem vállaltam be. No és ez alapján azt gondoltam létezhet ilyen adatbázis ilyen értékekkel amit tudok az amdgpu-nak átpasszolni. De akkor nincs.

"Az élet tele van kérdésekkel. Az idióták tele vannak válaszokkal."

"Its easier to fool a man than it is to convince they have been fooled"

WOW, kösz szépen!!! Nem is tudtam, hogy ilyet is lehet. Van két AMD GPU-m is, Gigabyte RX570, meg a másik gépen prociba integrált Vega8. Amit nem értek, hogy miért kell a usernek kernelparaméterrel bekapcsolni, miért nem lehet ezt default engedélyezni? Mert ha már van implementálva, így semmi értelme ilyen feature-nek, hogy a felhasználók 99%-a nem is tud róla, így be se kapcsolja, de akkor meg minek van?

The world runs on Excel spreadsheets. (Dylan Beattie)

kicsit tul van ez rugozvat, nem bekapcsolni kell miindent, mert az alapertelmezett erteke a kernelben ez: uint amdgpu_pp_feature_mask = 0xfff7bfff;

szerk: amugy van egy radeon-profile nevu GUI, amivel tobbek kozott hutesgorbeket is lehet rajzolgatni
 

Ezt nem szabalyozza magatol a kartya?

A működés természetesen ugyanaz, mint windows alatt, automatán megy minden. A finomhangolás viszont célszerű.

Az a baj ezekkel a kártyákkal, és gondolom az összes többi új kártyával, hogy dinamikusan változtatják az órajelet működés közben (túlmelegszik, visszavesz órajelből, átlépi power limitet szintén). Használat közben ez simán mikrolagot, akadást okozhat. Minden kártyának van egy garantált, illetve egy boost órajele. A témaindító, illetve az én kártyám esetében:

Rx580 https://www.techpowerup.com/gpu-specs/sapphire-nitro-rx-580-8-gb.b4436

base clock: 1257

boost clock: 1411

 

Rx470 https://www.techpowerup.com/gpu-specs/sapphire-rx-470-platinum-edition.b3735

base clock: 926

boost clock: 1216

 

A finomhangolással elérhető, hogy a kártya képes legyen stabilan a boost, vagy akár az fölötti órajelet is tartani. Ez viszont feszültség, illetve ventilátorszabályozás finomhangolás függvénye.

..,

De, ezeket szabályozza a kártya, fesz, venti, órajel, a VBIOS-ban van programozva, hogy hogyan állítsa a kártya a hőfok, terhelés, stb. függvényében. De van, hogy a felhasználónak ez nem felel meg, mert csendet akar, vagy csak a fogyasztás miatt alulfeszelné, downclock-olná a kártyát, vagy éppen fölé, mert kell egy kis extra teljesítmény.

Bányászok ezzel gyakran nem is szórakoznak, inkább a VBIOS-t moddolják, hogy alul legyen feszelve, úgy nem kell per OS szinten bogarászni ezt a kérdést.

The world runs on Excel spreadsheets. (Dylan Beattie)