步骤1-Helloworld源码“hello.c”
序号 | 内容 |
1 | 头文件(必选) |
2 | 模块参数(可选) |
3 | 模块功能函数(可选) |
4 | 其他(可选) |
5 | 模块加载函数(必须) |
6 | 模块卸载函数(必须) |
7 | 模块许可声明(必须) |
(1)头文件
驱动模块会使用内核中许多函数,所以需要包含必要的头文件。“init.h”中包含了模块加载函数和模块释放函数的宏定义。
(2)模块参数
模块参数是驱动模块加载时,需要传递给驱动模块的参数。如果一个驱动模块需要完成两种功能,那么就可以通过模块参数选择使用哪一种功能。
(3)模块加载函数
模块加载函数是模块初始化函数,必需。
(4)模块卸载函数
模块卸载函数是模块卸载时需要执行的函数,清除了加载函数里分配的资源。
(5)模块许可声明
模块许可声明表面模块受内核支持的程度。需要使用MODULE_LICENSE表示该模块的许可权限。内核可识别的许可权限如下:
“GPL”
“GPL V2”
“GPL and additional rights”
“Dual BSD/GPL”
“Dual MPL/GPL”
“Proprietary”//专有许可权
步骤2-Makefile文件“Makefile”
内核源码所在文件夹
步骤3-make
生成了.ko文件
步骤4-加载模块
查看模块
步骤5-卸载模块