码迷,mamicode.com
首页 > 系统相关 > 详细

【原创】Linux 内核模块编程

时间:2015-06-29 16:17:33      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:

sudo gedit hello.c

   1: #include <linux/module.h>
   2:  
   3: #include <linux/kernel.h>
   4: #include <linux/init.h>
   5:  
   6: MODULE_LICENSE("GPL");
   7: MODULE_AUTHOR("leemo");
   8: MODULE_DESCRIPTION("Hello World Module");
   9: MODULE_ALIAS("a simplest module");
  10:  
  11: static int __init hello_init(void)
  12: {
  13:     printk(KERN_EMERG"Hello World! This is leemo‘s work\n");
  14:     return 0;
  15: }
  16:  
  17: static void __exit hello_exit(void)
  18: {
  19:     printk("<6>hello exit\n");
  20:     return;
  21: }
  22:  
  23: module_init(hello_init);
  24: module_exit(hello_exit);
  25:  

sudo gedit Makefile

   1:  
   2:  
   3: bj-m := hello.o
   4:  
   5:  
   6:  
   7: DIR := /lib/modules/$(shell uname -r)/build 
   8:  
   9: ll:
  10:    make -C $(KDIR) M=$(PWD) modules
  11: lean:
  12:    rm  *.o *.ko Mo* mo* *.mo*
  13:  
  14:  
  15:  

编译

make

技术分享

加载模块

sudo insmod hello.ko

使用lsmod查看模块

技术分享

使用dmesg查看

技术分享

完成。

卸载模块

rmmod  hello.ko.

【原创】Linux 内核模块编程

标签:

原文地址:http://www.cnblogs.com/kavs/p/4607410.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!