insmod: ERROR: could not insert module module.ko: Invalid parameters

关于向内核插入模块的时候,遇到了这个错误,起初一直怀疑是insmod使用不正确,或是内核版本不支持,后来发现有两个方面的原因:

一:需要将生成的 .ko 文件拷贝到 /lib/modules/4.4.0-21-generic 下。(如果使用 modprobe)

二:不要使用名字module ,换成hello就好了

使用 dmesg 查看自开机以来的信息就可以看到printk输出的信息了;

使用rmmod 可以移除安装了的模块。

c文件:

#include 
#include 
#include 

MODULE_LICENSE("Dual BSD/GPL");

static int hello_init(void)
{
	printk("Hello world\n");
	return 0;
}

static void hello_exit(void)
{
	printk("Bye Corne\n");
}

module_init(hello_init);
module_exit(hello_exit);

makefile文件:

obj-m:=hello.o


CURRENT_PATH :=$(shell pwd)
VERSION_NUM :=$(shell uname -r)
LIUNX_PATH :=/usr/src/linux-headers-$(VERSION_NUM)

all:
	make -C $(LIUNX_PATH) M=$(CURRENT_PATH) modules
clean:
	make -C $(LIUNX_PATH) M=$(CURRENT_PATH) clean


你可能感兴趣的:(Linux)