2024年4月28日发(作者:)
实验7 Linux内核模块实验
一、实验目的
1、学习Linux内核模块的编写方法;
2、学习Linux模块的编译方法;
3、学习Linux模块的装载、卸载方法。
二、实验内容
1、编写简单的Hello内核模块程序;
2、对程序文件交叉编译成内核模块;
3、通过网络将内核模块下载到实验箱上;
4、在实验箱上对内核模块进行装载和卸载实验。
三、实验操作方法
1、编写Hello内核模块程序
文件名为hello.c,内容如下:
#include
#include
static int hello_init(void)
{
}
static void hello_exit(void)
{
}
module_init(hello_init);
module_exit(hello_exit);
MODULE_AUTHOR(“My name”);
MODULE_DESCRIPTION(“A simplest Hello Module”);
printk(“Hello Kernel exit!n”);
printk(“Hello Kernel enter!n”);
return 0;
//在“/usr/local/arm/2.95.3/arm-linux/include”下面
2、编译内核模块
(1)复制与修改version.h文件
将“/usr/include/linux”下的文件version.h,复制到“/usr/local/arm/2.95.3/arm-linux/include/linux”
下面。修改文件version.h的内容,将操作系统的版本号改为实验箱上操作系统的版本号,如改为:
2.4.18-rmk7-pxa1。
(2)编译内核模块
编译命令如下:
arm-linux-gcc –D __KERNEL__ -D MODULE –I/usr/local/arm/2.95.3/arm-linux/include –O2 –Wall
1
–O –c hello.c
正确编译后会产生在ARM上运行的内核模块“hello.o”。
3、通过超级终端下载程序
(1)复制下载文件到“windows-Linux共享目录”下
windows操作系统与Linux操作系统的共享目录为:
Windows下:e:VMwareshare
Linux下:/mnt/hgfs/share
# cp hello /mnt/hgfs/share ↙
在PC机端的Linux操作系统下执行:
(2)下载文件
通过超级终端对目标板进行操作,下载文件。首先转到下载欲保存文件的目录“/mnt”。在超级
终端执行如下命令:
# cd /mnt ↙
然后利用超级终端下载文件。在超级终端进行操作: 点击“传送”主菜单、“发送文件”,在弹
出的“发送文件”对话框选择“e:VMwareshar”下的“hello”文件,点击“发送”,即可就文件传送
到目标板的“/mnt”目录下。
(3)将内核模块文件复制到合适的目录下
在目标板上,如执行下面操作:
# cd /mnt ↙
# cp hello.o /tmp ↙
即将内核模块文件复制到“/tmp”目录下。
4、挂载与卸载内核模块
(1)挂载内核模块
执行如下操作:
# cd /tmp ↙
# insmod hello.o ↙
# Hello Kernel enter!
正确挂载后会显示出:
(2)卸载内核模块
执行如下操作:
# rmmod hello.o ↙
# Hello Kernel exit!
正确卸载后会显示出:
2


发布评论