отказ dkms, потому что gcc версия является более новой, чем это, раньше компилировал ядро

У меня есть модуль ядра, который был зарегистрирован в dkms. Когда недавнее обновление ударило мое ядро к 4.15.0-50, я начал добираться ниже ошибки от dkms. По-видимому, ядро 4.15.0-50 было скомпилировано с gcc версией 7.3.0, но часть обновления включила, установив новую версию gcc (7.4.0), который заставляет dkms перестать работать. gcc 7.3 больше не доступен в моей системе. Как я устанавливаю gcc 7.3 в дополнение к 7,4 или даже понижаю 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
задан 15 May 2019 в 01:25

3 ответа

Вместо установки нескольких версий gcc вы можете передать следующую опцию установщику nvidia:

--no-cc-version-check

Работали для меня в Ubuntu 18.04.2, ядре 4.18.0-20 и nvidia 430.14. [ 112]

0
ответ дан 15 May 2019 в 01:25

В соответствии с этой длинной ошибкой отчета Debian введите:

IGNORE_CC_MISMATCH=1

перед обновлением.

0
ответ дан 15 May 2019 в 01:25

Мне в любом случае была предоставлена ​​возможность компилировать, но установка не удалась. Я думаю, что мне нужен GCC 7.3. Мне было интересно, если есть вариант с компилятором gcc 7.4 для компиляции в v. 7.3.

Кто-то еще сказал, что вам нужны заголовочные файлы, но я получил сообщение об ошибке, когда попытался добавить их.

В моем нынешнем виде я бы предпочел иметь компилятор gcc 7.3, потому что мне не нужен компилятор gcc 7.4. Я не был уверен, как решить эту проблему.

0
ответ дан 15 May 2019 в 01:25

Другие вопросы по тегам:

Похожие вопросы: