webentwicklung-frage-antwort-db.com.de

dkms-Fehler, da die gcc-Version neuer ist als die zum Kompilieren des Kernels verwendete

Ich habe ein Kernelmodul, das bei dkms registriert wurde. Als ein kürzlich durchgeführtes Upgrade meinen Kernel auf 4.15.0-50 stieß, bekam ich den folgenden Fehler von dkms. Anscheinend wurde Kernel 4.15.0-50 mit gcc Version 7.3.0 kompiliert, aber ein Teil des Upgrades beinhaltete die Installation einer neuen Version von gcc (7.4.0), was dazu führt, dass dkms fehlschlägt. gcc 7.3 ist auf meinem System nicht mehr verfügbar. Wie installiere ich gcc 7.3 zusätzlich zu 7.4 oder rüste sogar 7.4 auf 7.3 herunter?

DKMS make.log for nvidia-430.14 for kernel 4.15.0-50-generic (x86_64)
Tue May 14 17:08:12 CDT 2019
make[1]: Entering directory '/usr/src/linux-headers-4.15.0-50-generic'
Makefile:976: "Cannot use CONFIG_STACK_VALIDATION=y, please install libelf-dev, libelf-devel or elfutils-libelf-devel"
  SYMLINK /var/lib/dkms/nvidia/430.14/build/nvidia/nv-kernel.o
  SYMLINK /var/lib/dkms/nvidia/430.14/build/nvidia-modeset/nv-modeset-kernel.o

Compiler version check failed:

The major and minor number of the compiler used to
compile the kernel:

gcc version 7.3.0 (Ubuntu 7.3.0-16ubuntu3)

does not match the compiler used here:

cc (Ubuntu 7.4.0-1ubuntu1~18.04) 7.4.0
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


It is recommended to set the CC environment variable
to the compiler that was used to compile the kernel.

The compiler version check can be disabled by setting
the IGNORE_CC_MISMATCH environment variable to "1".
However, mixing compiler versions between the kernel
and kernel modules can result in subtle bugs that are
difficult to diagnose.

*** Failed CC version check. Bailing out! ***

/var/lib/dkms/nvidia/430.14/build/Kbuild:182: recipe for target 'cc_version_check' failed
make[2]: *** [cc_version_check] Error 1
make[2]: *** Waiting for unfinished jobs....
Makefile:1552: recipe for target '_module_/var/lib/dkms/nvidia/430.14/build' failed
make[1]: *** [_module_/var/lib/dkms/nvidia/430.14/build] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-4.15.0-50-generic'
Makefile:81: recipe for target 'modules' failed
make: *** [modules] Error 2
5
Wandering Logic

Anstatt mehrere Versionen von gcc zu installieren, können Sie die folgende Option an das nvidia-Installationsprogramm übergeben:

--no-cc-version-check

Arbeitete für mich unter Ubuntu 18.04.2, Kernel 4.18.0-20 und NVIDIA 430.14.

4
Klaphark

Laut diesem langwieriger Debian-Berichtsfehler Geben Sie Folgendes ein:

IGNORE_CC_MISMATCH=1

vor dem Upgrade.

1

In meinem Fall hatte ich die Möglichkeit, trotzdem zu kompilieren, aber die Installation schlug fehl. Ich denke ich brauche gcc 7.3. Ich habe mich gefragt, ob es mit dem gcc 7.4-Compiler eine Option zum Kompilieren in Version 7.3 gibt.

Jemand anderes hat gesagt, dass Sie die Header-Dateien benötigen, aber ich habe eine Fehlermeldung erhalten, als ich versucht habe, sie hinzuzufügen.

So wie es aussieht, würde ich den gcc 7.3-Compiler bevorzugen, da ich den gcc 7.4-Compiler nicht sehr brauche. Ich war mir nicht sicher, wie ich das angehen sollte.

0
Sam C.