/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.

grub-nvidia-entry.sh makes Grub load Nouveau instead of Nvidia drivers on normal basis and creates a new entry which loads Nvidia drivers.

Advantages

Why is this method preferred over Bumblebee?

Prerequisites

Supported Operating Systems

  • Fedora 26 ~ 28

Easy Setup

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

Usage

  • 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 the Linux kernel version and the presence of Nvidia modules.
  • make enable: Registers grub-nvidia-entry as a service and enables it. It will update all configurations on the next boot of a kernel update. 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.
  • make install: Registers grub-nvidia-entry as a service.
  • make uninstall: Disables grub-nvidia-entry and deregisters it.
  • make sign: Signs Nvidia modules for Secure Boot with SignNvidia.sh. Note that this 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

The script overwrites /usr/lib/systemd/system/switcheroo-control.service and /etc/grub.d/40_custom.

Issues