一个通用的驱动Makefile
通常来说,驱动模块编写完成后,有两种方式将自己的模块加载到内核中,分为临时性的加载以及永久性的加载。
永久性的加载主要是一系列流程,make menuconfig, .Kconfig, make等等之后会生成一个Image文件。(友情提醒,使用这种方法不要用本机的内核,最好是再下载一个内核供你happy)
这里我主要说的是临时性的加载,想要实现临时性的加载,我们就需要对Makefile进行一些操作。
先附上一张图:
首先其中的-C 是在当前目录下进入其他的目录,也就是是说进入到内核的目录执行make指令。其次obj-m是把文件编译成一个模块。此外每个人的内核位置是不一样的,而且内核好像会自己更新(我几天前写的驱动内核还是107,过几天编译就无法通过了,后面发现内核变成了112)。有一个通用的方式如图所示:和PWD中一样,使用命令来自动获取本机的uname,这样就不用担心内核版本的问题啦!