あらすじ (忙しい方はこちら)
数年前にLinuxの開発者、リーナス・トーバルズさんは大手GPUメーカーNvidia社に対して「サポートがクソだ」と言ったとか言わなかったとか。 それから数年後、AMD社はRyzenというCPUを出して有名になりました。また、Nvidia社はやっとオープンソースなドライバーを出しました。めでたしめでたし.....
ノートパソコンのRyzenCPU + Nvidia環境でGPUがうまく動かない!
...とはいいつつも、良きツールが存在したので紹介します。
NvidiaGPUとryzen内蔵GPUを共存させる
あらすじの通り、色々試して成功したのでメモしておきます。 結論からいうと、optimus-managerを使うとほぼ確実に動きます。
(環境について)
- arch最新版(2023/6/24現在)
- LightDM + Gnome
- Ryzen5-4600H
- GTX1650TI
- Optimus有効
windowsで切り替え可能なグラフィックスとかあるなら、Optimus有効です。
パターン1.PRIMEを使う
(archwikiによると)Primeとは、Optimusなどのハイブリッドグラフィックを管理するためのテクノロジーです。
私の環境&やり方ではうまく動作しませんでした。
やったこと
(すでにnvidiaドライバー等を入れていたとします)
- nvidia-openドライバを消しました。
sudo pacman -Rs nvidia-open
- xf86系のドライバをインストールしました。
sudo pacman -S xf86-video-nouveau xf86-video-amdgpu
- switcheroo-controlをインストールしました。
sudo pacman -S switcheroo-control
sudo systemctl start switcheroo-control
- modprobe.dでnouveauのブラックリストを解除しました。
(ついでにnvidia-openをブラックリストに入れました) -
これを参考に
/etc/X11/xorg.conf
を編集
intelの部分をamdgpuに、nvidiaの部分をnouveauにしました。 - 再起動
ブラックリストについて
nvidia-tools
をインストールしている環境では、nouveauがブロックされています。
2の時点で再起動し、lspciを確認すると、どちらが使われているか把握できます。
[foo@bar ~]$ lspci -k | grep -A 3 "VGA"
01:00.0 VGA compatible controller: NVIDIA Corporation TU116M [GeForce GTX 1650 Ti Mobile]
Subsystem: Tongfang Hongkong Limited TU116M [GeForce GTX 1650 Ti Mobile]
+ Kernel driver in use: nvidia
+ Kernel modules: nvidia
--
06:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Renoir
(省略)
ブラックリストは/usr/lib/modprobe.d
と/etc/modprobe.d
にあります。
私の場合、/usr/lib/modprobe.d/nvidia-utils.conf
にありました。
結果
- gnomeの設定でディスプレイが2つあることを確認しました。
- steamやゲームが起動しませんでした。
- 垂直同期が不安定?
- 疲れた
正直、使い物になりませんでした。
パターン2.optimus-managerを使う
本題です!
optimus-managerを導入したら動作しました。基本的にはgithubのReadme通り進めれば平気です。
やったこと(やりかた)
0.不要なドライバーを削除
パターン1をやってしまった方は遅くないので即削除してください。
sudo pacman -Rs xf86-video-nouveau xf86-video-amdgpu nvidia-tools nvidia-prime switcheroo-control
また、xorg.confも邪魔なので削除
sudo rm /etc/X11/xorg.conf
1.nvidiaドライバーを導入
wikiにはnvidia-openを入れてと書かれてましたが、遠慮なくnvidiaを導入しました。
pacman -S nvidia
2.aurからoptimus-managerを導入
paru -S optimus-manager
paru(aurヘルパー)について
aurというユーザーリポジトリから自動でインストールしてくれるプログラムです。
簡単に導入方法を書きますが、自分で調べたほうがいいかもです。
paru , AUR ヘルパー , Arch User Repository
-
base-devel
をインストール
sudo pacman -S base-devel
- git clone url のurlをコピペ、homeディレクトリなどに展開
git clone https://aur.archlinux.org/paru.git
- cdで移動して
- PKGBUILDの中身を確認する
less PKGBUILD
中に何が書いてあるかわからない場合は二択です。
A:冒険する(無視して突破)
B:ubuntuに引っ越す
Aを選んだ方、完全自己責任でお願いします。 -
sudoせずに、makepkg -si
fakerootという、疑似ルート環境でビルドするためです。
3. 設定方法
-
optimus-manager --switch nvidia
nvidiaGPUを使う -
optimus-manager --switch integrated
内臓GPUを使う -
optimus-manager --switch hybrid
両方を使う
その他公式gitを参考
結果
- gnomeの設定でディスプレイが2つあることを確認しました。
- 楽
まとめ
gpuってめんどくさい!