[Heads-Up] 5.7.1 kernel and Nvidia 440.82 driver patch

Hi All
Those that use the hardway to install the current 440.82 driver won’t compile unless it’s patched…

Info: https://forums.developer.nvidia.com/t/nvidia-440-82-kernel-5-7-patch/125815

Patch:


diff --git kernel/conftest.sh kernel/conftest.sh
index 8f807a1..af29636 100755
--- kernel/conftest.sh
+++ kernel/conftest.sh
@@ -143,6 +143,7 @@ test_headers() {
     FILES="$FILES video/nv_internal.h"
     FILES="$FILES asm/book3s/64/hash-64k.h"
     FILES="$FILES asm/set_memory.h"
+    FILES="$FILES asm/pgtable.h"
     FILES="$FILES asm/prom.h"
     FILES="$FILES asm/powernv.h"
     FILES="$FILES asm/tlbflush.h"
@@ -466,6 +467,9 @@ compile_test() {
             # It does not exist on all architectures.
             #
             CODE="
+            #if defined(NV_ASM_PGTABLE_H_PRESENT)
+            #include <asm/pgtable.h>
+            #endif
             #if defined(NV_ASM_SET_MEMORY_H_PRESENT)
             #include <asm/set_memory.h>
             #else

Save the patch as say kernel-5.7.1.patch in the same location (as your user :wink: ) as the NVIDIA-Linux-x86_64-440.82.run file, then run;


chmod 0755 NVIDIA-Linux-x86_64-440.82.run
./NVIDIA-Linux-x86_64-440.82.run --apply-patch kernel-5.7.1.patch
Verifying archive integrity... OK
Uncompressing NVIDIA Accelerated Graphics Driver for Linux-x86_64 440.82....
patching file kernel/conftest.sh
Adding files to archive named "NVIDIA-Linux-x86_64-440.82-custom.run"...
.....
CRC: 2230869447
MD5: a5e0a3293344e98734d05cd12993d49f

Self-extractible archive "NVIDIA-Linux-x86_64-440.82-custom.run" successfully created.

Then install the custom run until the fixed driver is released…

Does this mean the nvidia 440.82 “the easy way” is also currently broken for any zypper dups?

I haven’t done the kernel update yet, I just trying to get a heads up on any issues.

Hi
Very likely…

Not that. It does. ( Telegram user reported )

Thank you very much …

I just patched the .run file like you mentioned then installed the custom .run successfully with kernel 5.7.1 .

The patch worked perfectly for me, too. Thanks, Malcolm!

Thanks for finding this. I got hit at 1am and was able to patch the new kernel and get it to boot
I had that exact same driver 440.82 installed via the repo. This still worked perfectly.

Hi! I’m trying to apply patch but I receive this error:

patching file kernel/contest.sh
Hunk #1 FAILED at 143.
Hunk #2 FAILED at 466.
2 out of 2 hunks FAILED -- saving rejects to file kernel/contest.sh.rej
Failed to apply patch file "/home/hunpan/kernel-5.7.1.patch".

Hi
It’s only for the 440.82 driver? Older versions eg 390.132 need additional patches and likely easier to just use the -x option and manually edit the file and re-compress.

Thanks for reply. I’ve not well understood the question, but I’m trying with 440.82 driver

Hi
The two files must be in the same directory/location;


NVIDIA-Linux-x86_64-440.82.run
kernel-5.7.1.patch

I’ve extracted the .run and manually edited it… how can I recreate the .run file?

They already was in the same location…

Hi
Are you running the 5.7.1 kernel? If not, reboot into that kernel, open a console session (eg alt+ctl+F2), login as root user ensure at runlevel 3 and cd to the file location where the extracted files are run the installer and reboot;


init 3
./nvidia-installer
systemctl reboot

Thanks Malcolm, I can start the installation that way but I receive another error during installation. I will use something else for now, I hope they can fix the repo drivers soon :frowning:

Make sure you copied the contents of the patch correctly to the text file …

I realized it was patching file kernel/contest.sh … this is wrong … it should be kernel/conftest.sh

Thanks Malcolm. When I updated the kernel, no kernel-source was updated or installed. I thought maybe it wasn’t available yet but when I checked it was. I’m curious if anyone else experienced this. Usually they both get updated at the same time. As a bonus, I discovered I didn’t have the patch utility installed. Cheers!

Hi
I did notice that, just need to install kernel-default-devel which shoould pull in the requirements needed to build the Nvidia driver…

That package is already installed, although it may have been added when I installed kernel-source. I’m pretty sure it was installed when I was running the 5.6 kernel, so some packages seemed to have been deleted when the kernel was updated to 5.7. It’s hard to believe I didn’t notice kernel-source wasn’t included with the update.

Hi
Strange, no source installed here…


zypper se -si kernel-source kernel-default

S  | Name                 | Type    | Version    | Arch   | Repository
---+----------------------+---------+------------+--------+----------------------
i+ | kernel-default       | package | 5.6.14-1.6 | x86_64 | (System Packages)
i+ | kernel-default       | package | 5.7.1-1.2  | x86_64 | Main Repository (OSS)
i+ | kernel-default-devel | package | 5.7.1-1.2  | x86_64 | Main Repository (OSS)

The first thing that alerted me to the fact that kernel-source wasn’t installed was the nvidia module wouldn’t build. How do you do yours without it?