Invece di riconfigurare il kernel, questo errore (module verification failed
) potrebbe essere risolto semplicemente aggiungendo una riga CONFIG_MODULE_SIG=n
all'inizio del Makefile
per il modulo stesso:
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
Sembra che il fornitore del tuo sistema abbia abilitato la verifica della firma del modulo del kernel sul tuo kernel, il che significa che non caricherà alcun modulo che il fornitore non ha firmato. In altre parole, il tuo modulo patchato non è firmato (correttamente) e il kernel si rifiuterà di caricarlo.
Lo scopo di questo dovrebbe impedire a malware e rootkit di caricare moduli del kernel dannosi.
Ti consiglio di contattare il tuo fornitore. Potrebbe esserci un'opzione da qualche parte sulla tua piattaforma per disabilitare il controllo della firma. In caso contrario, il tuo fornitore potrebbe essere in grado di firmare il modulo per te. Potresti anche avere la chiave e i dettagli dell'algoritmo di verifica della firma e puoi firmarlo tu stesso.
Senza sapere su quale piattaforma stai girando, è difficile dare suggerimenti più specifici.
Vai alla directory dei sorgenti del kernel e fai (per es.):
./scripts/sign-file sha512 ./signing_key.priv ./signing_key.x509 /lib/modules/3.10.1/kernel/drivers/char/my_module.ko
per il kernel 4.4.*, la posizione delle chiavi dovrebbe essere la seguente:
./scripts/sign-file sha512 ./certs/signing_key.pem ./certs/signing_key.x509 path/to/your/kernel/module.ko
Controlla qual è l'algoritmo digest che sta usando il tuo kernel aprendo .config
e leggendolo in CONFIG_MODULE_SIG
valori di configurazione.
CONFIG_MODULE_SIG=y CONFIG_MODULE_SIG_ALL=y CONFIG_MODULE_SIG_SHA512=y CONFIG_MODULE_SIG_HASH="sha512"