1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

ゲーミングノート(ryzenGPU+nvidiaGPU)でarchlinux

Last updated at Posted at 2023-10-26
あらすじ (忙しい方はこちら)

数年前に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ドライバー等を入れていたとします)

  1. nvidia-openドライバを消しました。
    sudo pacman -Rs nvidia-open
  2. xf86系のドライバをインストールしました。
    sudo pacman -S xf86-video-nouveau xf86-video-amdgpu
  3. switcheroo-controlをインストールしました。
    sudo pacman -S switcheroo-control
    sudo systemctl start switcheroo-control
  4. modprobe.dでnouveauのブラックリストを解除しました。
    (ついでにnvidia-openをブラックリストに入れました)
  5. これを参考に/etc/X11/xorg.confを編集
    intelの部分をamdgpuに、nvidiaの部分をnouveauにしました。
  6. 再起動
ブラックリストについて

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

  1. base-develをインストール
    sudo pacman -S base-devel
  2. git clone url のurlをコピペ、homeディレクトリなどに展開
    git clone https://aur.archlinux.org/paru.git
  3. cdで移動して
  4. PKGBUILDの中身を確認する
    less PKGBUILD
    中に何が書いてあるかわからない場合は二択です。
     A:冒険する(無視して突破)
     B:ubuntuに引っ越す
    Aを選んだ方、完全自己責任でお願いします。
  5. sudoせずに、makepkg -si
    fakerootという、疑似ルート環境でビルドするためです。
AURからインストールするため、公式サポートが受けられない点にご注意ください。

3. 設定方法

  • optimus-manager --switch nvidia nvidiaGPUを使う
  • optimus-manager --switch integrated 内臓GPUを使う
  • optimus-manager --switch hybrid 両方を使う
    その他公式gitを参考

結果

  • gnomeの設定でディスプレイが2つあることを確認しました。

まとめ

gpuってめんどくさい!

参考・引用

1
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?