linux模块编程的流程:
一,编写源文件,如mymodule.c
- #include <linux/module.h>
- #include <linux/kernel.h>
- #include <linux/init.h>
- static int __init lkp_init(void)
- {
- printk("hello\n");
- return 0;
- }
- static void __exit lkp_exit(void)
- {
- printk("exit\n");
- }
- module_init(lkp_init);
- module_exit(lkp_exit);
- MODULE_LICENSE("GPL");
二.编写Makefile文件
- #Makefile2.6
- obj-m :=mymodule.o
- CURRENT_PATH:=$(shell pwd)
- LINUX_KERNEL:=$(shell uname -r)
- LINUX_KERNEL_PATH:=/usr/src/kernels/$(LINUX_KERNEL)
- all:
- make -C $(LINUX_KERNEL_PATH) M=$(CURRENT_PATH) modules
- clean:
- make -C $(LINUX_KERNEL_PATH) M=$(CURRENT_PATH) clean
三 .执行 make命令,生成内核模块
四. 用root身份执行insmod mymodule.ko,插入内核模块。
五. 用root身份执行rmmod mymodule,删除内核模块。
阅读(1280) | 评论(0) | 转发(0) |