2.2内核模块编译

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2.2内核模块编译相关的知识,希望对你有一定的参考价值。

内核模块编译

20135206 于佳心

?

基础知识了解:

模块构造函数:

执行insmod或modprobe指令加载内核模块时会调用的初始化函数。函数原型必须是module_init(),括号内是函数指针

模块析构函数:

执行rmmod指令卸载模块时调用的函数。函数原型是module_exit()

模块许可声明:

函数原型是MODULE_LICENSE(),告诉内核该程序使用的许可证,不然在加载时它会提示该模块污染内核。一般会写GPL。

先写一个简单的代码

技术分享

写Makefile

技术分享

通过make来执行

技术分享

Make之后出现了好多文件

技术分享

加载模块

sudo insmod printname.ko

技术分享

测试模块

dmesg看内核信息

卸载模块

sudo rmmod printname

?

接下来编写更复杂的代码,实现输出当前进程信息的功能以及实现读取进程链表的功能,这里只展示输出进程列表的截图

技术分享

技术分享

技术分享

以上是关于2.2内核模块编译的主要内容,如果未能解决你的问题,请参考以下文章

驱动编译进内核和编译模块的区别

Linux内核配置编译以及模块开发

Linux内核配置编译以及模块开发

内核模块编译

内核模块编译过程摘要记录

内核模块编译实践