无法将模块插入内核

时间:2019-03-10 10:55:31

标签: ubuntu linux-kernel kernel-module insmod

这是我对内核模块的介绍。我正在关注The Linux Kernel Module Programming Guide,并编写了我的第一个简单模块。

这是我的模块文件hello.c;

/*
*  hello.c − The simplest kernel module. 
*/
#include <linux/module.h>       /* Needed by all modules */
#include <linux/kernel.h>       /* Needed for KERN_INFO */

int init_module(void)
{        
printk(KERN_INFO "Hello world 1.\n");        

/*          
* A non 0 return means init_module failed; module can't be loaded.          
*/        
return 0;
}

void cleanup_module(void){
    printk(KERN_INFO "Goodbye world 1.\n");
}

module_init(init_module);
module_exit(cleanup_module);

这是我的Makefile

obj−m += hello.o

all:
    make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
clean:
    make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean

当我运行make命令时,这就是我得到的..

  

make -C /lib/modules/4.15.0-45-generic/build M = / home / nailaakbar模块

     

make 1:输入目录'/usr/src/linux-headers-4.15.0-45-generic'

     

构建模块,第2阶段。

     

MODPOST 0个模块

     

make 1:离开目录'/usr/src/linux-headers-4.15.0-45-generic'

make result

但是现在当我尝试使用此命令将其插入内核时

sudo insmod hello.k

我收到此错误

  

insmod:错误:无法加载模块hello.ko:没有此类文件或目录

我尝试了不同的解决方案,例如使两个函数都静态化或更改文件位置,但没有任何解决方法。

  

当前,我正在桌面上运行所有这些命令,并且正在使用双   为Linux环境启动。

谁能帮我解决我在这里做错了吗?

可能的重复问题实际上解决了我的问题,但这不是我的直接问题。我在问题搜索过程中遇到了这个问题,但没想到。实际上,这是对我的问题的一条评论,改变了我对错误的看法,然后提到的答案解决了我的问题。

0 个答案:

没有答案