Kernel 5.4 & NVIDIA driver installation

Hello
I am struggling with getting Kernel 5.4 working with rocky & particularly NVIDIA.
I need to get 5.4 working as the Rocky
I need to get 5.4 working as the Rocky 4.18 kernel does have a couple of drivers that I need.
I have no problem installing the 5.4 LT kernel using the method below.

At reboot, the 5.4 stops on a black screen and no commands can move to a terminal command. This is where I presume where the NVIDIA drivers should load, but don’t because that are not associated to this kernel.
In the list of boot kernels, I see 4.18 & 5.4 but when I load 4.18, 5.4 is not in the list of available kernels.

[admin@lowrocky ~]$ dnf list installed kernel
Installed Packages
kernel.x86_64                    4.18.0-348.el8.0.2                    @anaconda
kernel.x86_64                    4.18.0-372.9.1.el8                    @baseos  

Can someone where I can find the method to get NVIDIA installed into the 5.4 kernel please?
Thanks

When you did install kernel from ELRepo, you did see that the name of the package is not ‘kernel’.
Ask: dnf list installed kernel\*

ELRepo builds additional modules for RHEL kernels, because Red Hat does not include some in the kernel.

ELRepo does not build separate modules for their LT and ML kernels, because they already include modules as they do build those kernels and hence choose what those have. However, they don’t include the NVidia’s module.

You need a version/distribution of NVidia’s driver that you “compile” into kernel module on your system. Some RPMs (not ELRepo) have that via ‘dkms’ – compile during boot, if kernel does not have the module yet. I don’t know whether any of those can compile for LT or ML. Then there is that NVidia’s binary blob (not managed RPM). It might compile. It does for RHEL 9 that does have 5.** kernel. Ugly, but when it is that or nothing …

Thank you for replying. The line above does the trick … But I think I am in over my head. I have already broken a system trying to do this. I see that Rocky 9 will be out soon, maybe I am better waiting for the official 5.4 kernel in the hope that this build will have the stex driver I need?

What is the device ID of your “stex device”? You get it with ‘lspci -nn’, I presume.

09:00.0 RAID bus controller [0104]: Promise Technology, Inc. PM8010 [SuperTrak EX SAS and SATA 6G RAID Controller] [105a:8760] (rev 01)

The Thunderbolt admin page authorizes the SAN but from what I understand, I need the stex driver to get it to mount.

Driver for that seems to have been for quite a while: Linux Kernel Driver DataBase: CONFIG_SCSI_STEX: Promise SuperTrak EX Series support

What will be in Rocky 9? AlmaLinux 9 has only these about vendor “Promise Technology”:

[Alma9 ~]# uname -r
5.14.0-70.13.1.el9_0.x86_64
[Alma9 ~]# modprobe -c | grep 105A
alias pci:v0000105Ad00003781sv*sd*bc*sc*i* ahci
alias pci:v0000105Ad00003F20sv*sd*bc*sc*i* ahci
alias usb:v0499p105Ad*dc*dsc*dp*ic*isc*ip*in* snd_usb_audio

The 105:3f20 is “PDC42819 [FastTrak TX2650/TX4650]”. The 3781 … no idea.

Overall, that is not much. About same as Rocky 8, isn’t it?

I don’t find the driver in the list for Rocky 8. For me, it should be there as it was in Centos 7.9 but if it is, it is hiding from me.
I find the stex.ko driver in the 5.4 kernel list below, which is why I have hope.
https://centos.pkgs.org/8/elrepo-kernel-x86_64/kernel-lt-core-5.4.199-1.el8.elrepo.x86_64.rpm.html

This is a bit of an old subject but I got lost in a rabbit hole of kernel versions when updates appeared.
So this time, as I am not a linux master, I want to keep as close to the roadmap as possible.

Apparently the stex driver has been removed from RHEL8 (therefore Rocky Linux 8). You can ask ELRepo to provide the driver (as a kmod package) for EL8 via ELRepo’s bug tracker.

Therefore i presume that what is removed from RHEL is not put back, so no point waiting for Rocky 9.

Looks like you are all set. Go ahead and give Rocky 9 a try. :slight_smile:

https://elrepo.org/bugs/view.php?id=1238

Can’t I try on 8.6? I have just searched kmod installl (as I have never done this before) and not found much . Will the driver show up with something like

sudo dnf install kmod-stex

? Sorry to be such a total newbie.

Yes, it will work after you have set up the ELRepo repository. The instructions are in the ELRepo homepage. Briefly, for EL-8,

rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
dnf install https://www.elrepo.org/elrepo-release-8.el8.elrepo.noarch.rpm

Please note the package has just been released, so it may not have reached a mirror near you. It is here now:

https://elrepo.org/linux/elrepo/el8/x86_64/RPMS/kmod-stex-6.02.0000.01-1.el8_6.elrepo.x86_64.rpm

Toracat, a thousand thank yous for all this. I installed the rpm and the disk mounts perfectly on 8.6. I will share this thread on the Promise forum (I don’t understand why Promise did not do this themselves).
Many thanks
Christopher

I am on Rocky 8.6, upgraded from 4.18.0-372.13.1 to the same but *.16.1 and my GPU card was not found. Is this the same problem or cousin??
Thanks

From what I understand, the NVIDIA drivers are built for each kernel. Any kernel change means that you have to rebuild the NVIDIA drivers as explained above. There is meant to be a function that does this automatically but it has never worked for me. You can check that this is true because you should have your old kernel build in the startup list and I would expect your NVIDIA card to work with that build.

1 Like

All kernel modules are built for a specific version of kernel. Most modules do come with kernel, so we don’t have to worry about them. It is the additional modules that we have to add.

  • Primary method is to install new kernel and install/build the additional module made for the new version (before boot to new kernel)
  • There are tools (akmod, dkms?) that during boot detect that kernel lacks module and build it on the spot. Should work for graphics, won’t work for storage driver since one cannot access the storage without the driver.
  • ELRepo approach. RHEL kernels within point updates, e.g. all the 4.18.0-372*, are so similar that same module works with all of them if the version string dependency is stripped from the module. That is how ELRepo builds additional kernel modules. The kernels of next point update will require a new/rebuilt module.
1 Like