How to Install & Use NVIDIA Driver in Ubuntu 24.04 | 22.04

Last updated: May 3, 2024 — Leave a comment

This is a step by step beginner’s guide shows how to install NVIDIA proprietary driver in Ubuntu. And, how to switch between Intel/AMD and NVIDIA GPU, run specific app/game with NVIDIA while leaving others rendered by integrated graphics card.

While installing Ubuntu, the wizard provides an option to install the NVIDIA proprietary driver alongside. If you didn’t enable that option, then here’s how to manually install it afterward.

Step 1: Enable Restricted Repository

The NVIDIA proprietary driver is a non-free software that is available in the restricted system repository.

That repository is usually enabled by default. Just in case, you can launch Software & Updates and verify by checking “Proprietary drivers for devices (restricted)” option.

Make sure ‘restricted’ repository enabled

After that, it’s also important to install all available updates! Which can be done either by using Software Updater

or press Ctrl+Alt+T to open terminal and run the command below instead:

sudo apt update && sudo apt upgrade -y

When done, restart your computer to apply updates if prompted!

Step 2: Install NVIDIA Driver

Now, search for and launch Additional Drivers utility. It will list available drivers for your device. Choose desire one (in my case, I selected nvidia-driver-535), then click “Apply Changes”.

There’ll be a little process bar in bottom of the app window. When done installing the driver, it prompts that “You need to restart the computer to complete the driver changes”. Just click on “Restart” button to apply.

Step 3: Switch Between NVIDIA and integrated GPU

For laptop users with hybrid graphics (Intel + NVIDIA in my case), just search for and launch NVIDIA Settings utility.

When it opens, you can navigate to PRIME Profiles tab, for switching between following GPU modes:

  • NVIDIA (Performance) – use NVIDIA only for the Desktop.
  • NVIDIA On-Demand – use integrated GPU (Intel in my case), and only NVIDIA when specified.

The Intel (Power Saving Mode) mode is grayed out. If you want to choose it, then press Ctrl+Alt+T to open up a terminal window, and run command instead:

sudo prime-select intel

After switching GPU, you need to restart computer to apply change!

To tell which GPU is currently in use, run command:

glxinfo |grep -E "OpenGL vendor|OpenGL renderer"

If command not found, run sudo apt install mesa-utils to install.

NOTE: In my NVIDIA GeForce 940M with nvidia-driver-535, the performance mode seems NOT being friendly with Wayland. Ubuntu will default to Xorg session when NVIDIA (Performance) mode enabled. If select to manually login Wayland, then it automatically falls back to Intel graphics (On-Demand mode).

Step 4: (Optional) System Status Menu Options to switch GPU mode

For the default GNOME Desktop, there’s an extension adds top-right system status menu option to switch GPU mode.

1. The extension however needs a free open-source tool called envycontrol. To install it, simply download the .deb package from its project page:

Then, press Ctrl+Alt+T to open up a terminal window, and run command to install the downloaded .deb package:

sudo apt install ~/Downloads/python3-envycontrol_*_all.deb

If you didn’t save it in Downloads folder, then drag’n’drop file into terminal after typing sudo apt install plus a space.

2. Next, search for and install Extension Manager from either Ubuntu Software or App Center (filter by Debian package).

Launch Extension Manager, navigate to ‘browse’ tab, finally search and install “GPU profile selector” extension.

Once installed, you can go top-right system status menu (aka Quick Settings) for the new menu options.

Step 5: Run Certain Apps via NVIDIA GPU while others by Intel

When in NVIDIA On-Demand, most things are rendered by integrated GPU (Intel in my case). If you want to run games or some apps using NVIDIA, then this step may help.

1. First, for CUDA apps, just open terminal (Ctrl+Alt+T) and run command:

sudo apt install nvidia-cuda-toolkit

Then there’ll be application-specific menu to tell it which device to use.

2. For other apps or games, just set environment variables.

__NV_PRIME_RENDER_OFFLOAD=1
__GLX_VENDOR_LIBRARY_NAME=nvidia

For example, run the command below from terminal to launch supertux2 (the classic jump & run game) and render via NVIDA GPU:

__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia supertux2

And, you can verify by running sudo apt install nvtop command, then run nvtop to monitor your GPU usage.

To make it permanent, just edit the .desktop shortcut file for that app or game. Depends on the app package, find it in following locations:

  • /usr/share/applications for deb and snap packages.
  • .local/share/applications for user added or app auto-created shortcuts.
  • /var/lib/flatpak/exports/share/applications for flatpak packages.

Once you found out the corresponding shortcut file, edit it and change the Exec line to look like:

Exec=env __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia supertux2

Finally, try launching the app or game from start menu or GNOME app grid, and verify by nvtop command.

Summary:

In this tutorial, I’ve showed you how to install NVIDIA driver in Ubuntu. In short, just enable ‘restricted’ repository, then select Apply a driver from “Additional Drivers” utility.

Next, you can use either NVIDIA Settings or prime-select command to switch between integrated and NVIDIA GPUs. And, by settings environment variables you may run certain apps/games with NVIDIA GPU while leaving others rendered by integrated GPU.

Twitter

I'm a freelance blogger who started using Ubuntu in 2007 and wishes to share my experiences and some useful tips with Ubuntu beginners and lovers. Please comment to let me know if the tutorial is outdated! And, notify me if you find any typo/grammar/language mistakes. English is not my native language. Contact me via [email protected] Buy me a coffee: https://ko-fi.com/ubuntuhandbook1 |

No Comments

Be the first to start the conversation.

Leave a Reply

Text formatting is available via select HTML.

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> 

*