制作环境: linux虚拟机(任意文件目录下,例如:/demo/work/driver/)
制作原理:关键点是通过调用Linux内核根目录下的Makefile来帮我实现,我们自己编写的Makefile就是实现这一调用的脚本。
制作过程: 所需文件:Makefile misc_led.c -------->执行make命令------->生成文件:misc_led.ko
Makefile文件如下:
Makefile解释:
当make的目标为all时,-C $(KDIR) 指明跳转到内核源码目录下读取那里的Makefile;M=$(PWD) 表明然后返回到当前目录继续读入、执行当前的Makefile。
obj:-y(编译进内核) 、-m(编译成模块,不链接)
KDIR:将Linux内核根目录宏定义
-C:这个参数表示跳转到指定目录下。(使用方法 -C+所指定目录路径)
Tab命令:all为主要脚本命令,其余都是按照需要个性化编写的脚本命令
补充:
当make的目标为all时,-C $(KDIR) 指明跳转到内核源码目录下读取那里的Makefile;M=$(PWD) 表明然后返回到当前目录继续读入、执行当前的Makefile
cc命令详解:https://blog.csdn.net/max2008/article/details/2584556
gcc命令详解:http://man.linuxde.net/gcc
推荐一篇不错的文章:https://www.cnblogs.com/skyred99/p/5683710.html