use*_*743 27 c linux kvm kernel-module linux-kernel
我正在使用Ubuntu 14.04 LTS和内核版本3.13.11.4.
我正在尝试加载修补的KVM模块kvm,kvm-intel并且我收到以下错误
kvm: module verification failed: signature and/or required key missing - tainting kernel
和kvm: module has bad taint, not creating trace events.
使用的源与创建我当前正在运行的映像的源相同.
我检查了符号,并确保错误不是因为不包括EXPORT_SYMBOL_GPL()在我导出函数的修补文件中.
我也看到了一些关于不同内核版本的问题导致了这个错误,但我构建了我用我用来创建补丁kvm模块的相同源代码启动的内核.
一切都编译没有警告.任何帮助表示赞赏!
art*_*rtm 22
module verification failed可以通过在模块本身CONFIG_MODULE_SIG=n的顶部添加一行来解决此错误(),而不是重新配置内核Makefile:
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
Run Code Online (Sandbox Code Playgroud)
ask*_*skb 11
通常,如果您正在构建自定义内核并使用make oldconfig.这将从/ boot复制现有的config-*文件.现在大多数内核模块需要由linux供应商签名.因此,在编译内核之前,请编辑.config并禁用CONFIG_MODULE_SIG_ALL和CONFIG_MODULE_SIG.
CONFIG_MODULE_SIG=n
CONFIG_MODULE_SIG_ALL=n
# CONFIG_MODULE_SIG_FORCE is not set
# CONFIG_MODULE_SIG_SHA1 is not set
# CONFIG_MODULE_SIG_SHA224 is not set
# CONFIG_MODULE_SIG_SHA256 is not set
# CONFIG_MODULE_SIG_SHA384 is not set
Run Code Online (Sandbox Code Playgroud)
小智 11
转到内核源目录并执行(例如):
./scripts/sign-file sha512 ./signing_key.priv ./signing_key.x509 /lib/modules/3.10.1/kernel/drivers/char/my_module.ko
Run Code Online (Sandbox Code Playgroud)
对于内核4.4.*,键位置应如下所示:
./scripts/sign-file sha512 ./certs/signing_key.pem ./certs/signing_key.x509 path/to/your/kernel/module.ko
Run Code Online (Sandbox Code Playgroud)
通过.config在CONFIG_MODULE_SIG配置值中打开并读取内核,查看内核使用的摘要算法.
CONFIG_MODULE_SIG=y CONFIG_MODULE_SIG_ALL=y CONFIG_MODULE_SIG_SHA512=y CONFIG_MODULE_SIG_HASH="sha512"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
57912 次 |
| 最近记录: |