Nvidia DKMS or not?

As I understand the default way to install Nvidia drivers in EndeavourOS is as dkms (https://discovery.endeavouros.com/nvidia/nvidia-installer/2021/03/) while Arch wiki recommends dkms only for custom kernels.

Are there any possible disadvantages of dkms besides longer build time?

Desktop, RTX 3070 Ti, KDE.

Welcome aboard! :smile:

As far as I know, dkms is potentially better in case of a bigger update (including kernel(s) and nvidia driver updates). And like you said, it is good when using other kernels. The only downside is slower update.

But if you use e.g. UpdateInTerminal app or Welcome’s update button to update your system, you should be safe even if you use nvidia and/or nvidia-lts driver packages. UpdateInTerminal checks that when kernels (linux and linux-lts but not others) are updated, also corresponding nvidia drivers must be updated. If the nvidia update is missing, UpdateInTerminal warns you about it.

2 Likes

I guess another advantage of DKMS could be that you can downgrade the driver (e.g. 495 causes issues for some people) without downgrading the kernel? (not completely sure how I would do that though)

I haven’t tried downgrading with nvidia-dkms driver, and wouldn’t recommend it either.
It might work temporarily, but as usual with downgrading, it is not a long term solution because it can bring more issues after updating other packages.

Having said that, program downgrade is an easy tool for downgrading a package.

exactly what @manuel said, using nvidia-dkms will make sure that modules are getting rebuilded against installed kernels, which adds a layer of safety in case kernel updates before Nvidia, that has happened some times in the past and can happen any time in the future… And i misconception is that the packages nvidia and nvidia-dkms holding the driver, they ship sources for the kernel modules so only part of it. The “driver” and libs comes with nvidia-utils in both cases.

1 Like

With nvidia-dkms on a Ryzen CPU it only takes a minute or so to build the nvidia drivers.

Very very occasionally they fail to build on newer kernels (I build a custom linux-hardened) - this is normally due to a new major version of gcc & gcc-libs - you can either downgrade gcc or wait for the nvidia drivers to catch up. This happens rarely - once a year or so.