首页 > 系统服务 > 详细

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

时间:2020-06-21 11:32:39      阅读:84      评论:0      收藏:0      [点我收藏+]

#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`

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

原文:https://www.cnblogs.com/Alex0001/p/13171691.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!