Installation of nvidia-304xx drivers on Rocky8.10

Background/Acknowledgements

This installation is a revision to the previous procedure, “Installation of nvidia-304xx
drivers on Rocky8.5“,

It is simpler than the previous procedure, and the result has advantages provided by
a newer kernel.


I appreciate the advice provided by Robin, an antixforum expert, who provided the link
to the kernel patches authored by Jorge Maidana which have made this newer approach
possible. The link is


Implementing the procedure on a PC with an nvidia-304xx-related graphics card is
often cumbersome because such PC’s often have sata-disk controllers and live .iso’s
don’t install directly unless they are customized like Nazunalika’s rocky-8-xfce-elrepo.iso.

Therefore, on my test machine, an HP Pavilion Media Center m8247c, I installed
Rocky-8.10-x86_64-minimal adding 2 statements to the grub boot command:
inst.dd=hd:LABEL=OEMDRV:/kmod-sata_nv-3.5-10.el8_10.elrepo.x86_64.rpm and
inst.dd=hd:LABEL=OEMDRV:/kmod-forcedeth-0.0-11.el8_10.elrepo.x86_64.rpm where
a mounted USB stick labelled OEMDRV contains the 2 rpm’s downloaded from the elrepo website.
(With Rocky-8.10-x86_64-minimal, I selected the server option with basic development tools).

To establish a graphical desktop environment, I then installed the e16-based environment
as described in “e16 and icewm light-weight desktops for Rocky8.6“,

(Certainly, other DE’s such as XFCE, can be installed on Rocky-8.10-x86_64-minimal).


The basic installation procedure followed was defined by a ubuntu expert, enigma9o7,
in his post nvidia-304 won't install entitled
“nvidia won’t install”.
Some modifications were required for an .rpm environment compared to a .deb environment.


PROCEDURE

Because it’s so easy to forget, the 1st step should be to downgrade the graphics packages
to the Fedora27 level. The packages should be collected in a directory conveniently called
Fedora27

xorg-x11-drv-ati-7.9.0-3.fc27.x86_64.rpm
xorg-x11-drv-dummy-0.3.7-5.fc27.x86_64.rpm
xorg-x11-drv-evdev-2.10.5-4.fc27.x86_64.rpm
xorg-x11-drv-fbdev-0.4.3-28.fc27.x86_64.rpm
xorg-x11-drv-intel-2.99.917-30.20160929.fc27.x86_64.rpm
xorg-x11-drv-libinput-0.26.0-1.fc27.x86_64.rpm
xorg-x11-drv-nouveau-1.0.15-3.fc27.x86_64.rpm
xorg-x11-drv-qxl-0.1.5-5.fc27.x86_64.rpm
xorg-x11-drv-v4l-0.2.0-50.fc27.x86_64.rpm
xorg-x11-drv-vesa-2.3.2-28.fc27.x86_64.rpm
xorg-x11-drv-vmware-13.2.1-4.fc27.x86_64.rpm
xorg-x11-drv-wacom-0.35.0-3.fc27.x86_64.rpm
xorg-x11-server-common-1.19.6-7.fc27.x86_64.rpm
xorg-x11-server-Xorg-1.19.6-7.fc27.x86_64.rpm

From this directory, sudo yum --nogpgcheck localinstall xorg*.rpm downgrades
the graphics.
Then, sudo yum install python3-dnf-plugin-versionlock, to install the required plugin, and
sudo yum versionlock xorg-x11-server-Xorg-1.19.6-7.fc27.x86_64 to lock in the package.


Kernel Upgrade

The ability to handle the exFAT file system for USB sticks was made part of the
Linux kernel starting with Version 5.4.n. This is a desirable feature given the
ever-increasing prevalence of video files which can readily exceed 4GB in size.
The 10 patches provided by Jorge Maidana are effective for kernels up to Version
5.6.n. Accordingly, the kernel selected for the upgrade was the Fedora 32 original-
release kernel 5.6.6-300.

The packages were collected in a directory simply-named Fedora32:

kernel-5.6.6-300.fc32.x86_64.rpm
kernel-core-5.6.6-300.fc32.x86_64.rpm
kernel-cross-headers-5.6.6-300.fc32.x86_64.rpm
kernel-devel-5.6.6-300.fc32.x86_64.rpm
kernel-headers-5.6.6-300.fc32.x86_64.rpm
kernel-modules-5.6.6-300.fc32.x86_64.rpm
kernel-modules-extra-5.6.6-300.fc32.x86_64.rpm
kernel-modules-internal-5.6.6-300.fc32.x86_64.rpm
kernel-tools-5.6.6-300.fc32.x86_64.rpm
kernel-tools-libs-5.6.6-300.fc32.x86_64.rpm
kernel-tools-libs-devel-5.6.6-300.fc32.x86_64.rpm

A compiler usually needs to be installed so that the kernel-headers packages
will install properly:

sudo yum install gcc, installs 6 packages.

Also, sudo yum install dkms, installs 16 packages.

Then, from the Fedora32 directory,
sudo yum --nogpgcheck localinstall kernel*.rpm installs the kernel

Then , sudo grub-mkconfig -o /boot/grub2/grub.cfg,
reboot, and select the new kernel from Advanced Options.
********************************************************************************
Collect components for “nvidia won’t install” procedure

The required pieces were assembled in a directory, NVIDIA5.6:

 0001-disable-mtrr-4.3.patch
 0002-pud-offset-4.12.patch
 0003-nvidia-drm-pci-init-4.14.patch
 0004-timer-4.15.patch
 0005-usercopy-4.16.patch
 0006-do_gettimeofday-5.0.patch
 0007-subdirs-5.3.patch
 0008-on-each-cpu-5.3.patch
 0009-remove-drmp-5.5.patch
 0010-proc-ops-5.6.patch
 disable-nouveau.conf
 NVIDIA-Linux-x86_64-304.137.run

The disable-nouveau.conf file has an additional line in it, compared to enigma9o7‘s version:

blacklist nouveau
blacklist vga16fb
blacklist rivafb
blacklist nvidiafb
blacklist rivatv
blacklist amd64_edac_mod
blacklist amd76_edac
options nouveau modeset=0

The NVIDIA-Linux-x86_64-304.137.run file is downloaded via the link in enigma9o7‘s post.
To make it executable, sudo chmod 755 NVIDIA-Linux-x86_64-304.137.run


Running enigma9o7‘s “nvidia won’t install” procedure

At the beginning of the original procedure, 6 packages are installed.

-gcc and dkms have already been installed in this implementation
-enter the sudo apt install make command; either make will be installed or
a message will show that the latest version is already in place.
-there are no such .rpm packages as build-essential, gcc-multilib or mesa-utils
-run sudo apt install akmods, which installs 3 packages, including kmodtool


-Make sure the disable-nouveau.conf file has been copied into /etc/modprobe.d
-Jorge’s 10 patches are applied in succession, one at a time.
-NB - the equivalent of the sudo update-initramfs -u command is
sudo dracut --regenerate-all -f

Normally, in the nvidia-installer dialog, it’s best to answer yes/ok to every
prompt. In this case, 2 “no” reponses are required:
-re: registration of kernel with dkms
-re: version check of compiler being used to modify kernel versus
that of compiler used to build original kernel – “no” means
carry on, don’t abort


After rebooting from the nvidia-installer dialog, sudo inxi -Gxx
and sudo lshw -C video should confirm that the nvidia-304xx driver is in place.

Len E.

It was a rude surprise that a USB formatted with exFAT would not mount on the distro as
described herein.

Following a web hint, the command
grep EXFAT /boot/config-5.6.6-300.fc32.x86_64 came back with the message:

CONFIG_STAGING_EXFAT is not set, confirming that the exFAT capability was NOT

built into this 5.6 version kernel.


Fortunately, another web hint indicated that the rpmfusion free package,
fuse-exfat-1.3.0-3.el8.x86_64.rpm, would provide exFAT capability in the absence of any
built-in capability in the kernel.

After its installation, the test USB mounted properly and had normal read/write capability.

The package was installed on other Rocky-8.9 installations with Fedora29 and standard
Rocky 4.18 kernels and the test USB functioned normally there also.

The rpmfusion free fuse-exfat package is certainly a worth-while addition !!

Len E.