モブ沢工房

プログラミングとかLinux関連(特にOSSのグラフィックツール関連)とかレトロゲームとか3Dプリンタやら日曜大工等、色々。

Radeon RX550導入 & ファン制御で黙らせてみた

玄人志向Radeon RX550搭載「RD-RX550-E2GB/OC」が7500円程度だったので、まぁRX550レベルの適正価格と判断して購入しました 今年の最初に3980円ぐらいで売ってたらしいですけどね…全然知らんかったわ(涙

Xubuntu 18.04.3マシンに載せたら、最初は何故かopenglのrendererがllvmpipeにフォールバックして全然amdgpuを使ってくれなかったので/usr/share/X11/xorg.conf.dに極普通のconfファイルを書いたら動いてくれました

最初、llvmpipeであることに気づかず、なんかちょっともっさいなぁ…RX550なんてこんなもんかと思ってしまったのは内緒。逆にいうとllvmpipeやっぱりすげぇ… *1

さて問題は冷却ファンであります。 これがねぇ…linuxの場合だからか知りませんが、デフォで全開なんですよ。 以前買ったRX460は何もせずとも極めて静音なので、やっぱ廉価版と差があるのだなぁと

いよいよとなったら付属のファンを撤去、12cmファンを塩ビアングルでの自作マウンタで設置し、atmega328かlpc1124でpwm制御して温度センサーと連動で…と思いましたが、正直面倒なので取り敢えずlinuxからファンコントロールできんかな?と思ってやってみたら、簡単に出来ました(^^) *2

当然ながら、全部sudo権限が必要ですが まず、pwm制御をenableします

echo 1 > /sys/class/drm/card0/device/hwmon/hwmon2/pwm1_enable

次にpwmレベル数値を設定します

echo 66 >  /sys/class/drm/card0/device/hwmon/hwmon2/pwm1

都会よりはずっとマシな温度のド田舎のうちでは、66ぐらいで1600rpmぐらいとなり、静かさ・温度ともにちょうどいいぐらいかな…という感じです。まぁ高負荷な処理もほぼしませんので取り敢えず。

daemonにして十分おきぐらいでアツアツになってたら全開とかやっても良いのですが、それこそもう自作マイコンでやったほうが良いんじゃないかなって気はします

なお、サスペンドから復帰した際にはファンが全開に戻りますが systemdだと/etc/pm/sleep.dではなくsystemdのスリープフックでの設定が必要です

Archwikiを参考に次のようなものを書いてmy_on_resume.serviceとして、使っています

[Unit]
Description=User resume actions
After=suspend.target

[Service]
Type=simple
User=root
ExecStart=/usr/local/bin/my_on_resume.sh

[Install]
WantedBy=suspend.target

RX460+PentiumGの環境では、何故かgvimでのみ、ふとした瞬間に唐突にスローダウンする(てか、amdgpuだからか元々XorgのCPU占有率が高めで、しかも2コアしか無い)という意味不明の悲しい現象が起きましたが…RX460+i5-3470では平気だったし、RX550+i5-3470でもRX460+Ryzenでも平気なのですよな

まぁRyzenで平気なのは当然としても。すっかり我が家も多コア時代となってしまいました。つぅーか気づけばすっかりAMD派に…(^^;

ではでは

*1:なお、購入直後の動作チェックのためにi5-3450S搭載のサブマシンで試したときは、これは何の設定も使わずに挿しただけでamdgpuになったのですよね。実に不思議

*2:なお、llvmpipe状態でも、以下のファンコントロールは問題なく動作します。このせいでllvmpipeになってることに気づくのが遅れたともいえる