系统启动时无法加载内核模块。我发现有一篇文章建议我尝试以下步骤:
(a)为kmodule
(我创建的模块)创建目录:
# mkdir -p /lib/modules/$(uname -r)/kernel/drivers/mymodule
(b)将kmodule
复制到该目录:
# cp kmodule.ko /lib/modules/$(uname -r)/kernel/drivers/mymodule/
(c)编辑/etc/modules file
并在其中添加一条包含模块名称的行。在我的情况下,它是kmodule
,如下所示:
# vi /etc/modules
1 # /etc/modules: kernel modules to load at boot time.
2 #
3 # This file contains the names of kernel modules that should beloaded
4 # at boot time, one per line. Lines beginning with "#" are ignored.
5 kmodule
(d)重新启动系统以查看更改。使用lsmod
命令检查模块是否已加载。
# lsmod | grep kmodule
我的问题:当我重启系统和使用cmd $ cat /var/log/syslog | grep kmodule
进行调试时,它没有加载。
我发现了这个:
May 20 15:40:14 SARATHI kernel: [17499.486762] kmodule: loading out-of-tree module taints kernel.
May 20 15:40:14 SARATHI kernel: [17499.486800] kmodule: module verification failed: signature and/or required key missing - tainting kernel
May 20 19:31:46 SARATHI systemd-modules-load[243]: Failed to find module 'kmodule'
这是什么意思?如何解决?
注意:我是内核模块的新手,我正在使用Ubuntu 16.04。另请注意,当我使用insmod cmd手动加载时,它已成功加载。