How to use Ubuntu Frame with Nvidia¶
This document outlines how to enable support for Nvidia GPUs for use with Ubuntu Frame.
If you require more outputs, or higher performance, you might decide to use Nvidia GPUs in your solution. Nvidia only provides proprietary drivers for their GPUs, so there’s additional steps required to get it working.
System preparation¶
The steps and requirements differ by the operating system in use, choose the one matching your deployment:
On classic Ubuntu, it is enough to install the drivers on the host.
For example, to install the 570 driver version, issue the following:
sudo ubuntu-drivers install nvidia:570
You can find out more at Ubuntu Server’s NVIDIA drivers installation.
On Ubuntu Core 22, the drivers come with the kernel snap, but need to be assembled on device for licensing reasons. To do this, install the nvidia-assemble snap:
sudo snap install nvidia-assemble --track 22
The userspace libraries needed for software to communicate with the kernel drivers are supplied by the nvidia-core22 snap:
sudo snap install nvidia-core22
You will need to make sure Ubuntu Frame is from the 22 track:
sudo snap refresh ubuntu-frame --channel 22
Avoid the mesa-core22 snap
It might be that you already have another provider of the graphics-core22 interface installed - likely the default of mesa-core22,
in which case you’ll want to disconnect Ubuntu Frame (and any application snaps) from it, and connect to the Nvidia one:
sudo snap disconnect ubuntu-frame:graphics-core22
sudo snap connect ubuntu-frame:graphics-core22 nvidia-core22
To avoid having to do the above, make sure nvidia-core22 is installed before any snaps consuming the interface. They will get connected to the only provider on the system by default.
If you’d like to fully switch over, uninstall the Mesa snap and connect all the consumers to the Nvidia provider:
sudo snap remove mesa-core22
for plug in $( snap connections --all | grep :graphics-core22 | awk '{ print $2 }' ); do
sudo snap connect "$plug" nvidia-core22
done
On Ubuntu Core 24, the drivers and userspace libraries come in components of the kernel snap. To find out which version is available
sudo snap set pc-kernel nvidia-stream=570
You will need to make sure Ubuntu Frame is from the 24 track:
sudo snap refresh ubuntu-frame --channel 24
Verification¶
First, to verify that your setup works, reboot to load the new drivers:
sudo reboot
Next, check that the Nvidia driver was loaded and the devices node is there:
$ sudo dmesg | grep NVRM
[ 830.693443] NVRM: loading NVIDIA UNIX x86_64 Kernel Module 570.158.01 Tue Apr 8 12:41:17 UTC 2025
$ ls -l /dev/nvidia
/dev/nvidia
Check Ubuntu Frame logs for its use of Nvidia.
You want to see GLRenderer detailing the GPU and driver in use:
$ snap logs -n1000 ubuntu-frame | grep -E "GL (vendor|renderer|version):"
... GLRenderer: GL vendor: NVIDIA Corporation
... GLRenderer: GL renderer: NVIDIA GeForce RTX 2070 Super/PCIe/SSE2
... GLRenderer: GL version: OpenGL ES 3.2 NVIDIA 570.158.01
Finally, run graphics-test-tools.glmark2-es2-wayland to check that clients can use it, too:
sudo snap install graphics-test-tools
sudo snap install graphics-test-tools --channel 22
sudo snap install graphics-test-tools --channel 24
$ sudo graphics-test-tools.glmark2-es2-wayland
=======================================================
glmark2 2023.01
=======================================================
OpenGL Information
GL_VENDOR: NVIDIA Corporation
GL_RENDERER: NVIDIA GeForce RTX 2070 Super/PCIe/SSE2
GL_VERSION: OpenGL ES 3.2 NVIDIA 570.158.01
# ...
Conclusion¶
Ubuntu Frame supports Nvidia GPUs across Ubuntu and Ubuntu Core, delivering the most value and performance out of your choice of hardware.