/Grub-Nvidia-Entry

Enable Nvidia driver only with the last entry in grub.

Primary LanguageShellGNU General Public License v3.0GPL-3.0

Grub-Nvidia-Entry

If you installed Nvidia drivers through Negativo17 or RPMfusion, the Nvidia card would always be on by default. As the dedicated GPU consumes a lot of power, it is a significant problem to those using laptops.

Features

  • grub-nvidia-entry.sh makes Grub load Nouveau instead of Nvidia drivers on normal basis and creates a new entry which loads Nvidia drivers.
  • nnswitch.sh lets you switch between Nouveau and Nvidia drivers within seconds.

Usage

  • nnswitch.sh: Switch to Nouveau or Nvidia proprietary dirvers. You'll be brought to the login screen right after the switch. The whole process should be around 5 seconds.

Advantages

Why is this method preferred over Bumblebee?

Prerequisites

Supported Operating Systems

  • Fedora 26 ~ 29

Installation

Easy Setup

  • To make the script do everything automatically, run make enable && make.
  • To completely remove everything, run make uninstall.

All Options

  • make or make run: Runs grub-nvidia-entry.sh. Changes take effect on the next boot.
    1. Current session: make / make run
    2. Next boot: changes should take effect
  • make force: Same as running make, but without checking Linux kernel's version and the presence of Nvidia modules.
  • make enable: Registers grub-nvidia-entry.service and gdm-nvidia-wayland-switch.service and enables them. grub-nvidia-entry.sh will update all configurations on the next boot. However, you'll have to reboot again to see the changes.
    1. Current session: make enable / Kernel update
    2. Next boot: grub-nvidia-entry.sh executes
    3. Second boot: changes should take effect
  • make disable: Disables grub-nvidia-entry.service and gdm-nvidia-wayland-switch.service.
  • make install: Registers grub-nvidia-entry.service and gdm-nvidia-wayland-switch.service.
  • make uninstall: Deregisters and uninstalls all components.
  • make sign: Signs Nvidia modules for Secure Boot with SignNvidia.sh. Note that this is NOT included in make enable and should be re-run MANUALLY on every kernel update.

GPU Verification

Intel/Nouveau

iGPU: glxgears -info | grep GL_VENDOR image dGPU(Nouveau): DRI_PRIME=1 glxgears -info | grep GL_VENDOR image

Intel/Nvidia

glxgears -info | grep GL_VENDOR image

Caution

Full installation overwrites /usr/lib/systemd/system/switcheroo-control.service, /etc/grub.d/40_custom, /usr/lib/udev/rules.d/61-gdm.rules, and /etc/gdm/custom.conf.

Issues

  • There's an upstream bug that prevents Gnome from detecting dedicated GPU when Secure Boot is on. DRI_PRIME=1 works fine though. A workaround is to disable Secure Boot for now.
  • Upstream made a change to disable GDM's ability to launch Wayland backend if Nvidia proprietary drivers are used. However, GDM seems to be not regaining the ability even after the drivers are unloaded[need confirmation]. A workaround is applied in the commit, 382ddeb.

Todo

  • RPM package
  • Better documentation for user to check what went wrong.
  • Gnome extension

Development Stopped

I've switched to another laptop with AMD graphics card.