En lugar de reconfigurar el kernel, este error (module verification failed
) podría resolverse simplemente agregando una línea CONFIG_MODULE_SIG=n
hasta la parte superior del Makefile
para el propio módulo:
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
Parece que el proveedor de su sistema ha habilitado la verificación de la firma del módulo del kernel en su kernel, lo que significa que no cargará ningún módulo que el proveedor no haya firmado. En otras palabras, su módulo parcheado no está firmado (correctamente) y el núcleo se negará a cargarlo.
Se supone que el objetivo de esto es evitar que el malware y los rootkits carguen módulos de kernel maliciosos.
Le sugiero que se ponga en contacto con su proveedor. Puede haber una opción en algún lugar de su plataforma para deshabilitar la verificación de firmas. De lo contrario, es posible que su proveedor pueda firmar el módulo por usted. Incluso podría tener la clave y los detalles del algoritmo de verificación de firma y puede firmarlo usted mismo.
Sin saber en qué plataforma se está ejecutando, es difícil dar sugerencias más específicas.
Vaya al directorio fuente del kernel y haga (por ejemplo):
./scripts/sign-file sha512 ./signing_key.priv ./signing_key.x509 /lib/modules/3.10.1/kernel/drivers/char/my_module.ko
para el kernel 4.4.*, la ubicación de las claves debe ser la siguiente:
./scripts/sign-file sha512 ./certs/signing_key.pem ./certs/signing_key.x509 path/to/your/kernel/module.ko
Compruebe cuál es el algoritmo de resumen que utiliza su núcleo abriendo .config
y leyéndolo en CONFIG_MODULE_SIG
valores de configuración.
CONFIG_MODULE_SIG=y CONFIG_MODULE_SIG_ALL=y CONFIG_MODULE_SIG_SHA512=y CONFIG_MODULE_SIG_HASH="sha512"