System:
Kernel 4.20.3-2.g4b478de-default x86_64
gcc (SUSE Linux) 7.3.1 20180323 [gcc-7-branch revision 258812]
GNU Make 4.2.1 Gebaut für x86_64-suse-linux-gnu
GNU size (GNU Binutils; openSUSE Leap 15.0) 2.31.1.20180828-lp150.5.3
I tried for three days to install the 390.87 driver, but I always ended in the same error.
To analyse the failure I decided to use the extract-only option and ran the ./nividia-installer command afterwards.
In the log file there are hundreds of lines of this kind:
CC [M] /home/toni/NVIDIA-Linux-x86_64-390.87/kernel/nvidia-uvm/uvm8_tools.o
objdump: /home/toni/NVIDIA-Linux-x86_64-390.87/kernel/nvidia-uvm/.tmp_uvm_common.o: file format not recognized
The resumée in the log file is always:
cc1: some warnings being treated as errors
make[3]: *** [/usr/src/linux-4.20.3-2.g4b478de/scripts/Makefile.build:292: /home/toni/NVIDIA-Linux-x86_64-390.87/kernel/nvidia/os-interface.o] Fehler 1
make[3]: Das Ziel „__build“ wurde wegen Fehlern nicht aktualisiert.
make[2]: *** [/usr/src/linux-4.20.3-2.g4b478de/Makefile:1578: module/home/toni/NVIDIA-Linux-x86_64-390.87/kernel] Fehler 2
make[2]: Das Ziel „modules“ wurde wegen Fehlern nicht aktualisiert.
make[2]: Verzeichnis „/usr/src/linux-4.20.3-2.g4b478de-obj/x86_64/default“ wird verlassen
make[1]: *** [Makefile:152: sub-make] Fehler 2
make[1]: Das Ziel „modules“ wurde wegen Fehlern nicht aktualisiert.
make[1]: Verzeichnis „/usr/src/linux-4.20.3-2.g4b478de“ wird verlassen
make: *** [Makefile:79: modules] Fehler 2
ERROR: The nvidia kernel module was not created.
I searched the forums and other available sources but didn’t find a hint what to do. Kernel sources are installed, the devel files also.
The patch didn’t succeed (Line 49 refers to a missing file).
Don’t know, what a Fermi type gpu is. It’s a GeForce 410M. And the problem is not confined to the kernel 4.20. I upgraded to it from the 4.12 which is default on OpenSUSE Leap 15.0, the reason was mainly that the installation of the nvidia drivers broke and showed the results documented in the log file.
The 410M is a Fermi so you can only use the 390 legacy drivers. Please downgrade the kernel again to 4.12 as with 4.20 you introduce more problems due to missing patches. Then please post a new nvidia-installer.log.
There’s definitely something wrong with your build chain. Do you have sufficient free disk space? please attach one of those object files that can’t be recognized. Rename it to .txt to attach.
It is an object file containing the right things but isn’t recognized by objdump on my system, too. Which version of elfutils do you have installed, can you please check for an update or reinstall that?
The elfutils version is 0.168. I already installed the newer version from tumbleweed (0.175) but to no avail, so I got back to the version included in the normal distribution.
Just run (as root to see root’s env)
export
to see your env variables but since you didn’t change them, there’s probably nothing noteworthy.
I’m out of ideas where this comes from, did you already reinstall gcc and binutils?
Irritating are two possible related messages, running mkinitrd, concerning stripping files (dracut process):
/usr/bin/eu-strip: /lib64/libelf.so.1: version ‘ELFUTILS_1.7’ not found (required by /usr/bin/eu-strip)
/usr/bin/eu-strip: /lib64/libelf.so.1: version ‘ELFUTILS_1.7’ not found (required by /usr/lib64/libdw.so.1)
I tried to cure this by upgrading to the next version of elfutils (see former posting), but the messages remained, so I got back to default.
What’s the output of
eu-strip -V
and
which eu-strip
?
Furthermore, I noticed that the non-functional object file was compiled with debug_info, that shouldn’t happen, are you running a debug kernel or have any debug mode enabled? Please post the output of
cat /proc/version /proc/cmdline
Thanks, that was quite helpful! In /lib64 was an old version of libelf (from 2013), in /usr/lib64 was the correct one. I don’t know why this has happened and the system is not using the path /usr/lib64 primarily. I deleted the wrong files and now the nvidia is correctly compiled and I’m able to install. The dracut failure message also disappeared.
The output of cat /proc/version /proc/cmdline shows nothing spurious. I don’t run a debug kernel and neither do I have a debug mode enabled.
I don’t know if there is anything else I should do.