内核模块的加载和卸载

今天终于将加载和卸载完成了,之前老是出现问题

 

模块的定义:

vim hello.c

 

#include
#include
#include

MODULE_LICENSE("GPL");
static int __init lkp_init(void)
{
   printk("<1> Hello,world! from the kernel space...\n");

   return 0;
}

static void __exit lkp_cleanup(void)
{
   printk("<1> Goodbey,World! leaving kernel space ...\n");
}

module_init(lkp_init);

module_exit(lkp_cleanup);

 

Makefile 的编写:vim Makefile

obj-m:=hello.o

LINUX_KERNEL_PATH=/usr/src/linux-headers-$(shell uname -r)

all:
 make -C $(LINUX_KERNEL_PATH) M=$(shell pwd) modules
clean:
 make -C $(LINUX_KERNEL_PATH) M=$(shell pwd) clean

 

注意Makefile中空格和路径的获取

加载时进入超级用户权限 sudo su

再用insmod hello.ko加载

或者用 sudo insmod hello.o加载

查看用 dmesg

卸载用remmod hello.o

你可能感兴趣的:(内核模块的加载和卸载)