编写一个简单的linux内核模块

来源:互联网 发布:三星网络电视60寸价格 编辑:程序博客网 时间:2024/05/17 02:02
1. 首先,编写c程序helloworld.c:

#include <linux/init.h>
#include <linux/module.h>
#include <linux/kernel.h>
static int hello_init(void)
{
   printk("<1>Hello World!\n");
   return 0;
}

static void hello_exit(void)
{
   printk("<1>Goodbye!\n");
}

module_init(hello_init);
module_exit(hello_exit);
MODULE_LICENSE("GPL");

2.  编写makefile:

obj-m:=helloworld.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

3.  运行命令make,产生如下文件:
helloworld.o  Module.symvers   helloworld.ko  helloworld.mod.c helloworld.mod.o

4.  加载到内核:insmod helloworld.ko

5.  查看内核模块:lsmod | grep helloworld
Module                  Size  Used by
helloworld              5504  0

6.移除模块: rmmod helloworld.ko
原创粉丝点击