既存のドライバがあるなら削除
sudo apt-get --purge remove nvidia-*
sudo apt-get --purge remove cuda-*
#secure boot無効化
(Without this step we will not be able install efficient NVIDIA driver blob.)
UEFI設定(ロゴでF2押下)
supervisor passwordを設定
secure boot -> disable
(passwordを空に戻してもsecure bootの設定は継続されるっぽいけどその後の正確な挙動はわからない)
F10 -> YES
#add repository, install NVIDIA driver
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
sudo apt dist-upgrade
sudo apt install nvidia-370
(or 367)
#不足のintel video firmwareをinstall
cd /tmp/
wget http://git.kernel.org/cgit/linux/kernel/git/firmware/linux-firmware.git/tree/i915/skl_guc_ver6_1.bin
wget http://git.kernel.org/cgit/linux/kernel/git/firmware/linux-firmware.git/tree/i915/kbl_dmc_ver1_01.bin
sudo cp /tmp/kbl_dmc_ver1_01.bin /lib/firmware/i915/kbl_dmc_ver1.bin
sudo cp /tmp/skl_guc_ver6_1.bin /lib/firmware/i915/skl_guc_ver6.bin
sudo update-initramfs -k $(uname -r) -u
#install bumblebee
sudo apt install bumblebee
sudo apt update
/etc/bumblebee/bumblebee.conf を編集
KernelDriver=nvidia
になっていることを確認
nvidia-current
をすべてnvidia-370
(インストールしたversion)に置き換え
#install mesa-util
sudo apt install mesa-util
#reboot
エラってもエラってなくてもとりあえずreboot
#TEST by glxgears
OnBoard Rendering
glxgears -info
Check GL_RENDERER = Mesa DRI Intel(R) HD Graphics 520
Geforce940MX Rendering
primusrun glxgears -info
Check GL_RENDERER = Geforce 940MX...
上記通り、primusrun <app>
、或はoptirun <app>
を使うことでGeforce利用でアプリを起動します。
どうもprimusrunの方が消費電力やframe rate固定等色々優れているというか、optirunがlegacyなのかも。
たしかにprimusrunがFPSを59~60に貼り付けていたのに対して、optirunはFPSがコンスタントに300以上出していた。