Как решить: проверка модуля не выполнена: подпись и / или требуемый ключ отсутствует - ядро ​​[дубликат]

Как будто вы пытаетесь получить доступ к объекту, который является null. Рассмотрим ниже пример:

TypeA objA;

. В это время вы только что объявили этот объект, но не инициализировали или не инициализировали. И всякий раз, когда вы пытаетесь получить доступ к каким-либо свойствам или методам в нем, он будет генерировать NullPointerException, что имеет смысл.

См. Также этот пример:

String a = null;
System.out.println(a.toString()); // NullPointerException will be thrown
21
задан Santosh A 27 July 2014 в 08:16
поделиться

4 ответа

Вместо повторной настройки ядра эту ошибку (module verification failed) можно было бы решить, просто добавив одну строку CONFIG_MODULE_SIG=n в начало Makefile для самого модуля:

CONFIG_MODULE_SIG=n

# If KERNELRELEASE is defined, we've been invoked from the
# kernel build system and can use its language.
ifneq ($(KERNELRELEASE),)
    obj-m := hello.o

# Otherwise we were called directly from the command
# line; invoke the kernel build system.
else
    KERNELDIR ?= /lib/modules/$(shell uname -r)/build
    PWD := $(shell pwd)

default:
    $(MAKE) -C $(KERNELDIR) M=$(PWD) modules
endif
17
ответ дан artm 19 August 2018 в 05:43
поделиться
  • 1
    Ты это пробовал? Я нахожу добавление «CONFIG_MODULE_SIG = n». еще напечатать & quot; module verification failed: signature and/or required key missing - tainting kernel & quot; сообщение. – Nan Xiao 2 November 2015 в 11:05
  • 2
    Да, я попробовал. Какое ядро ​​вы используете? – artm 2 November 2015 в 11:13
  • 3
    Я делаю тест на Ubuntu (uname -a выходы: «Linux ubuntu 3.19.0-25-generic #26~14.04.1-Ubuntu SMP Fri Jul 24 21:16:20 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux») и обнаруживает такое же явление в Suse или RHEL: CONFIG_MODULE_SIG=n не используется в Makefile модуля. Независимо от того, добавьте эту конфигурацию или нет. Первый загрузочный модуль будет печатать & quot; module verification failed: signature and/or required key missing - tainting kernel ", то это сообщение не будет печататься при его загрузке. Пожалуйста, попробуйте, THX! – Nan Xiao 3 November 2015 в 07:33
  • 4
    Это определенно сработало для меня для другого модуля: rtl8188 и Ubuntu 15.1 – JohnAllen 16 April 2016 в 07:42
  • 5
    Какой плохой ответ! Определение CONFIG_MODULE_SIG=n приводит к некорректному анализу module.h при компиляции модуля. У вас будет расхождение структуры структуры ядра и модуля. Почему так много упреков здесь? – Ilya Matveychikov 15 September 2016 в 23:20

В общем случае, если вы создаете собственное ядро ​​и используете make oldconfig. Это копирует удаляемый конфигурационный файл из / boot. В настоящее время большинство модулей ядра должны быть подписаны поставщиком linux. Поэтому отредактируйте файл .config и отключите CONFIG_MODULE_SIG_ALL и CONFIG_MODULE_SIG перед компиляцией ядра.

CONFIG_MODULE_SIG=n
CONFIG_MODULE_SIG_ALL=n
# CONFIG_MODULE_SIG_FORCE is not set 
# CONFIG_MODULE_SIG_SHA1 is not set
# CONFIG_MODULE_SIG_SHA224 is not set
# CONFIG_MODULE_SIG_SHA256 is not set
# CONFIG_MODULE_SIG_SHA384 is not set
9
ответ дан askb 19 August 2018 в 05:43
поделиться
  • 1
    поэтому ядро ​​нужно перекомпилировать здесь? Возможно, извините за хромой вопрос, но я начинаю работать в Linux и перекомпилировать ядро ​​для меня становится красным. Просто пытаюсь работать с Ethernet-соединениями. Похоже, мне нужны дополнительные пакеты, которые мне не нужно делать (и у меня не будет с тех пор, как Wi-Fi тоже не работает) – rank1 28 October 2016 в 11:02

Перейдите в исходный каталог ядра и выполните (например):

./scripts/sign-file sha512 ./signing_key.priv ./signing_key.x509 /lib/modules/3.10.1/kernel/drivers/char/my_module.ko

для ядра 4.4. *, расположение клавиш должно быть следующим:

./scripts/sign-file sha512 ./certs/signing_key.pem ./certs/signing_key.x509 path/to/your/kernel/module.ko 

Проверьте, какой алгоритм дайджеста используется вашим ядром, открыв .config и прочитав его в настройках конфигурации CONFIG_MODULE_SIG.

CONFIG_MODULE_SIG=y CONFIG_MODULE_SIG_ALL=y CONFIG_MODULE_SIG_SHA512=y CONFIG_MODULE_SIG_HASH="sha512"
10
ответ дан Leffe Brune 19 August 2018 в 05:43
поделиться
  • 1
    Это должен быть ответ, он подписал пользовательский модуль сборки. – TerrenceSun 7 March 2018 в 04:02
Другие вопросы по тегам:

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