【原创】Linux 内核模块编程

时间:2022-10-08 15:46:08

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\n");
       return 0;
   }
   static void __exit hello_exit(void)
   {
      printk("<6>hello exit\n");
       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

【原创】Linux 内核模块编程

加载模块

sudo insmod hello.ko

使用lsmod查看模块

【原创】Linux 内核模块编程

使用dmesg查看

【原创】Linux 内核模块编程

完成。

卸载模块

rmmod  hello.ko.