【原创】Linux 内核模块编程

sudo gedit hello.c

   #include <linux/module.h>
   #include <linux/kernel.h>
   #include <linux/init.h>
    MODULE_LICENSE("GPL");
   MODULE_AUTHOR("leemo");
    MODULE_DESCRIPTION("Hello World Module");
    MODULE_ALIAS("a simplest module");
   static int __init hello_init(void)
   {
      printk(KERN_EMERG"Hello World! This is leemo's work
");
       return 0;
   }
   static void __exit hello_exit(void)
   {
      printk("<6>hello exit
");
       return;
   }
   module_init(hello_init);
   module_exit(hello_exit);
  

sudo gedit Makefile

bj-m := hello.o
 DIR := /lib/modules/$(shell uname -r)/build 
  ll:
 make -C $(KDIR) M=$(PWD) modules
 lean:
 rm  *.o *.ko Mo* mo* *.mo*

编译

make

image

加载模块

sudo insmod hello.ko

使用lsmod查看模块

image

使用dmesg查看

image

完成。

卸载模块

rmmod  hello.ko.

作者:leemoaly
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
原文地址:https://www.cnblogs.com/kavs/p/4607410.html