编译环境:
KERNELDIR 内核头文件所在目录
Make -c 在所有操作前切换到“目录”
M=$(PWD) modules 是传给makefile的参数
Android qcom platform
1、vendor目录下创建新文件夹,将源文件拷贝到新建文件夹下;
2、新建一个Kbuild文件,仅需一行搞定(如果只有一个.c源文件),如下:
obj-m := xxx.o
注:$(obj-m) 列举出了哪些文件要编译成可装载模块。一个模块可以由一个文件或多个文件编译而成。如果是一个源文件,Kbuild Makefile只需简单的将其加到$(obj-m)中去就可以了。
3、新建一个Makefile.am文件,如下:
PWD := $(shell pwd)
all-local:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules
注:PWD 获取当前目录
KERNELDIR 内核头文件所在目录
Make -c 在所有操作前切换到“目录”
M=$(PWD) modules 是传给makefile的参数
4、新建一个Android.mk文件,如下:
ifeq ($(call is-vendor-board-platform,QCOM),true)
LOCAL_PATH := $(call my-dir)
DLKM_DIR := device/qcom/common/dlkm
include $(CLEAR_VARS)
LOCAL_MODULE := xxx.ko
LOCAL_MODULE_TAGS := debug
include $(DLKM_DIR)/AndroidKernelModule.mk
endif
注:DLKM_DIR 指定AndroidKernelModule.mk的路径,这个mk设置了内核模块编译的一些参数
5、cd到新建文件夹 mm 搞定~~