Nvidia driver on Aeon and Kalpa

Vortex Acherontic 1366 words 7 minutes linux aeon kalpa nvidia
Nvidia brand logo

Kalpa and Aeon are Wayland only Linux Distribution. This means nVidia GPUs and drivers not supporting Wayland are not going to work!
This applies to any GPU only supported by the 390 or older driver series or the Fermi (GTX 400/500) and older micro architectures.

It is recommended to have at least a nVidia GPU supported by driver version 496.44 or newer. Older drivers might work but with limited user experience and is not recommended.

Attention: Follow every step carefully as the installation may otherwise end in an unbootable/broken system, with broken auto updates or missing display output. Also throughout this guide please reboot only if this has been explicitly stated.

Determine supported driver driver package

It is important to determine the supported driver version first. The easiest way is by looking up nVidias driver download page. Do not download the nVidia Installer from there as it will not work with Kalpa or Aeon.

If you know the micro architecture of your GPU the following should work with Kalpa or Aeon:

  • Kepler (GeForce 600, 700, 800M) with limited functionality
  • Maxwell (GeForce 700, 800M, 900)
  • Pascal (GeForce 10 series, Quadro P, Tesla P4)
  • Turing (GeForce 16, 20)
  • Ampere (GeForce 30)
  • Ada Lovelace (GeForce 40)
  • Blackwell (GeForce 50)

The best experience you will have with Turing and newer as these GPUs can also make use of nVidias open Kernel Module.

If the GPU is supported by the 500 driver series the G06 driver package is required. For 400 series G05. Everything else is not supported.

Setup system

Before we can begin with the driver installation it is important to do the following config changes first.

Setup zypper

  • Open up a terminal and enter: sudo vim /etc/zypp/zypper.conf scroll down until you read [commit]
  • Replace # autoAgreeWithLicenses = no with autoAgreeWithLicenses = yes (Note: # is removed and no replaced by yes).
  • Save the file. (ESC :x Enter)

This is important to not break Kalpa and Aeon's auto update as the nVidia driver packages requires the user to agree with the nVidia EULA. As the automated update is running in the background no user interaction is possible here.

Setup transactional-update

  • Next type sudo cp /usr/etc/transactional-update.conf /etc
  • Followed by: sudo vim /etc/transactional-update.conf
  • Replace # ZYPPER_AUTO_IMPORT_KEYS=0 with ZYPPER_AUTO_IMPORT_KEYS=1 (Note: # is removed and 0 replaced with 1).
  • Save the file. (ESC :x Enter)

This is important as the nVidia repository signing key might change at any given time. If the system dose not import the key by itself the auto updated might break at any given time and/or the health checker might run havoc and cause the system to permanently reboot.

Add nVidia driver repository and install driver

Still in Terminal run sudo transactional-update pkg in openSUSE-repos-MicroOS-NVIDIA.

G06 with open source Kernel module

Recommended for: Turing, Ampere, Ada Lovelace, Blackwell

Install the driver using:

sudo transactional-update -c -i pkg in nvidia-open-driver-G06-signed-kmp-default
sudo transactional-update -c -i pkg in nvidia-video-G06 nvidia-compute-utils-G06
sudo transactional-update -c initrd

Reboot. The driver should work right away.

G06 with closed source kernel module

Recommended for: Maxwell and Pascal

Installing the driver can be done using: sudo transactional-update -c pkg in nvidia-driver-G06-kmp-default nvidia-video-G06 nvidia-gl-G06 nvidia-compute-G06.

The driver will not load yet if you have Secure Boot enabled. Continue with secure boot below after you have rebooted the system.

G05

Recommended for: Kepler

Note: While these driver series has worked to some degree with Kalpa and Aeon in our tests they do not provided a very good user experience due to lack of modern Wayland support. If using these drivers expect issues which can not be fixed.

Installing the driver can be done using: sudo transactional-update -c pkg in nvidia-gfxG05-kmp-default x11-video-nvidiaG05 nvidia-glG05 nvidia-computeG05.

For a successful driver installation we also need to configure a few additional things:

  • Append rd.driver.blacklist=nouveau to sudo vim /etc/kernel/cmdline
  • Create a new file sudo touch /etc/modprobe.d/nvidia.conf and enter: options nvidia-drm modeset=1
  • Then run sudo transactional-update -c initrd

The driver will not load yet if you have Secure Boot enabled. Continue with secure boot below after you have rebooted the system.

Secure boot

For G06 with the open kernel module this step is not required as the open module is already signed by the systems own secure boot keys.

With the closed source driver module the MOK (machine owner keys) have to be manually enrolled in order for the driver to get loaded. To do so run:

G06 with closed source kernel module: sudo mokutil --import /usr/share/nvidia-pubkeys/MOK-nvidia-driver-G0<X>-<driver_version>-<kernel_flavor>.der and provide an easy to type and remember password as we will need it at the next reboot.

G05: sudo mokutil --import /usr/share/nvidia-pubkeys/MOK-nvidia-gfxG0<X>-<driver_version>-<kernel_flavor>.der and provide an easy to type and remember password as we will need it at the next reboot.

Afterwards reboot. The system should show a Perform MOK management screen.
Choose Entoll MOK followed by Continue and answer Enroll the keys(s) with Yes then provide the password set while using mokuitls. If the enrollment failed it can be re-enrolled using the above commands again.

Nvidia MOK Management

Optimus

For Laptop users which do have an integrated and a dedicated (presumably nVidia) GPU, also called Optimus Laptop, may want to read the following.

Offloading

To offload an application or game to the dedicated nVidia GPU it is required prefix the launch command with a few environment variables to make them run on the nVidia GPU:

  • __GLX_VENDOR_LIBRARY_NAME=nvidia
  • __NV_PRIME_RENDER_OFFLOAD=1
  • __VK_LAYER_NV_optimus=NVIDIA_only

For Steam you can add the following as a game launch option for example:
__GLX_VENDOR_LIBRARY_NAME=nvidia __NV_PRIME_RENDER_OFFLOAD=1 __VK_LAYER_NV_optimus=NVIDIA_only %command%

You can verify this by running nvidia-smi from terminal and see if the requested application is listed in the Processes table at the bottom of the screen.

Nvidia SMI

Power management

If the nVidia GPU is of the Pascal (GTX 10) or older micro architecture it is recommended to install additional software, as these GPUs stay powered on if not in use. To forcefully power them down or up install prime-select and bbswitch as follows:

sudo transactional-update pkg in bbswitch-kmp-default suse-prime
After the next reboot also enable the prime-select service as follows:
sudo systemctl enable --now prime-select.service

To set which GPU should be used at boot time run: sudo prime-select boot intel|offload. The intel mode will also work for integrated AMD iGPUs.

To switch the mode on-demand you can run: sudo prime-select intel|offload log out and in again. The nVidia GPU should now be powered on or off and the driver loaded or unloaded depending on which mode has been chosen.

Note: Only use intel or offload with out the pipe Note 2: The nvidia mode does only work on X11 which is not supported on Kalpa and Aeon

For a graphical user interface we recommend OptimusUI which we've developed for this purpose.

Addional notes about driver support

nVidia installer: Do not use the driver installer provided by nVidia it does not work with Kalpa and Aeon as it does not expect a Linux distribution to be immutable and will therefore write certain files into the wrong directories as well as DKMS will fail to generate the kernel module.
390 or older: These drivers will not work with Kalpa and Aeon
496.44 or newer: Recommended by KDE for Plasma 6 with Wayland
555.58 or newer: Is recommended for the best possible Wayland experience with the proprietary nVidia driver. As these driver series and newer contain a lot of improvements and tweaks to work best with Wayland.

Sources