[SOLVED] Linux openSUSE Leap 15.0 64bit unable to link .o files compiled by the nvidia installer

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.

TIA Toni

Did you take a look at e.g. /home/toni/NVIDIA-Linux-x86_64-390.87/kernel/nvidia-uvm/.tmp_uvm_common.o if it has 0 byte size or what it actually contains?
Please attach the full nvidia-installer.log
Hovering the mouse over an existing post of yours will reveal a paperclip icon.
https://devtalk.nvidia.com/default/topic/1043347/announcements/attaching-files-to-forum-topics-posts/

Thank you. The complete log file is attached.
nvidia-installer.log (93.2 KB)

Looks like the 390 driver has not yet been fixed for kernel 4.20. Maybe you can adopt the changes from the 415 patch regarding impi_user_t https://devtalk.nvidia.com/default/topic/1044478/linux/is-this-patch-for-415-18-on-kernel-4-20-rcx-/post/5301466/#5301466
Do you have a Fermi type gpu so you have to rely on the 390 legacy driver?

Thanks again.

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.

Toni

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.

Here it is.
nvidia-installer.log (84.9 KB)

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.

My system partition has 20 GB, 4 GB free diskspace available, that should be enough?

I attach a compiled file.

Thanks again,
Toni
nv-frontend.txt (228 KB)

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.

Elfutils should be ok then. Do you have any obscure compiler settings in your env?

where do I find these settings? Haven’t altered them by myself.

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?

Attached are the env variables. I already reinstalled gcc (incl. devel-files) and binutils.

Thanks again for your attention!
env.txt (5.02 KB)

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

Does the file /lib64/libelf.so.1 exist at all and is the right file? Check if it’s in /usr/lib64/libelf.so.1 and make a symlink if so.

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.

I’m grateful for your help!

How can I mark the issue as solved?

Thanks again,
Toni

Stray outdated libs are the worst. There should be an Accept as Answer button or just edit the thread title.