グラフィックが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 ./
参考にしたページ
- https://wiki.archlinuxjp.org/index.php/NVIDIA_Optimus
- http://zhehou.blogspot.jp/2014/07/razer-blade-14-touchpad-multitouch-in.html
- https://help.ubuntu.com/community/RazerBlade
- https://devtalk.nvidia.com/default/topic/957814/linux/prime-and-prime-synchronization/
- https://insider.razerzone.com/index.php?threads/2nd-monitor-support-for-razer-blade-1060gtx-intel-7700-on-antergos.21081/
- https://github.com/binarypie/linux-notes/wiki/Razer-Blade-14