Nvidia-xrun

From ArchWiki
Jump to navigation Jump to search

nvidia-xrun はディスクリートの NVIDIA グラフィックを使って別個に X を起動するユーティリティです。少し複雑な手続きを踏みますが (Linux ドライバーの観点から) GPU を完全に活用できます。

インストール

以下のパッケージをインストールしてください:

設定

適切なバス ID を設定

AUR から nvidia-xrun をインストールした場合、バス ID は /etc/X11/nvidia-xorg.conf に設定されるため、このセクションはスキップしてかまいません。

GitHub リポジトリから nvidia-xrun をダウンロードした場合はバス ID の設定が必要です。

ディスプレイデバイスのバス ID を確認してください:

$ lspci | grep NVIDIA

大抵はバス ID は 1:0:0 になります。1:0:0 以外の場合は以下のように /etc/X11/nvidia-xorg.conf.d/30-nvidia.conf を作成して適切なバス ID を設定してください:

/etc/X11/nvidia-xorg.conf.d/30-nvidia.conf
Section "Device"
    Identifier "nvidia"
    Driver "nvidia"
    BusID "PCI:2:0:0"
EndSection

また、同じファイルで nvidia の設定を調整することもできます:

/etc/X11/nvidia-xorg.conf.d/30-nvidia.conf
Section "Screen"
    Identifier "nvidia"
    Device "nvidia"
    #  Option "AllowEmptyInitialConfiguration" "Yes"
    #  Option "UseDisplayDevice" "none"
EndSection

ウィンドウマネージャの自動起動

~/.nvidia-xinitrc を作成して、使用したいウィンドウマネージャの起動コマンドを記述してください:

openbox-session

上記のように設定することでアプリを指定しなくても以下のコマンドで起動できるようになります:

nvidia-xrun

bbswitch を使って NVIDIA カードを管理

NVIDIA のカードが不要なときは、bbswitch を使ってオフにできます。nvidia-xrun は自動的にウィンドウマネージャを起動して NVIDIA カードを立ち上げます。

起動時に bbswitch モジュールをロード:

# echo 'bbswitch ' > /etc/modules-load.d/bbswitch

起動時は nvidia モジュールを無効化:

# echo 'options bbswitch load_state=0 unload_state=1' > /etc/modprobe.d/bbswitch.conf 

再起動後、NVIDIA カードはオフになります。bbswitch の状態を問い合わせるには:

$ cat /proc/acpi/bbswitch  

強制的にカードのオンオフを切り替えるには:

# tee /proc/acpi/bbswitch <<<OFF
# tee /proc/acpi/bbswitch <<<ON

bbswitch について詳しくは Bumblebee-Project/bbswitch を参照してください。

使用方法

別の tty に切り替えて、ログインしたら nvidia-xrun [app] を実行してください。

トラブルシューティング

Steam を直接 nvidia-xrun で起動しても正しく動作しません。openbox などのウィンドウマネージャを使ってください。