- 4
- 0
- 约1.75千字
- 约 14页
- 2021-03-24 发布于北京
- 举报
广州创龙电子科技有限公司
Guangzhou Tronlong Electronic Technology Co., Ltd
内核模块简介
模块开发常用的命令
最简单的模块HelloWorld
01
内核模块简介
第 1 部分
内核模块简介
内核模块是Linux内核向外部提供的一个插口,其全称为动态可加载内核模块(Loadable Kernel Module,LKM),简称为模块。
何为内核模块
作用:
不用编译进内核,控制内核大小;
新增或删除功能,不需重新编译内核,只需加载或卸载模块。
内核模块简介
内核模块程序结构
1. 模块加载函数
Linux内核模块加载函数一般以__init标识声明,示例代码如下:
static int __init myModule_init(void)
{
return 0;
}
module_init(myModule_init);
内核模块简介
内核模块程序结构
2. 模块卸载函数
模块卸载函数一般以__exit标识声明,示例代码如下:
static void __exit myModule_exit(void)
{
}
module_exit(myModule_exit);
内核模块简介
内核模块程序结构
3. 模块声明
MODULE_LICENSE(“GPL”); 内核可以识别的许可证有GPL(任意版本GNU通用 公共许可证)、GPL v2等
MODULE_AUTHOR(“author”); 声明作者信息,可不用
MODULE_VERSION (“version”); 声明版本信息,可不用
MODULE_DESCRIPTION (“description”); 声明模块功能,可不用
注意:许可证(LICENSE)声明描述内核模块的许可权限,如果不声明LICENSE,模块被加载时,将收到内核被污染(kernel tainted)的警告.
02
模块开发常用的命令
第 2 部分
模块开发常用的命令
insmod XXX.ko 加载内核模块
rmmod XXX 卸载内核模块
lsmod 查看所有已加载的内核模块
modprobe XXX 可加载指定的个别模块,或是载入一组相依赖的模块
modinfo XXX.ko 查看模块信息
03
最简单的模块HelloWorld
第 3 部分
最简单的模块HelloWorld
编写hello.c
static int __init hello_init(void)
{
printk(Hello World!\n);
return 0;
}
static void __exit hello_exit(void)
{
printk(Goodbye World!\n );
}
最简单的模块HelloWorld
编写Makefile
ifneq ($(KERNELRELEASE),)
obj-m := hello.o
else
KDIR=内核路径
CROSS_COMPILE=编译工具路径
all:
make -C $(KDIR) M=$(PWD) modules ARCH=arm CROSS_COMPILE=$(CROSS_COMPILE)
clean:
rm -rf *.ko *.o *.mod.o *.mod.c *.symvers modul* .hello.* .tmp_versions .*.*.cmd
help:
@echo make KDIR=you kernel path CROSS_COMPILE=your CROSS_COMPILE
endif
最简单的模块HelloWorld
如果不会编写Makefile怎么办?
谢谢
广州创龙电子科技有限公司
官网:
论坛:
微信公众号:广州创龙
您可能关注的文档
- 西南石油大学-infinite团队设计集0-design summary.pdf
- 自动镭雕检查机群光方案20160119.ppt
- 课件与1课件与hive操作手册v0 1.pdf
- 基于epstar业务构建平台开发的产品展示.ppt
- 20161122-华斯股份-调研纪要.pdf
- 交流电机绕组基本理论五.pdf
- 简历模板4表格简历表格四页01.pdf
- 基于oop思想设计实训学员管理系统项目介绍.ppt
- 第四章3信号检测与估计.ppt
- 线性代数工期末复习线性代数复习_1.ppt
- 广东省广州省实验中学教育集团2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 广东省广州大学附属中学2025-2026学年八年级上学期奥班期中物理试题(解析版).docx
- 广东省广州市第八十六中学2025-2026学年八年级上学期期中物理试题(含答案).docx
- 广东省广州市第八十九中学2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 广东省广州市第二中学2025-2026学年八年级上学期期中考试物理试题(含答案).docx
- 广东省广州市第八十六中学2025-2026学年八年级上学期期中物理试题(解析版).docx
- 广东省广州市第八十九中学2025-2026学年八年级上学期期中考试物理试题(含答案).docx
- 广东省广州市第二中学2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 2026《中国人寿上海分公司营销员培训体系优化研究》18000字.docx
- 《生物探究性实验教学》中小学教师资格模拟试题.docx
原创力文档

文档评论(0)