Au lieu de reconfigurer le noyau, cette erreur (module verification failed
) pourrait être résolu en ajoutant simplement une ligne CONFIG_MODULE_SIG=n
au sommet du Makefile
pour le module lui-même :
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
Il semble que le fournisseur de votre système ait activé la vérification de la signature du module du noyau sur votre noyau, ce qui signifie qu'il ne chargera aucun module que le fournisseur n'a pas signé. En d'autres termes, votre module patché n'est pas signé (correctement) et le noyau refusera de le charger.
Le but de ceci est censé empêcher les logiciels malveillants et les rootkits de charger des modules de noyau malveillants.
Je vous suggère de contacter votre fournisseur. Il peut y avoir une option quelque part sur votre plateforme pour désactiver la vérification des signatures. Sinon, votre fournisseur pourra peut-être signer le module pour vous. Vous pourriez même avoir la clé et les détails de l'algorithme de vérification de signature et pouvez le signer vous-même.
Sans savoir sur quelle plateforme vous travaillez, il est difficile de donner des suggestions plus précises.
Allez dans le répertoire source du noyau et faites (par exemple) :
./scripts/sign-file sha512 ./signing_key.priv ./signing_key.x509 /lib/modules/3.10.1/kernel/drivers/char/my_module.ko
pour le noyau 4.4.*, l'emplacement des clés doit être le suivant :
./scripts/sign-file sha512 ./certs/signing_key.pem ./certs/signing_key.x509 path/to/your/kernel/module.ko
Vérifiez quel est l'algorithme de résumé utilisé par votre noyau en ouvrant .config
et le lire en CONFIG_MODULE_SIG
valeurs de configuration.
CONFIG_MODULE_SIG=y CONFIG_MODULE_SIG_ALL=y CONFIG_MODULE_SIG_SHA512=y CONFIG_MODULE_SIG_HASH="sha512"