Linux
xorg

メモ:Razer Brade 14(2017)にDebian Linux Busterをインストール

グラフィックがintelとnvidiaの2系統を持っているが、普通にインストールするとintel側のみ使用される。
HDMIポートはnvidia側のチップに接続されているため、そのままでは利用できない。

LinuxのOptimus周りはnouveau, bumblebee, nvidia, prime, render offloadingといった用語で、世代の違いと実装の違いでいろいろ系統が混沌としてて、ググるとどの記事がどの系統のものかわからなくて困った。

/etc/modules-load.d/modules.conf

nvidia-drmを追加する。
bumblebeeのパッケージが入ってるとblacklistに入れられているので除外するかbumblebeeをapt-get removeする。

nvidia-drm

/usr/share/X11/xorg.conf.d/20-nvidia.conf

ファイルを新しく作る。
intel側にはmodesettingsを、Nvidia側にはnvidiaのドライバを設定する。

Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Nvidia"
    Inactive       "intel"
EndSection

Section "Screen"
    Identifier     "Nvidia"
    Device         "Nvidia"
EndSection

Section "Device"
    Identifier "intel"
    Driver "modesetting"
    Option "AccelMethod" "sna"
    Option "TearFree" "True"
    Option "Tiling" "True"
    Option "SwapbuffersWait" "True"
    BusID "PCI:0:2:0"
EndSection

Section "Screen"
    Identifier     "intel"
    Device         "intel"
EndSection

Section "Device"
    Identifier "Nvidia"
    Driver "nvidia"
    Option "NoLogo" "True"
    BusID "PCI:1:0:0"
    Option "AllowEmptyInitialConfiguration"
EndSection

Section "ServerFlags"
    Option "IgnoreABI" "1"
EndSection

/etc/X11/Xsession.d/98xrandr-setprovideroutputsource

ファイルを新しく作る。

#/bin/sh
xrandr --setprovideroutputsource modesetting NVIDIA-0
xrandr --auto

xorgのモジュール周り

一部のモジュールがbumblebee用に別の場所にあるのでリンクを貼り直す。

cd /usr/lib/xorg/modules/extensions/
mv libglx.so libglx.so.orig
ln -s /usr/lib/nvidia/current/libglx.so ./

cd /usr/lib/xorg/modules/drivers/
ln -s /usr/lib/nvidia/current/nvidia_drv.so ./

参考にしたページ