#240 Added "How to Set NVIDIA as Primary GPU on Optimus-based Laptops" docs and assets
Merged 3 years ago by ankursinha. Opened 3 years ago by t0xic0der.
Unknown source optimus-prime-guide  into  master

file modified
+4 -15
@@ -1,17 +1,13 @@

  * xref:howto-file-a-bug.adoc[How to file a bug]

  

- 

  * xref:getting-started-guide.adoc[Getting started with Fedora]

  

- 

  * Installation

  ** xref:creating-and-using-a-live-installation-image.adoc[Creating and using a live installation image]

  ** xref:raspberry-pi.adoc[Fedora on Raspberry Pi]

  ** xref:anaconda/anaconda.adoc[Anaconda: the Fedora installer]

  *** xref:anaconda/anaconda_logging.adoc[Anaconda Logging]

  

- 

- 

  * Usage and customisation

  ** xref:dnf.adoc[Using the DNF software package manager]

  ** xref:repositories.adoc[Fedora Repositories]
@@ -47,28 +43,26 @@

  ** xref:firewalld.adoc[Controlling network traffic with firewalld]

  ** xref:managing-keyboard-shortcuts-for-running-app-in-gnome.adoc[Managing keyboard shortcuts for running an application in GNOME]

  ** xref:creating-a-disk-partition-in-linux.adoc[Creating disk partitions]

- ** xref:bumblebee.adoc[NVIDIA Optimus Bumblebee]

  ** xref:reset-root-password.adoc[Resetting a root password]

  ** xref:using-aide.adoc[Checking file integrity with AIDE]

  ** xref:getting-started-with-apache-http-server.adoc[Getting started with Apache HTTP Server]

  ** xref:how-to-edit-iptables-rules.adoc[How to edit iptables rules]

- 

+ ** NVIDIA

+ *** xref:bumblebee.adoc[NVIDIA Optimus Bumblebee]

+ *** xref:how-to-set-nvidia-as-primary-gpu-on-optimus-based-laptops.adoc[How to Set NVIDIA as Primary GPU on Optimus-based Laptops]

  

  * xref:getting-started-with-selinux.adoc[SELinux]

  ** xref:changing-selinux-states-and-modes.adoc[Changing SELinux states and modes]

  ** xref:troubleshooting_selinux.adoc[Troubleshooting SELinux]

  

- 

  * xref:upgrading.adoc[Upgrading to a new release]

  ** xref:dnf-system-upgrade.adoc[Upgrading Fedora using the DNF system upgrade]

  

- 

  * xref:kernel/overview.adoc[Kernel]

  ** xref:kernel/troubleshooting.adoc[Troubleshooting]

  ** xref:kernel/build-custom-kernel.adoc[Building a Custom Kernel]

  ** xref:kernel/howto-kernel-testday.adoc[Guide for Kernel Test Days]

  

- 

  * Virtualization

  ** xref:getting-started-with-virtualization.adoc[Getting started with virtualization (libvirt)]

  ** xref:installing-virtual-systems-with-gnome-boxes.adoc[Installing virtual operating systems with GNOME Boxes]
@@ -77,7 +71,6 @@

  ** xref:creating-windows-virtual-machines-using-virtio-drivers.adoc[Creating Windows virtual machines using virtIO drivers]

  ** xref:how-to-use-vmware.adoc[How to use Vmware Product's]

  

- 

  //FIXME * xref:autoupdates.adoc[AutoUpdates]

  //FIXME * xref:debug-dracut-problems.adoc[How to debug Dracut problems]

  //FIXME * xref:debug-systemd-problems.adoc[How to debug systemd problems]
@@ -92,15 +85,11 @@

  //FIXME * xref:uefi-with-qemu.adoc[Using UEFI with QEMU]

  //FIXME * xref:upgrading-fedora-online.adoc[Upgrading Fedora using package manager]

  

- 

- 

  * xref:creating-rpm-packages.adoc[Creating RPM packages]

  ** xref:create-hello-world-rpm.adoc[Creating a GNU Hello World RPM Package]

  

- 

  * Databases

  ** xref:installing-mysql-mariadb.adoc[Installing, Configuring and Troubleshooting MySql/MariaDB]

  

- 

  * FAQ

- ** xref:fedora-and-red-hat-enterprise-linux.adoc[Difference between Fedora and Red Hat Enterprise Linux]

+ ** xref:fedora-and-red-hat-enterprise-linux.adoc[Difference between Fedora and Red Hat Enterprise Linux] 

\ No newline at end of file

@@ -0,0 +1,149 @@

+ = How to Set Nvidia as Primary GPU on Optimus-based Laptops

+ 

+ include::{partialsdir}/3rdparty-message.adoc[]

+ 

+ === Introduction

+ The objective is to enable NVIDIA GPU of an Optimus-based laptop *all the time* and use it for every single activity.

+ Please do not use this guide if you want to render your desktop using the integrated GPU and specifically select applications to be rendered using the NVIDIA GPU.

+ 

+ NOTE: The steps listed here have been verified to be working on Fedora 32 Workstation. Please update your installation to include your experiences and any other tweaks that may be needed if you are using any other desktop environments.

+ 

+ NOTE: As Prime works less satisfactorily with Wayland server, following the steps provided in this guide would default the server to Xorg.

+ 

+ WARNING: This guide requires the secure boot to be **turned off** to load up the unsigned NVIDIA kernel modules.

+ 

+ In order to make all the rendering default to the NVIDIA GPU, you need the follow the steps very carefully.

+ 

+ First, you need to see if you really want to achieve this.

+ 

+ ==== Why would you want to do that?

+ 1. The use of NVIDIA GPU all the time would allow for smoother transitions and richer animation effects. Premium desktop environments like GNOME would benefit a lot from this.

+ 2. Enabling the NVIDIA GPU all the time would lead to lower CPU load and memory consumption which otherwise would have been high due to added in-memory video buffer.

+ 

+ ==== Why would you not want to do that?

+ 1. With the NVIDIA GPU used all the time, there would be a slight increase in battery consumption which should not be a concern if your device is used while being plugged in.

+ 2. Increased generation of heat from the all-the-time enabled NVIDIA GPU can be worrisome. You would not want to play AAA-titles on Proton while placing your laptop on your lap.

+ 

+ === Step #1: Update from the existing repositories

+ Execute

+ ----

+ sudo dnf update

+ ----

+ once to update all your packages first.

+ 

+ image:how-to-set-nvidia-as-primary-gpu-on-optimus-based-laptops-0.png[]

+ 

+ === Step #2: Add the RPMFusion repository for NVIDIA drivers

+ Then you need to add the *RPM Fusion repository for NVIDIA drivers*. To do that, open up *GNOME Software* and click on the *hamburger menu* (three horizontal lines) on the top-right corner. Then click on *Software Repositories* from the dropdown menu. There you will see this.

+ 

+ image:how-to-set-nvidia-as-primary-gpu-on-optimus-based-laptops-1.png[]

+ 

+ Select *RPM Fusion for Fedora 32 - Nonfree - NVIDIA Driver* and *ENABLE* it. It requires elevated privileges so enter your password and it will be done.

+ 

+ === Step #3: Update from the newly added repositories

+ Execute

+ ----

+ sudo dnf update --refresh

+ ----

+ to fetch all available updates from the newly added repository.

+ 

+ image:how-to-set-nvidia-as-primary-gpu-on-optimus-based-laptops-2.png[]

+ 

+ === Step #4: Install the driver and its dependencies

+ Execute

+ ----

+ sudo dnf install gcc kernel-headers kernel-devel akmod-nvidia xorg-x11-drv-nvidia xorg-x11-drv-nvidia-libs xorg-x11-drv-nvidia-libs.i686

+ ----

+ to get the driver and all necessary dependencies.

+ 

+ image:how-to-set-nvidia-as-primary-gpu-on-optimus-based-laptops-3.png[]

+ 

+ === Step #5: Wait for the kernel modules to load up

+ You **must** wait 5-10 minutes for the kernel modules to load. Please do not proceed to the next steps immediately.

+ 

+ === Step #6: Read from the updated kernel modules

+ Execute

+ ----

+ sudo akmods --force

+ sudo dracut --force

+ ----

+ This would force the configuration to be read from the updated kernel modules which now have the NVIDIA drivers in them.

+ 

+ === Step #7: Reboot your system

+ Wait for 3-5 minutes for the changes to take effect and then reboot your system.

+ 

+ Once your system has started, go to the *About* page in the *Settings* application. You are likely to see the following output.

+ 

+ image:how-to-set-nvidia-as-primary-gpu-on-optimus-based-laptops-4.png[]

+ 

+ This means that the driver installation was successful leading to the detection of two distinct video accelerators - internal and dedicated.

+ 

+ === Step #8: Edit the X11 configuration

+ Execute the following command to copy the display render details for the X11.

+ 

+ ----

+ sudo cp -p /usr/share/X11/xorg.conf.d/nvidia.conf /etc/X11/xorg.conf.d/nvidia.conf

+ ----

+ 

+ Once done, open up the `nvidia.conf` from the copy destination and edit it to add

+ ----

+ Option "PrimaryGPU" "yes"

+ ----

+ to every section of it.

+ 

+ For example, using `nano`

+ ----

+ sudo nano /etc/X11/xorg.conf.d/nvidia.conf

+ ----

+ and make changes.

+ 

+ The file should look like this. Your file should look similar to this.

+ 

+ image:how-to-set-nvidia-as-primary-gpu-on-optimus-based-laptops-5.png[]

+ 

+ You can see the additions in both sections.

+ 

+ Save it using `[Ctrl]+[S]` and exit out using `[Ctrl]+[X]`.

+ 

+ === Step #9: Reboot your system

+ Reboot your system and proceed to the next steps to verify the change in configuration.

+ 

+ === Step #10: Verify the configuration

+ Open a terminal and type in

+ ----

+ glxinfo | egrep "OpenGL vendor|OpenGL renderer"

+ ----

+ It should show your NVIDIA GPU.

+ 

+ image:how-to-set-nvidia-as-primary-gpu-on-optimus-based-laptops-6.png[]

+ 

+ Check on `screenfetch`.

+ ----

+ screenfetch

+ ----

+ It should show your NVIDIA GPU under the GPU name.

+ 

+ image:how-to-set-nvidia-as-primary-gpu-on-optimus-based-laptops-7.png[]

+ 

+ Check in your *Settings* application.

+ You would see something like this in the *About* page.

+ 

+ image:how-to-set-nvidia-as-primary-gpu-on-optimus-based-laptops-8.png[]

+ 

+ You can make other configuration changes using *NVIDIA X Server Settings* application.

+ Also the GPU would show activity in its utilization percentage to signify that it is actually working.

+ 

+ image:how-to-set-nvidia-as-primary-gpu-on-optimus-based-laptops-9.png[]

+ 

+ === References

+ Should you face issues while following these steps or if these do not match your use case,

+ feel free to convey your queries on https://ask.fedoraproject.org[Fedora Forums].

+ 

+ Here are the links you can refer to for obtaining more information.

+ 

+ 1. https://rpmfusion.org/Howto/Optimus[RPMFusion's Optimus How-to guide]

+ 2. https://rpmfusion.org/Howto/NVIDIA[RPMFusion's NVIDIA How-to guide]

+ 3. https://unix.stackexchange.com/questions/16407/how-to-check-which-gpu-is-active-in-linux[GPU Activity on UNIX StackExchange]

+ 4. https://www.reddit.com/r/Fedora/comments/bw4b0p/how_to_fedora_nvidia_prime/[Fedora Subreddit (zvitaly’s response only)]

+ 

+ Please do not refer to the misleading information available on this site https://www.if-not-true-then-false.com/2015/fedora-nvidia-guide/

Added 10 images and 1 asciidoc. Changed 1 asciidoc. Disposed off the earlier fork and created a new one. Added changes to a branch now ;)

Every remark made on #239 Added "How to Set NVIDIA as Primary GPU on Optimus-based Laptops" docs and assets has been considered and taken care of.

Perhaps good to increase the level here so "Nvidia" comes under "Usage and customisation"?

The rest looks good, but I need to build the docs to verify it before I can merge.

Metadata Update from @ankursinha:
- Pull-request tagged with: needs changes, needs committer review
- Request assigned

3 years ago

Do you mean "NVIDIA" would become a subtopic under the topic "Usage and customization" and that the two articles would be situated inside the "NVIDIA" subtopic?

1 new commit added

  • Moved NVIDIA to UnC topic
3 years ago

Moved NVIDIA to Usage and Customizations and the two articles inside it.

Pull-Request has been merged by ankursinha

3 years ago