Linux学习(5)-模块的装载配置

#1.编写MakeFile
```
obj-m:=xxx.o  //名称可改


//以下内容可以不用动

CURRENT_PATH:=$(shell pwd)


LINUX_KERNEL:=$(shell uname -r)

LINUX_KERNEL_PATH:=/usr/src/linux-headers-$(LINUX_KERNEL)


all:
        make -C $(LINUX_KERNEL_PATH) M=$(CURRENT_PATH) modules


clean:
        make -C $(LINUX_KERNEL_PATH) M=$(CURRENT_PATH) clean

```
#2.编写模块函数
```
//一个简单的helloworld函数

#include <linux/init.h>
#include<linux/kernel.h>
#include <linux/module.h>


MODULE_LICENSE("GPL");//许可证

static int __init lkm_init(void) //入口函数
{
        printk("Hello,Linux!\n");
        return 0;
}


static void __exit lkm_exit(void)//出口函数
{
        printk("Good bye!\n");
}


module_init(lkm_init);//入口点
module_exit(lkm_exit);//出口点





```
#3.插入内核模块
`sudo insmod xxx.ko`


#4.打印日志信息
因为其结果不可能直接打印在终端,所以需要打印日志信息来查看结果
`dmesg`

相关推荐