hello.c
#include<linux/module.h> #include<linux/kernel.h> static int hello_init(void) { printk(KERN_ALERT "Hello World\n"); return 0; } static void hello_exit(void) { printk(KERN_ALERT "Goodbye World\n"); } module_init(hello_init); module_exit(hello_exit); MODULE_LICENSE("GPL");Makefile
obj-m:=hello.o CURRENT_PATH:=$(shell pwd) VERSION_NUM:=$(shell uname -r) LINUX_PATH:=/lib/modules/$(VERSION_NUM)/build CONFIG_MODULE_SIG=n all: make -C $(LINUX_PATH) M=$(CURRENT_PATH) modules clean: make -C $(LINUX_PATH) M=$(CURRENT_PATH) clean查询模块是否被加载
lsmod | grep hello查看模块被加载的打印信息
dmesg查看驱动模块是否被卸载
lsmod | grep hello查看驱动模块被卸载打印信息
在实验过程中尝试了只有加载模块,没有卸载模块函数,这时候出现了不能正常卸载模块的现象。解决办法两种:1、参照这篇<博文> 2、重启电脑
ReCclay 认证博客专家 嵌入式软件开发 机器/深度学习 全栈技术学习者 大家好,我是博主ReCclay,目前处于研究生阶段,就读于电子科技大学,主攻方向为汽车辅助驾驶算法研究。入站以来,凭借坚持与热爱,以博文的方式分享所学,截止目前累计博文数量达800余篇,累计受益人次达130w+次,涉及领域包括但不限于物联网开发、单片机开发、Linux驱动开发、FPGA开发、前/后端软件开发等。在未来我将继续专注于嵌入式相关领域,学习更多的科技知识,输出更高质量的博文。