web-dev-qa-db-ja.com

カーネルのコンパイルに使用されたバージョンよりもgccのバージョンが新しいため、dkmsが失敗する

Dkmsに登録されたカーネルモジュールがあります。最近のアップグレードでカーネルが4.15.0-50に上がったとき、dkmsから以下のエラーが発生し始めました。どうやらカーネル4.15.0-50はgccバージョン7.3.0でコンパイルされていましたが、アップグレードの一部にはgccの新しいバージョン(7.4.0)のインストールが含まれていたため、dkmsが失敗していました。私のシステムではgcc 7.3が利用できなくなりました。 7.4に加えてgcc 7.3をインストールする方法、または7.4から7.3にダウングレードする方法を教えてください。

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

複数バージョンのgccをインストールする代わりに、nvidiaインストーラーに次のオプションを渡すことができます。

--no-cc-version-check

Ubuntu 18.04.2、カーネル4.18.0-20、nvidia 430.14で動作しました。

4
Klaphark

このように 長いDebianレポートバグ 入力:

IGNORE_CC_MISMATCH=1

アップグレード前。

1

私の場合、とにかくコンパイルするオプションが与えられましたが、インストールは失敗しました。私はgcc 7.3が必要だと思います。 gcc 7.4コンパイラにv。7.3でコンパイルするオプションがあるかどうか疑問に思っていました。

他の誰かがヘッダーファイルを用意する必要があると言いましたが、ヘッダーファイルを追加しようとするとエラーメッセージが表示されました。

現状では、gcc 7.4コンパイラーはあまり必要ないので、gcc 7.3コンパイラーを使用したいと思います。これに対処する方法がわかりませんでした。

0
Sam C.