本实验通过编写Linux内核模块,加载内核模块,并测试结果,了解Linux内核模块的概念、编译方法、安装和测试方法。
a.切换至home目录(该目录初始应该是空目录)下输入“mkdir hello”新建hello文件,“cd hello”进入hello文件。
b.输入"vim myhello.c",输入以下代码
#include<linux/init.h>
#include<linux/module.h>
#include<linux/kernel.h>static int hello_init(void)
{printk(KERN_ALERT"hello,wordn");return 0;
}
static void hello_exit(void)
{printk(KERN_ALERT"goodbyen");
}module_init(hello_init);
module_exit(hello_exit);
MODULE_LICENSE("GPL");
保存并退出(“esc”退出编辑模式,“:wq”保存并退出)
c.输入"vim Makefile",输入以下代码
obj-m :=hello.o
hello-objs:=myhello.o
KDIR :=/lib/modules/$(shell uname -r)/build
PWD :=$(shell pwd)
default:make -C $(KDIR) M=$(PWD) modules//make前面为Tab,并不是空格,直接复制需要改下
clean:make -C $(KDIR) M=$(PWD) clean
保存并退出(“esc”退出编辑模式,“:wq”保存并退出)
d.输入“make”,进行模块编译,如果报错很可能是代码格式问题,请仔细检查,一段代码前不是空格(直接“CV大法”导致的后果)
e.输入“insmod hello.ko”,加载模块
f.输入"dmesg",查看
g.输入“rmmod hello”,卸载模块
a.切换至home目录下输入“mkdir test1”新建test1文件,“cd test1”进入test1文件。
b.输入"vim module1.c",输入以下代码
#include <linux/kernel.h>
#
本文发布于:2024-01-31 10:20:01,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170666760427820.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |