我正在使用 Ubuntu 14.04 LTS 和内核版本 3.13.11.4。我尝试加载修补的 KVM 模块 kvm 和 kvm-intel,但出现以下错误 kvm:模块验证失败:签名...
我正在使用 Ubuntu 14.04 LTS
内核版本 3.13.11.4
.
我正在尝试加载已修补的 KVM 模块 kvm
, kvm-intel
但收到以下错误
kvm: module verification failed: signature 和/or required key missing - tainting kernel
andkvm: module has bad taint, not creating trace events
.
使用的源与创建我当前运行的图像的源相同。
我已经检查了符号并确保错误不是由于未包含 EXPORT_SYMBOL_GPL()
在我导出函数的修补文件中而导致的。
我也看到了一些关于不同内核版本导致此错误的内容,但我使用与创建修补的 kvm 模块相同的源来构建启动内核。
一切都编译成功,没有任何警告。任何帮助都非常感谢!
转到内核源目录并执行(例如):
./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"
注意:如果你正在使用未构建的现有内核,请通过查看相应的配置文件(主要是
/proc/*
或 )/boot/*
。对于 Ubuntu 来说,在/boot/config-$(uname -r)
.