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`