Anstatt den Kernel neu zu konfigurieren, wird dieser Fehler (module verification failed
) konnte durch Hinzufügen einer Zeile CONFIG_MODULE_SIG=n
gelöst werden an die Spitze der Makefile
für das Modul selbst:
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
Es scheint, als hätte der Anbieter Ihres Systems die Überprüfung der Kernelmodul-Signatur auf Ihrem Kernel aktiviert, was bedeutet, dass kein Modul geladen wird, das der Anbieter nicht signiert hat. Mit anderen Worten, Ihr gepatchtes Modul ist nicht (ordnungsgemäß) signiert und der Kernel wird sich weigern, es zu laden.
Der Sinn dahinter soll Malware und Rootkits daran hindern, bösartige Kernel-Module zu laden.
Ich empfehle Ihnen, sich an Ihren Anbieter zu wenden. Möglicherweise gibt es irgendwo auf Ihrer Plattform eine Option zum Deaktivieren der Signaturprüfung. Andernfalls kann Ihr Anbieter das Modul möglicherweise für Sie signieren. Möglicherweise haben Sie sogar den Schlüssel und die Details des Signaturprüfalgorithmus und können ihn selbst signieren.
Ohne zu wissen, auf welcher Plattform Sie arbeiten, ist es schwierig, spezifischere Vorschläge zu machen.
Gehen Sie in das Kernel-Quellverzeichnis und tun Sie (z. B.):
./scripts/sign-file sha512 ./signing_key.priv ./signing_key.x509 /lib/modules/3.10.1/kernel/drivers/char/my_module.ko
Für Kernel 4.4.* sollte die Schlüsselposition wie folgt aussehen:
./scripts/sign-file sha512 ./certs/signing_key.pem ./certs/signing_key.x509 path/to/your/kernel/module.ko
Überprüfen Sie, welchen Digest-Algorithmus Ihr Kernel verwendet, indem Sie .config
öffnen und lesen Sie es in CONFIG_MODULE_SIG
Konfigurationswerte.
CONFIG_MODULE_SIG=y CONFIG_MODULE_SIG_ALL=y CONFIG_MODULE_SIG_SHA512=y CONFIG_MODULE_SIG_HASH="sha512"