Loading

泰山派-内核驱动开发(1)

内核驱动开发

通过本文你可以了解内核模块的驱动框架,和如何加载卸载驱动
驱动主要有三个部分


源代码

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

static int __init demo_init(void)
{
    return 0;
}

static void __exit demo_exit(void)
{

}

//修饰模块化驱动的入口函数
module_init(demo_init);
//修饰模块化驱动的出口函数
module_exit(demo_exit);
//协议
MODULE_LICENSE("GPL");

--- Makefile文件
PWD ?= $(shell pwd)

KERNELDIR:=/home/chilo/sdk/kernel

obj-m += demo.o

module:
	make -C $(KERNELDIR) M=$(PWD) ARCH=arm64 modules
	@# -C 从当前目录切换到内核源码目录下,借助内核源码makrfile进行make
    @# ARCH=arm64指定编译架构
	@# M=$(PWD) 只编译当前目录下的驱动

clean:
	make -C $(KERNELDIR) M=$(PWD) ARCH=arm64 clean

编译成功后会在根目录下找到demo.ko文件


挂载驱动:insmod <module name>
删除驱动:rmmod <module name>
查看挂载的驱动:lsmod

posted @ 2024-05-03 16:23  Chilo  阅读(216)  评论(0)    收藏  举报