Revision 9 as of 2016-12-16 14:23:11

Clear message
Edit Info Other
Create account
Login
Howto/

Optimus

Introduction

There are additional steps needed to integrate the package with optimus.

Also note that NVIDIA currently only support "outputsource" and not "offloadsink". It means that you cannot disable the dGPU (nvidia). The current workaround is to reboot onto the free Software version using an alternative grub2 boot menu.

!!! BIG FAT WARNING - This is still experimental documentation, only experimented users should follow. I hightly recommands to have another PC

GLVND enabled mesa

This is optional for optimus, and will provide a glvnd enabled mesa that will replace the fedora version. Once installed, it will be easier to switch between FOSS stack (nouveau) and the binary driver (nvidia). The long term plan is to have the switch enabled in the fedora mesa package (see rhbz#1388810 ).

Note: Copr is not multilibs compliant, you need to copy the x86_64 repo as a new file and replace "arch" to i386, if using 32bit programs.

dnf copr enable kwizart/glvnd
dnf update

KMS for nvidia

Enable Kernel Mode Setting for nvidia-drm, this is needed for buffer sharing with the intel adapter:

grubby --update-kernel=$(uname -r) --args="nvidia-drm.modeset=1" --remove-args="video=vesa:off"

 [ -f /boot/grub2/grub.cfg ] && grub2-mkconfig -o /boot/grub2/grub.cfg

 [ -f /boot/efi/EFI/fedora/grub.cfg ] && grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg

Additional Configuration

dnf update xorg-x11-server\* --enablerepo=updates-testing
rpm -q xorg-x11-server-Xorg
xorg-x11-server-Xorg-1.19.0-2.fc25

You will need another xorg config snipet

sudo curl -o /etc/X11/xorg.conf.d/nvidia.conf https://fedorapeople.org/~jwrdegoede/10-nvidia-driver.conf

Please verify to Update the BusID earch GPU, specially for the nvidia device.

cat>/etc/X11/xorg.conf<<EOF
# RPM Fusion - nvidia-xorg.conf
# 

Section "ServerLayout"
    Identifier "layout"
    Screen 0 "nvidia"
    Inactive "intel"
EndSection

Section "Device"
    Identifier "intel"
    Driver "modesetting"
    # Change BusID if necessary. Tips: (lspci | grep VGA) (Change 00:02.0 to 0:2:0)
    BusID "PCI:0:2:0"
    Option "AccelMethod"  "none"
EndSection

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

Section "Device"
    Identifier "nvidia"
    Driver "nvidia"
    # Change BusID if necessary. Tips: (lspci | grep 3D) (Change 01:00.0 to 1:0:0)
    BusID "PCI:1:0:0"
    Option "AllowEmptyInitialConfiguration"
EndSection

Section "Screen"
    Identifier "nvidia"
    Device "nvidia"
EndSection
EOF


cat>/etc/X11/xinit/xinitrc.d/05-nvidia.sh<<EOF
#!/bin/bash

xrandr --setprovideroutputsource modesetting NVIDIA-0
xrandr --auto

EOF
chmod +x /etc/X11/xinit/xinitrc.d/05-nvidia.sh

Others Display Manager tweaks, needed for GDM, KDM, LightDM, etc:

https://wiki.archlinux.org/index.php/NVIDIA_Optimus#Display_Managers

FAQ

References