I have a couple of DKMS packages installed (nvidia-open-dkms
, v4l2loopback-dkms
) and have recently started noticing some warnings during system upgrades (I use eos-update
).
More specifically, when new kernel updates are installed, the pre-transaction hook to remove old DKMS modules fails to find the module directories for the existing kernels. It seems like the existing kernel module directories are deleted before DKMS is invoked to remove the existing modules, which causes DKMS to fail and modules to persist indefinitely (throwing warnings and eventually errors during future updates).
Here is an example update log (Iβve trimmed the irrelevant stuff here - none of the DKMS packages themselves were updated but this only seems to happen when the kernels are updated):
eos-update: package updater with additional features
Updating native and AUR apps...
:: Synchronising package databases...
endeavouros 14.7 KiB 14.5 KiB/s 00:01 [-------------------------------------------------------------] 100%
core 117.3 KiB 259 KiB/s 00:00 [-------------------------------------------------------------] 100%
extra 7.5 MiB 6.33 MiB/s 00:01 [-------------------------------------------------------------] 100%
multilib 132.7 KiB 311 KiB/s 00:00 [-------------------------------------------------------------] 100%
:: Starting full system upgrade...
resolving dependencies...
looking for conflicting packages...
Package (22) Old Version New Version Net Change Download Size
...
core/linux 6.12.6.arch1-1 6.12.7.arch1-1 0.00 MiB 137.70 MiB
core/linux-headers 6.12.6.arch1-1 6.12.7.arch1-1 0.12 MiB 26.66 MiB
core/linux-lts 6.6.67-1 6.6.68-1 0.11 MiB 128.45 MiB
core/linux-lts-headers 6.6.67-1 6.6.68-1 2.09 MiB 24.74 MiB
...
Total Download Size: 344.87 MiB
Total Installed Size: 638.30 MiB
Net Upgrade Size: 3.07 MiB
:: Proceed with installation? [Y/n] y
:: Retrieving packages...
...
(22/22) checking for file conflicts [-------------------------------------------------------------] 100%
:: Running pre-transaction hooks...
(1/2) Removing initramfs...
(2/2) Remove DKMS modules
find: β/usr/lib/modules/6.6.67-1-lts/β: No such file or directory
find: β/usr/lib/modules/6.6.67-1-lts/β: No such file or directory
find: β/usr/lib/modules/6.6.67-1-lts/β: No such file or directory
find: β/usr/lib/modules/6.6.67-1-lts/β: No such file or directory
find: β/usr/lib/modules/6.6.67-1-lts/β: No such file or directory
find: β/usr/lib/modules/6.6.67-1-lts/β: No such file or directory
find: β/usr/lib/modules/6.12.6-arch1-1/β: No such file or directory
find: β/usr/lib/modules/6.12.6-arch1-1/β: No such file or directory
find: β/usr/lib/modules/6.12.6-arch1-1/β: No such file or directory
find: β/usr/lib/modules/6.12.6-arch1-1/β: No such file or directory
find: β/usr/lib/modules/6.12.6-arch1-1/β: No such file or directory
find: β/usr/lib/modules/6.12.6-arch1-1/β: No such file or directory
:: Processing package changes...
...
(10/22) upgrading linux [-------------------------------------------------------------] 100%
(11/22) upgrading linux-headers [-------------------------------------------------------------] 100%
(12/22) upgrading linux-lts [-------------------------------------------------------------] 100%
(13/22) upgrading linux-lts-headers [-------------------------------------------------------------] 100%
...
:: Running post-transaction hooks...
( 1/15) Creating system user accounts...
( 2/15) Reloading system manager configuration...
( 3/15) Reloading user manager configuration...
( 4/15) Restarting marked services...
( 5/15) Creating temporary files...
( 6/15) Arming ConditionNeedsUpdate...
( 7/15) Updating module dependencies...
( 8/15) Install DKMS modules
==> dkms install --no-depmod v4l2loopback/0.13.2 -k 6.12.7-arch1-1
==> dkms install --no-depmod v4l2loopback/0.13.2 -k 6.6.68-1-lts
==> dkms install --no-depmod nvidia/565.77 -k 6.6.68-1-lts
==> dkms install --no-depmod nvidia/565.77 -k 6.12.7-arch1-1
==> depmod 6.12.7-arch1-1
==> depmod 6.6.68-1-lts
( 9/15) Updating initramfs...
...
(10/15) Reloading system bus configuration...
(11/15) Warn about old perl modules
(12/15) Check if user should be informed about rebooting after certain system package upgrades.
(13/15) Updating icon theme caches...
(14/15) Checking which packages need to be rebuilt
...
(15/15) Updating the desktop file MIME type cache...
Running dkms status
afterwards:
> dkms status
find: β/usr/lib/modules/6.12.6-arch1-1/β: No such file or directory
find: β/usr/lib/modules/6.12.6-arch1-1/β: No such file or directory
find: β/usr/lib/modules/6.12.6-arch1-1/β: No such file or directory
find: β/usr/lib/modules/6.6.67-1-lts/β: No such file or directory
find: β/usr/lib/modules/6.6.67-1-lts/β: No such file or directory
find: β/usr/lib/modules/6.6.67-1-lts/β: No such file or directory
find: β/usr/lib/modules/6.12.6-arch1-1/β: No such file or directory
find: β/usr/lib/modules/6.12.6-arch1-1/β: No such file or directory
find: β/usr/lib/modules/6.12.6-arch1-1/β: No such file or directory
find: β/usr/lib/modules/6.6.67-1-lts/β: No such file or directory
find: β/usr/lib/modules/6.6.67-1-lts/β: No such file or directory
find: β/usr/lib/modules/6.6.67-1-lts/β: No such file or directory
nvidia/565.77, 6.12.7-arch1-1, x86_64: installed
nvidia/565.77, 6.6.67-1-lts, x86_64: installedfind: β/usr/lib/modules/6.6.67-1-lts/β: No such file or directory
find: β/usr/lib/modules/6.6.67-1-lts/β: No such file or directory
find: β/usr/lib/modules/6.6.67-1-lts/β: No such file or directory
(Built modules are missing in the kernel modules folder)
nvidia/565.77, 6.6.68-1-lts, x86_64: installed
v4l2loopback/0.13.2, 6.12.6-arch1-1, x86_64: installedfind: β/usr/lib/modules/6.12.6-arch1-1/β: No such file or directory
find: β/usr/lib/modules/6.12.6-arch1-1/β: No such file or directory
find: β/usr/lib/modules/6.12.6-arch1-1/β: No such file or directory
(Built modules are missing in the kernel modules folder)
v4l2loopback/0.13.2, 6.12.7-arch1-1, x86_64: installed
v4l2loopback/0.13.2, 6.6.67-1-lts, x86_64: installedfind: β/usr/lib/modules/6.6.67-1-lts/β: No such file or directory
find: β/usr/lib/modules/6.6.67-1-lts/β: No such file or directory
find: β/usr/lib/modules/6.6.67-1-lts/β: No such file or directory
(Built modules are missing in the kernel modules folder)
v4l2loopback/0.13.2, 6.6.68-1-lts, x86_64: installed
And sure enough, /usr/lib/modules
now only contains the new kernel directories:
> ls /usr/lib/modules
6.12.7-arch1-1 6.6.68-1-lts
Whilst dkms
itself still has listings for the previous module versions:
> ls /var/lib/dkms/nvidia/
565.77 kernel-6.12.6-arch1-1-x86_64 kernel-6.12.7-arch1-1-x86_64 kernel-6.6.67-1-lts-x86_64 kernel-6.6.68-1-lts-x86_64
> ls /var/lib/dkms/nvidia/565.77
6.12.6-arch1-1 6.12.7-arch1-1 6.6.67-1-lts 6.6.68-1-lts source
Going through and manually removing all old kernel versions for each package within /var/lib/dkms
is enough to make DKMS happy:
> cd /var/lib/dkms/nvidia
> sudo rm -r kernel-6.12.6-arch1-1-x86_64 kernel-6.6.67-1-lts-x86_64 565.77/6.12.6-arch1-1 565.77/6.6.67-1-lts
> cd ../v4l2loopback
> sudo rm -r kernel-6.12.6-arch1-1-x86_64 kernel-6.6.67-1-lts-x86_64 0.13.2/6.12.6-arch1-1 0.13.2/6.6.67-1-lts
> dkms status
nvidia/565.77, 6.12.7-arch1-1, x86_64: installed
nvidia/565.77, 6.6.68-1-lts, x86_64: installed
v4l2loopback/0.13.2, 6.12.7-arch1-1, x86_64: installed
v4l2loopback/0.13.2, 6.6.68-1-lts, x86_64: installed
But this doesnβt feel like something that should be happening and I canβt find anyone else online running into the same issue. I have tried fully uninstalling all DKMS modules and DKMS itself before clearing all related directories and reinstalling, but the issue persists.