驱动学习0:本地编译测试

一个最简单的驱动代码:

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

static int __init vser_init(void)
{
        printk("vser_init
");
        return 0;
}

static void __exit vser_exit(void)
{
        printk("vser_exit
");
}

module_init(vser_init);
module_exit(vser_exit);

MODULE_LICENSE("GPL");

对应的Makefile为:

obj-m := vser.o                   #要生成的模块名     
modules-objs:= vser.o        #生成这个模块名所需要的目标文件

KDIR := /lib/modules/`uname -r`/build   

PWD := $(shell pwd)

default:
    make -C $(KDIR) M=$(PWD) modules

clean:
    rm -rf *.o .* .cmd *.ko *.mod.c .tmp_versions

sudo insmod  vser.ko

验证:

sudo rmmod vser 后查看

 

原文地址:https://www.cnblogs.com/shuqingstudy/p/9184039.html