SDB:NVIDIA SUSE Prime

移動先: 案内, 検索

テンプレート:SDB navbar

openSUSE で確認済み おすすめの記事 関連する記事
Icon-checked.png

Icon-manual.png


Icon-help.png

テンプレート:Nvidia navbox

SUSE Prime は Optimus ラップトップで Intel GPU と NVIDIA GPU の切り替えを行うツールです。 Bumblebee の代替として提供されています。

SUSE Prime を使用すると、全てのアプリケーションは Intel もしくは NVIDIA のいずれかのドライバを使用するようになります。切り替えは prime-select ツールを使用しますが、切り替え後に設定を反映するため、いったんログアウトしてログインしなおす必要があります。

Process-stop.png
警告!
SUSE Prime は X サーバを使用している場合にのみ利用できます。 Wayland では動作しません。


前提条件

Optimus ラップトップがあり、 NVIDIA と Intel の間で GPU を切り替えたいとします。


手順

  • NVIDIA のプロプライエタリドライバをインストールします:SDB:NVIDIA drivers
  • /etc/X11/xorg.conf ファイルが存在せず、かつ /etc/X11/xorg.conf.d ディレクトリ内に "ServerLayout", "Device", "Screen" のセクションを持つ設定が全く存在しないことを確認します (クリーンインストールであれば問題はありません)。
  • suse-primebbswitch-kmp-default の各パッケージをインストールします。

使用方法

Intel と NVIDIA の間で GPU を切り替えるには、下記のコマンドを root で実行します:

# prime-select boot nvidia

または

# prime-select boot intel

あとはいったんログアウトしてログインし直すことで、設定が適用されるようになります。

注意: Optimus ラップトップを使用している場合、追加で nvidia カードの電源が落ちていることを確認する手順が必要となります。また、 systemd サービスもインストールする必要があります。

詳しくは下記をお読みください: https://github.com/openSUSE/SUSEPrime

確認方法

現在使用中の GPU を確認するには、下記のようなコマンドを実行してください:

Intel の場合

# xrandr --listproviders
    Providers: number : 1
    Provider 0: ... associated providers: 0; name: modesetting
# glxinfo | grep 'OpenGL renderer string'
    OpenGL renderer string: Mesa DRI Intel(R) Ivybridge Mobile

NVIDIA の場合

# xrandr --listproviders
    Providers: number : 2
    Provider 0: ... associated providers: 1; name: NVIDIA-0
    Provider 1: ... associated providers: 1; name: Intel
# glxinfo | grep 'OpenGL renderer string'
    OpenGL renderer string: GeForce GT 640M LE/PCIe/SSE2

動作の詳細

prime-select スクリプトはシステム内の下記 2 つの設定変更を行います:

  • X サーバの GLX 拡張を、オリジナル実装と NVIDIA 実装との間で切り替えます。
  • /usr/share/prime/xorg-nvidia.conf または /usr/share/prime/xorg-intel.conf にある設定ファイルを、 /etc/X11/xorg.conf.d ディレクトリにコピーします。

Intel オプションを選択した場合、 X サーバは NVIDIA カードを完全に無視して動作するようになります。これにより、 NVIDIA ドライバはスリープ状態になります。

NVIDIA オプションを選択した場合、 X サーバは両方のカードを使用します。 NVIDIA は描画用として、 Intel は出力プロバイダ用として使用します。出力プロバイダの設定は、 X サーバの起動時に自動設定されます。

設定のカスタマイズ

X 設定内の "Screen", "Device", "ServerLayout" を変更したい場合は、それぞれ /usr/share/prime/xorg-nvidia.conf または /usr/share/prime/xorg-intel.conf にある設定を変更してください。

その他のセクション (例: 入力デバイス等) については、 /etc/X11/xorg.conf.d ディレクトリ内にファイルを配置して設定してかまいません。

トラブルシューティング

Xorg/Wayland

選択を行ったにも関わらず Nvidia ドライバが有効化されない場合、 Wayland プロトコルを利用している可能性が考えられます。使用している X サーバの種類を確認するには、まず下記のように入力して実行します:

# loginctl 
    SESSION  UID USER   SEAT  TTY
     1 1000 youruser seat0

上記でセッションを確認したら、後は下記のように入力して実行します:

# loginctl show-session 1 | grep Type
    Type=x11

x11 ではなく wayland と表示される場合、 Wayland を利用してしまっていることになります。

X11 を利用するように設定するには:

下記のファイルをエディタなどで開きます:

/etc/gdm/custom.conf

下記の箇所を探して:

#WaylandEnable=false

下記のように変更します:

WaylandEnable=false

ファイルを保存したあと再起動すれば、設定が適用されます。

表示がおかしくなる問題

Nvidia を有効化していると、表示がおかしくなる問題が発生する場合があります。この問題を回避するには、 "PRIME Synchronization" (PRIME 同期) と呼ばれる機能を有効化しなければなりません。

下記のファイルをエディタで作成します:

/etc/modprobe.d/nvidia-drm-nomodeset.conf 

ファイル内には下記のような内容を入力します:

options nvidia_drm modeset=1 

ファイルを保存して終了し、下記のコマンドを実行します:

# sudo dracut -f

あとはシステムを再起動するだけです。

Process-stop.png
警告!
設定によっては PRIME synchronization の機能が動作せず、 X サーバが起動できなくなってしまう場合があります。このような場合は、作成した /etc/modprobe.d/nvidia-drm-nomodeset.conf ファイルを削除したあと再度 dracut -f を実行し、システムを再起動してください。


Optimus ラップトップでのインストーラがフリーズする際の回避方法

1. openSUSE Tumbleweed のライブ USB/DVD を利用して起動します。

2a. UEFI を使用している場合は "installation" の項目を選んで "e" を押し、 "installation" セクションの設定編集を行います。 "linuxefi /boot/vmlinuzxxx" で始まる行に移動し、 "splash=silent" の後ろにスペースをあけて "nomodeset" (引用符は削除してください) と入力し、 F10 を押して起動してください。これによりインストーラがフリーズしなくなるはずです。

2b. 従来型の BIOS ブートの場合は "installation" (インストール) を選んで "F5" を押します。表示されたメニューで "nomodeset" を選んで Enter を押します。すると、 "F5 Kernel" ("F5 カーネル") 内に "nomodeset" と表示されるはずですので、あとは Enter を押してインストールを開始してください。これによりインストーラがフリーズしなくなるはずです。

3. openSUSE Tumbleweed をインストールします。

4. リポジトリを更新してシステムをアップグレードします:

$ "sudo zypper ref && sudo zypper dup". 

5. システムを再起動します。

6. あとは nomodeset カーネルオプションを削除します。

下記のファイルを編集します:

/etc/default/grub

下記で始まる行を探します:

"GRUB_CMDLINE_LINUX_DEFAULT="

下記のキーワードを削除します:

nomodeset

7. あとは grub を更新します。

sudo grub2-mkconfig -o /boot/grub2/grub.cfg

8. 公式の文書 (https://ja.opensuse.org/SDB:NVIDIA_drivers) に従って nvidia ドライバをインストールします。

9. 公式の文書 (https://ja.opensuse.org/SDB:NVIDIA_SUSE_Prime) に従って suse-prime をインストールし、動作をテストしてください。

10. 最後にシステムを再起動すれば完了です。