从0学Linux驱动-Makefile详解5

从0学Linux驱动-Makefile详解5,第1张

作者网站: https://blog.csdn.net/daocaokafei/article/details/108513929

Makefile会执行3遍

第一次时KERNELRELEASE为空,所以先执行

KDIR,PWD的赋值 *** 作

$(shell uname -r)表示执行shell uname -r 相当于执行shell脚本uname -r

shell pwd 相当于 pwd

all:表示指令标竖橘枯签,上图中一共有伍蠢两个指令标签all和clean。

注意的是标签指令后面紧余洞紧跟着TAB键,这是Makefile的规则

通过“M=”在Makefile中搜索

-C 后面跟path to kernel src 其中/lib/modules/5.4.0-87-generic/build 表示内核源程序

使用$(info "")打印LOG

# kernel modules compiler --- Makefile

obj-m := hello.o

# #set kernel path to our own kernel src path

KERNELDIR ?= /usr/src/kernels/2.6.18-53.el5-i686

PWD := $(shell pwd)

default:

$(MAKE) -C $(KERNELDIR) M=$(PWD) modules

clean:

rm -rf *.o *.ko *.mod.c *.symvers

需要有内核源码的目录。你可能没有指定对

KERNELDIR ?= /usr/src/kernels/2.6.18-53.el5-i686

编译内核模块需要内念码核源码,这个路径困高禅指定的就是内核源码路径。

你先下载一下内核源码解压到/usr/src/kernels 再试试汪尘。

就这两句么??

简单说一下我的认识败败:

上面的一句是个赋值 *** 作 ,以后出现dm365_facedetect_driver-objs 的搭搜位置会被替换为dm365_facedetect.o

下面的一句是个添加 *** 作 ,在obj-$(CONFIG_DM365_FACEDETECT) 变量中添加 上

dm365_facedetect_hw.o dm365_facedetect.o

关于驱动的makefile :

举个最简单例子,

编写驱动知枯历的makefile关键要有 obj-m := xxxx.o (只有这一句就可以)

make 的时候如下

make -C /源码目录 M='pwd' modules

这样就会在当前目录生成.ko文件


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/8184863.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存