Nvidia and lts, What dkms modules are required?

I installed linux-lts as a backup kernel on a Lenovo Z510 notebook with Intel graphics with no problems; broadcom-wl-dkms was installed automatically. However, on a desktop with Nvidia graphics I could never get linux-lts to boot until some(?) dkms versions were used instead of normal versions. My Nvidia card (GK104 GeForce GTX 770) uses the 435 driver so I don’t need any 390xx modules.

(Removed) nvidia
(Added) dkms
(Added) nvidia-dkms
(Added) linux-lts
(Added) linux-lts-headers

Linux-lts now boots. It did take a long time to build though. I also modified grub to set the non-lts kernel as default.

Question 1
I did not replace nvidia-installer with nvidia-installer-dkms. Should the dkms version be used?

Question 2
I noticed that there is an nvidia-lts. Should I use it too or instead of one of the above?

Question 3
I totally ignored the zen and hardened modules. Am I correct in assuming that I don’t need either?

Yes. At this point in time, you need to install linux-headers and/or linux-lts-headers before running nvidia-installer-dkms.
This is being worked on.

Not sure if both can exist simultaneously, maybe someone else could be more specific

Yes, it should be safe to ignore zen and hardened unless you specifically install one or the other

Pudge

2 Likes

Question 2: nvidia-dkms should cover both nvidia and nvidia-lts, so only nvidia-dkms is needed among these three.

3 Likes

@CMarch There seems to be a lot of confusion about dkms. You either use the dkms version or the standard version of Nvidia drivers. Dkms requires linux headers. So if you use nvidia-dkms then you need to install the corresponding headers. So you would be using the nvidia-dkms-installer for the dkms version after installing the headers.

current kernel (linux-headers)
lts kernel (linux-lts-headers)
zen kernel (linux-zen-headers)
hardened kernel (linux-hardened-headers)

So you only need the headers if you are using that specific kernel.
Otherwise if you are installing standard Nvidia then you would be using the
nvidia-installer.

You can also install nvidia with pacman

sudo pacman -S nvidia nvidia-utils lib32-nvidia-libgl nvidia-settings

The same practice goes for Broadcom if you are using dkms for it. You need to install the same corresponding headers for what ever kernel Broadcom is being used on.
So broadcom-wl-dkms requires the appropriate corresponding headers to be installed.
The standard broadcom-wl does not.

Edit: I’m still unsure at this stage if the headers are going to be part of the install of dkms as it’s still being worked on. But at any rate they need to be installed for dkms.

An essential feature of DKMS is that it automatically recompiles all DKMS modules if a new kernel version is installed. This allows drivers and devices outside of the mainline kernel to continue working after a Linux kernel upgrade.

Another benefit of DKMS is that it allows the installation of a new driver on an existing system, running an arbitrary kernel version, without any need for manual compilation or precompiled packages provided by the vendor.

3 Likes

@ricklinux thanks for this information. I now understand the how and why of DKMS a little better. My confusion arose when mixing current and lts on the same system. I now have current and lts installed on a notebook and a desktop and all is well.

2 Likes