Ubuntu18编写一个简单的内核模块

实验环境:

Ubuntu18 +5.4.0-73-generic

在这里插入图片描述

1.编写一个简单的内核模块

vi test.c

#include<linux/module.h>
#include<linux/kernel.h>
#include<linux/init.h>

static int __init test_init(void)
{
	printk("<1>Hello, World! from the kernel space...\n");
	return 0;
}

static void __exit test_exit(void)
{
	printk("<1>Good Bye, World! leaving kernel space...\n");
}

module_init(test_init);	// 注册模块
module_exit(test_exit);	// 注销模块
MODULE_LICENSE("GPL"); 	//告诉内核该模块具有GNU公共许可证

在这里插入图片描述

2.创建Makefile文件

touch Makefile

文件中加入代码:

 Makefile 4.0
obj-m := test.o
CURRENT_PATH := $(shell pwd)
LINUX_KERNEL := $(shell uname -r)
LINUX_KERNEL_PATH := /usr/src/linux-headers-$(LINUX_KERNEL)

all:
	make -C $(LINUX_KERNEL_PATH) M=$(CURRENT_PATH) modules
clean:
	make -C $(LINUX_KERNEL_PATH) M=$(CURRENT_PATH) clean

在这里插入图片描述

3.安装库 然后编译 生成test.ko文件

sudo apt-get install libelf-dev
make

在这里插入图片描述
在这里插入图片描述

4.加载模块

Sudo insmod test.ko

5.查看加载的模块

lsmod | grep test

在这里插入图片描述

6.查看日志输出内容

dmesg

在这里插入图片描述

7.卸载模块

sudo rmmod test

在这里插入图片描述

查看是否移除成功

lsmod | grep test

在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值