《嵌入式设备驱动技术》课程实验报告班级:学号: (需要填写)姓名: (需要填写)指导老师:成绩:实验二Linux 内核模块一、目的与任务目的:掌握 Linux 内核模块的编程方法
任务:编写简单内核模块程序
二、内容、要求与安排方式1、实验内容与要求:1)了解 Linux 内核模块程序结构;2)
熟悉模块加载和模块卸载方法
2、实验安排方式:采用1 人 1 组,上机在 Linux 系统下进行编程实验
三、实验设备1、所用设备: PC 机一台四、实验过程内核模块模块是可以根据实际需要可以动态加载和卸载到内核中的代码
它们扩展了内核的功能,而无需重启系统,就可以进行模块加载,并工作
编写 hello
c makefile 模块编译将 hello
c 和 Makefile 放在同一路径下进行编译,编译成功,会在当前路径下生成 hello
ko 相关指令lsmod 查看已经加载到内核中的模块insmod 加载模块到内核中rmmod 从内核卸载模块depmod 生成模块所需要的依赖测试结果模块加载加载 hello
ko 模块到内核中模块加载成功,查看模块成功加载会显示以下结果并且可以查看内核打印的消息模块卸载成功卸载 hello 模块后,可以查看内核是否正常打印出我们预设在程序的打印信息
可以看到终端上显示module exit success,说明通过rmmod 成功卸载 hello
ko 通过 lsmod 去查看当前的内核模块,就会发现hello
ko 已经消失不见了
五、程序清单hello
c #include //所有模块都会需要这个头文件#include //下面的宏需要static int __init hello_init(void){ printk(KERN_INFO "module init success\n"); return 0; } static void