Akmods builds nvidia driver ok but errors out when installing

I installed Nvidia 470xx ok before. This time I tried to install it and it errors out.

The akmods log says it builds ok with exit 0 but then it tries to install newly built rpms and says :

“Error: Problem: conflicting requests” and gives a list of many lines of " - nothing provides kernel(blah_blah) needed by kmod-nvidia-470xx…" I think it’s a bunch of API calls like drm_connector_register etc etc.

I did customize the kernel but maybe someone knows what I’m missing? Am I missing headers? How do I force the kernel to compile the headers? Thanks.

Akmods by default builds for the fedora kernels. I would suspect that a custom kernel may cause problems.

What happens if you were to remove the current installed drivers with
sudo dnf remove '*nvidia*' --exclude nvidia-gpu-firmware then reboot.
After the reboot reinstall the drivers with sudo dnf install akmod-nvidia-470xx.

We actually need to see the error messages you refer to in order to fully become informed as to the cause. Without the actual error messages we depend upon your interpretation of the messages which may or may not be correct and may or may not be properly and fully communicated.

There are dependencies that are mandatory for akmod-nvidia such as the kernel-devel package that matches the kernel for which the drivers are built and if you do not have those properly installed and the proper kernel in use it may be impossible to install the drivers as provided by rpmfusion.

When running a custom kernel you might be forced to instead install and configure the drivers directly from nvidia.com. The packages from rpmfusion are deliberately designed to match the fedora kernel naming as well as matching other dependent packages.

You need to check every missing function name and enable the needed Kconfig option for the use of the nvidia-470xx serie. Some might be expected but optionals… Hard to tell

Well, I quickly glanced at the functions and they kind of look like what I have enabled in the kernel. Like DRM things - I have DRM enabled. So I wasn’t sure.
Also, are you saying that I have to look at kernel source code for the function names and find which kernel config options they are under? I will also post the error message now.

akmod works with custom kernel (packaged or not), but you need to compile it as appropriate.

Also you might have something in your system that compute the kmod symbols dependencies "kernel(blah_blah) " because usually standard kmod shouldn’t have anything preventing the installation on fedora.

There are lot of DRM options, like CONFIG_DRM_DISPLAY_HELPER=m and alikes. You need every single one of them rights. You should compare with fedora configs.

What could be the requirements for the kernel compilation? I have kernel-devel package produced and installed…but no debug or debuginfo. Are those needed?
I also hardened the kernel - for example one of the security options completely disables DMA access from userspace and some of the functions in the error do mention DMA things.

Here’s the full error:
https://pastebin.com/AESbWYCv

I posted the errors… So are you saying that the rpmfusion packages may require something from the kernel that the nvidia.com packages might not?

kmod packages produced from vanilla akmod does " not " enforce special dependencies from the kernel package. (here you don’t even have a RPM package of the kernel).

rpm -qR kmod-nvidia-6.4.15-100.fc37.x86_64-535.104.05-1.fc37.x86_64
/bin/sh
/bin/sh
/usr/sbin/depmod
/usr/sbin/depmod
kernel-uname-r = 6.4.15-100.fc37.x86_64
nvidia-kmod-common >= 3:535.104.05
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(PayloadIsZstd) <= 5.4.18-1

Looking at those errors it seems they are complaining about kernel 6.4.9 not being available.

Most of the errors are referencing this
kmod-nvidia-470xx-6.4.9-100.wip001nvidia.fc37.x86_64-3:470.199.02-1.fc37.x86_64
This 6.4.9-100.wip001nvidia.fc37.x86_64 is as you stated not a fedora kernel, and the 6.4.9 kernel was retired by fedora several weeks back.

The standard config of dnf only keeps the last 3 kernels installed and the most recent kernel released was 6.4.15. Are you certain that the appropriate kernel-devel package for that kernel is installed?

Please show us the output from dnf list installed kernel\* \*nvidia\*

Is there a reason that you are using that old a kernel? Many kernel changes have occurred since the 6.4.9 kernel was released and other package updates may encounter problems when running with an older kernel.

It is a Fedora kernel but slimmed down and hardened. I am certain I have kernel-devel installed because I compile all the kernel packages and install them all at once. I do not update kernel with dnf at all.
Looking at the errors what I notice is that many are related to things that have to do with memory access or system access. I suspect it is because the kernel security hardening locks these API calls and direct memory access.
This, now, brings up a big question. Is running NVIDIA GPU driver incompatible with security hardened kernel? Is there anyone who has an NVIDIA GPU driver running on a security hardened kernel??

It does: the line

kernel-uname-r = 6.4.15-100.fc37.x86_64

specifies exactly which kernel version it is compatible with. The dependency is satisfied by one of

kernel-core
kernel-debug-core
kernel-uki-virt

By special I mean this kind of RPM dependencies " kernel(__SCT__cond_resched) = 0xc07351b"

Which kernel option have you changed that you might think it’s hardened security ? Fedora kernel is already secure and having a self compiled kernel means less security for me.

Examples -
kernel default lockdown mode → confidentiality
randomize kernel structure layout
DMA restriction

Also turning off Intel MEI. Nothing secure about running an independent OS with undocumented source code inside your processor with full access to hardware that you have no oversight over.