Linux kernel 模块 hello 测试

耗尽温柔 提交于 2019-12-03 07:07:14

原文链接:https://www.cnblogs.com/nerohwang/p/3621316.html

hello.c 文件:

#include <linux/kernel.h> /*Needed by all modules*/
#include <linux/module.h> /*Needed for KERN_* */
#include <linux/init.h> /* Needed for the macros */

MODULE_LICENSE("GPL");

static int year=2014;

static int hello_init(void)
{
  printk(KERN_WARNING "Hello kernel, it's %d!\n",year);
  return 0;
}


static void hello_exit(void)
{
  printk("Bye, kernel!\n");
}

/* main module function*/
module_init(hello_init);
module_exit(hello_exit);

Makefile文件:

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

测试结果:

[root@controller test]# make CONFIG_STACK_VALIDATION=
make -C /lib/modules/3.10.0-693.el7.x86_64/build M=/root/test modules
make[1]: Entering directory `/usr/src/kernels/3.10.0-693.el7.x86_64'
  CC [M]  /root/test/hello.o
  Building modules, stage 2.
  MODPOST 1 modules
  CC      /root/test/hello.mod.o
  LD [M]  /root/test/hello.ko
make[1]: Leaving directory `/usr/src/kernels/3.10.0-693.el7.x86_64'

查看编译后文件:

[root@controller test]# ll
total 204
-rw-r--r-- 1 root root   441 Nov  2 14:28 hello.c
-rw-r--r-- 1 root root 93768 Nov  2 14:30 hello.ko
-rw-r--r-- 1 root root   787 Nov  2 14:30 hello.mod.c
-rw-r--r-- 1 root root 52872 Nov  2 14:30 hello.mod.o
-rw-r--r-- 1 root root 44016 Nov  2 14:30 hello.o
-rw-r--r-- 1 root root   166 Nov  2 14:29 Makefile
-rw-r--r-- 1 root root    27 Nov  2 14:30 modules.order
-rw-r--r-- 1 root root     0 Nov  2 14:30 Module.symvers

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!