昨今のLinuxのゲーミング環境はかなり整備されてきている。ProtonとSteam Playで遊べるWindowsネイティブのゲームは10,000タイトルを超え、いよいよLinuxで遊べないゲームの方が少なくなってきた。
(オンライン対戦でアンチチート対策を施されたゲームは未だ動くものが少なく、Easy Anti-CheatのLinux対応の話も久しく続報がないが)目覚ましい進歩だ。(アンチチートソフトウェアの問題は開発元になんとかしてもらうしか解決策はない)
しかしこれだけでいままでWindowsを使っていたゲーマーがLinuxに引っ越してくるか?と聞かれれば沈黙せざるえない。
Linuxゲーミングに必要なもの
なぜかというとLinuxにはハードウェアベンダーからWindowsに提供されているような「GeForce Experience」や「AMD Adrenalin」「Radeon Wattman」のような手軽にオーバークロックしたり、静音化や低電圧化する便利な設定ソフトがないからだ。NVIDIAは低機能ながらLinux向けにGUIで設定を行えるソフトウェアを提供しているが、AMD Radeon向けにはそれすらない。Linuxカーネルにドライバが統合されているにも関わらずコントロールパネルすらない状態なのはAMDが実はそこまでOSSに積極的ではない姿勢が窺える。
Linuxユーザにとってもこういった公式ツールの配布は長年の悲願の一つだろう。
(以前NVIDIA GPUをグラフィカルUIから操作できるNvidiuxというオープンソースソフトウェアを紹介したが2年近くコミットが無く、実質的に開発終了状態だ。)
だが去年から開発が始まった「CoreCtrl」というオープンソースソフトウェアプロジェクトが軌道に乗ればこの状況が変わりそうだ。
CoreCtrl
GNU/Linux には素晴らしいアプリケーションがたくさんあるが特定のハードウェアしかサポートしていないことが多く、結果的にたくさんの小さいプログラムが散り散りにインストールされたような状態になってしまう。これは多くの人にとって苦痛な状況だ。
「CoreCtrl」はこの問題を解決するために統合的な管理を行えることを目指して開発が進められているそうだ。
CoreCtrl は Linux で動くAMD Wattman に似たソフトウェアだ。簡単にハードウェアをコントロールしたり、プロファイルを作ることですばやく設定を変更できる。起動した直後からプログラムやゲーム、Windows にアプリでさえ自動的に設定してくれる。

この通りコントロールパネルが非常に見やすく設定変更も簡単だ。クロック周波数、メモリ周波数、ファンの回転速度まで調整ができる。

現在はCPUの周波数の監視グラフとCPU周波数ガバナーの設定変更ができる。

GPUのファームウェアバージョンやデバイスのIDまで見ることが出来る。

「Copy all」を押すとクリップボードにGPU、CPUの情報が全てコピーされるので便利だ。
将来的には様々なデバイスに対応したいと製作者はコメントしているので、NVIDIA製のグラフィックボードもサポートするかもしれない。
現状のCoreCtrlはAMD GPUの振る舞いをグローバル設定で保存できるくらいしかできず、プロファイルを保存できないバグがあるようだ。
CoreCtrlの完成度が上がって様々なLinuxディストリビューションにインストールされるようになったらと妄想すると夢が広がる。非常に有用なOSSなのでこれからに期待したい。
導入
インストールはUbuntuではPPAを追加する必要があるが、ArchやFedora、openSUSEではものすごく簡単だ。
下記のリンクを参考にしよう。

Ubuntu
リポジトリを追加する
$ sudo add-apt-repository ppa:ernstp/mesarc
$ sudo apt-get update
$ sudo apt install corectrl
Arch Linux
$ yay -Sy corectrl
設定と注意点
本家の設定方法は下記のURLに記載されている。AMD GPUを使っていてCoreCtrlを常用したい人はすべての設定を行うべきだ。
ここからは本家のコピペみたいな内容なので英文が読める人は下記のサイトを見よう。その方が間違いがない。

自動起動
CoreCtrlが起動していない状態だと設定は適用されないので、PCが起動時にCoreCtrlを起動する設定にしておくと便利だ。
ターミナルで以下の設定ファイルをautostartフォルダにコピーしよう。
$ cp /usr/share/applications/org.corectrl.corectrl.desktop ~/.config/autostart/org.corectrl.corectrl.desktop
パスワードを毎回確認されないようにする
CoreCtrlからハードウェアを操作するRoot権限が必要だ。このため起動するたびに管理者パスワードを要求される。毎回パスワードを入力したくない人は以下の設定をしよう。Polkitのバージョンによって設定ファイルの記述方法が異なるのでそこだけ注意が必要。
Polkitの確認方法
$ pkaction --version
Polkitがバージョン0.106未満の場合
まずは設定ファイルの作成
# touch /etc/polkit-1/localauthority/50-local.d/90-corectrl.pkla
以下のコードをコピーアンドペーストする。
[User permissions]
Identity=unix-group:hogehoge
Action=org.corectrl.*
ResultActive=yes
hogehogeの部分は自分のユーザグループ名に設定しよう。
Polikitがバージョン0.106以上の場合
設定ファイル作成、場所が以前と違うので注意
# touch /etc/polkit-1/rules.d/90-corectrl.rules
以下のコードをコピペ
polkit.addRule(function(action, subject) {
if ((action.id == "org.corectrl.helper.init" ||
action.id == "org.corectrl.helperkiller.init") &&
subject.local == true &&
subject.active == true &&
subject.isInGroup("hogehoge")) {
return polkit.Result.YES;
}
});
hogehogeの部分は自分のユーザグループ名に設定しよう。
AMD GPUをチューニングできるようにする
AMD GPUはインストールしただけではチューニングできない。オーバークロックに挑戦した方ならばお馴染みの設定だが、ブートローダに以下のパラメータを入力する必要がある。
amdgpu.ppfeaturemask=0xffffffff
GRUBの場合
「/etc/default/grub」内の「GRUB_CMDLINE_LINUX_DEFAULT」という項目に先程のパラメータを挿入する。
GRUB_CMDLINE_LINUX_DEFAULT="〜略〜 amdgpu.ppfeaturemask=0xffffffff"
GRUBのコンフィグファイルを再生成する。
grub-mkconfig -o /boot/grub/grub.cfg
システムを再起動すると設定が反映される。

おわり
コメント