Ubuntu上测试linux内核模块加载、卸载

前端之家收集整理的这篇文章主要介绍了Ubuntu上测试linux内核模块加载、卸载前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
1. 查看内核版本: @H_502_1@ @H_502_1@ @H_502_1@root@ubuntu:/usr/src# uname -a @H_502_1@Linux ubuntu 4.4.0-21-generic #37-Ubuntu SMP Mon Apr 18 18:33:37 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux @H_502_1@ @H_502_1@ @H_502_1@ @H_502_1@ @H_502_1@2. 下载源码: @H_502_1@从https://www.kernel.org/pub/linux/kernel/ @H_502_1@ @H_502_1@ @H_502_1@root@ubuntu:~/hello_module# cd /usr/src/ @H_502_1@root@ubuntu:/usr/src# ls @H_502_1@linux-4.4.1 linux-4.4.1.tar.gz linux-headers-4.4.0-21 linux-headers-4.4.0-21-generic @H_502_1@ @H_502_1@ @H_502_1@解压后进入目录,分别执行 @H_502_1@make oldconfig @H_502_1@make prepare @H_502_1@make scripts @H_502_1@ @H_502_1@ @H_502_1@其中报错: @H_502_1@scripts/sign-file.c:23:30: fatal error: openssl/opensslv.h: No such file or directory @H_502_1@ @H_502_1@ @H_502_1@sudo apt-get install libssl-dev @H_502_1@说明:我这里是没有网络的,替换了阿里源。 @H_502_1@ @H_502_1@ @H_502_1@3. 建立文件夹、文件: @H_502_1@hello.c @H_502_1@Makefile @H_502_1@ @H_502_1@ @H_502_1@4. 编译文件: @H_502_1@make @H_502_1@ @H_502_1@ @H_502_1@5. 加载模块、卸载模块: @H_502_1@root@ubuntu:~/hello_module# insmod hello.ko @H_502_1@root@ubuntu:~/hello_module# @H_502_1@root@ubuntu:~/hello_module# @H_502_1@root@ubuntu:~/hello_module# @H_502_1@root@ubuntu:~/hello_module# dmesg | tail -1 @H_502_1@[ 2143.690605] Hello word @H_502_1@root@ubuntu:~/hello_module# @H_502_1@root@ubuntu:~/hello_module# @H_502_1@root@ubuntu:~/hello_module# @H_502_1@root@ubuntu:~/hello_module# rmmod hello @H_502_1@root@ubuntu:~/hello_module# @H_502_1@root@ubuntu:~/hello_module# @H_502_1@root@ubuntu:~/hello_module# dmesg | tail -1 @H_502_1@[ 2154.473897] Goodbye world
#include<linux/module.h>
#include<linux/kernel.h>
#include<linux/init.h>
 
static int hello_init(void)
{
	printk("Hello word\n");
	return 0;
}
static void hello_exit(void)
{
	printk("Goodbye world\n");
}
 
module_init(hello_init);
module_exit(hello_exit);

MODULE_LICENSE("GPL");
@H_502_1@
ifneq ($(KERNELRELEASE),)
	obj-m:=hello.o
else
	PWD:=$(shell pwd)
KDIR:=/lib/modules/$(shell uname -r)/build
all:
	$(MAKE) -C $(KDIR) M=$(PWD)
clean:
	rm -rf *.o *.mod.c *.ko *.symvers *.order *.markers
endif
原文链接:https://www.f2er.com/ubuntu/349632.html

猜你在找的Ubuntu相关文章