dkms icon indicating copy to clipboard operation
dkms copied to clipboard

Fail to create big-sized initrd for Nvidia GPU since version 3.1.3

Open fattila02 opened this issue 1 month ago • 2 comments

If we install dkms version 3.1.3 or later, the Nvidia GPU driver is already installed, then we install a kernel in the following order to create big-sized initrd (which includes all the components for Nvidia): kernel headers -> kernel components, the initrd file will be generated in a "small" 80 MB size instead of 243 MB. This bug affects even the latest 3.3.0 version as well.

The following Debian and Ubuntu-based systems are affected whose repository contain a faulty version:

  • Ubuntu 25.10 and Ubuntu 26.04 Snapshot: DKMS 3.2.0
  • Debian 13: DKMS 3.2.2

As you can see in the pictures, the last version that works properly is 3.1.2, all newer versions are faulty:

Image Image Image

fattila02 avatar Dec 10 '25 23:12 fattila02

In NVIDIA we're shipping DKMS 3.3.0 and the kernel modules + firmware get included correctly. Where are you consuming the driver from?

scaronni avatar Dec 11 '25 16:12 scaronni

In NVIDIA we're shipping DKMS 3.3.0 and the kernel modules + firmware get included correctly. Where are you consuming the driver from?

From the original repository and graphics-drivers PPA (sudo apt install nvidia-driver-580 nvidia-dkms-580 -y): https://launchpad.net/~graphics-drivers/+archive/ubuntu/ppa

Until now (up to version dkms 3.1.2), the correct installation order was GPU driver -> kernel headers -> kernel components. How can I install the GPU drivers then correctly with ~240-250 MB initrd, including all of the components?

fattila02 avatar Dec 11 '25 17:12 fattila02

In the /var/lib/dkms, while using 3.1.3, it doesn't make log files about the installed kernel, while 3.1.2 does. Otherwise, when I install a kernel with 3.1.3, this 20 lines doesn't show up during installation while on 3.1.2 it does:

Sign command: /usr/bin/kmodsign Signing key: /var/lib/shim-signed/mok/MOK.priv Public certificate (MOK): /var/lib/shim-signed/mok/MOK.der

Cleaning build area... done. Building module(s).......... done. Signing module /var/lib/dkms/nvidia/580.95.05/build/nvidia.ko Signing module /var/lib/dkms/nvidia/580.95.05/build/nvidia-modeset.ko Signing module /var/lib/dkms/nvidia/580.95.05/build/nvidia-drm.ko Signing module /var/lib/dkms/nvidia/580.95.05/build/nvidia-uvm.ko Signing module /var/lib/dkms/nvidia/580.95.05/build/nvidia-peermem.ko Cleaning build area... done.

Installing /lib/modules/6.8.0-88-generic/updates/dkms/nvidia.ko Installing /lib/modules/6.8.0-88-generic/updates/dkms/nvidia-modeset.ko Installing /lib/modules/6.8.0-88-generic/updates/dkms/nvidia-drm.ko Installing /lib/modules/6.8.0-88-generic/updates/dkms/nvidia-uvm.ko Installing /lib/modules/6.8.0-88-generic/updates/dkms/nvidia-peermem.ko Running depmod... done. Autoinstall on 6.8.0-88-generic succeeded for module(s) nvidia.

It means, from 3.1.3 dkms somewhy doesn't sign the modules, that's why it doesn't increase the initrd's size to 243 MB and include all components.

I checked the difference between 3.1.2 and 3.1.3 source code, but I don't know, which part is responsible for module signing and changed which leads to this problem: https://github.com/dkms-project/dkms/compare/v3.1.2...v3.1.3?diff=unified

fattila02 avatar Dec 17 '25 20:12 fattila02