| #if use probuilt kernel or build kernel from source code |
| -include device/hardkernel/common/media_modules.mk |
| -include device/hardkernel/common/wifi_modules.mk |
| KERNEL_ROOTDIR := common |
| KERNEL_KO_OUT := $(PRODUCT_OUT)/obj/lib_vendor |
| USE_PREBUILT_KERNEL := false |
| |
| INSTALLED_KERNEL_TARGET := $(PRODUCT_OUT)/kernel |
| |
| BOARD_MKBOOTIMG_ARGS := --kernel_offset $(BOARD_KERNEL_OFFSET) |
| |
| KERNEL_DEVICETREE := meson64_odroidn2_android |
| KERNEL_DEFCONFIG := odroidn2_android_defconfig |
| KERNEL_ARCH := arm64 |
| |
| KERNEL_OUT := $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ |
| KERNEL_CONFIG := $(KERNEL_OUT)/.config |
| INTERMEDIATES_KERNEL := $(KERNEL_OUT)/arch/$(KERNEL_ARCH)/boot/Image.gz |
| TARGET_AMLOGIC_INT_KERNEL := $(KERNEL_OUT)/arch/$(KERNEL_ARCH)/boot/uImage |
| TARGET_AMLOGIC_INT_RECOVERY_KERNEL := $(KERNEL_OUT)/arch/$(KERNEL_ARCH)/boot/Image_recovery |
| |
| BOARD_VENDOR_KERNEL_MODULES += \ |
| |
| BOARD_VENDOR_KERNEL_MODULES += $(DEFAULT_MEDIA_KERNEL_MODULES) |
| BOARD_VENDOR_KERNEL_MODULES += $(DEFAULT_WIFI_KERNEL_MODULES) |
| BOARD_VENDOR_KERNEL_MODULES += $(PRODUCT_OUT)/obj/lib_vendor/cp210x.ko |
| BOARD_VENDOR_KERNEL_MODULES += $(PRODUCT_OUT)/obj/lib_vendor/ch341.ko |
| BOARD_VENDOR_KERNEL_MODULES += $(PRODUCT_OUT)/obj/lib_vendor/ftdi_sio.ko |
| |
| WIFI_OUT := $(TARGET_OUT_INTERMEDIATES)/hardware/wifi |
| |
| PREFIX_CROSS_COMPILE=aarch64-linux-gnu- |
| |
| KERNEL_KO_OUT := $(PRODUCT_OUT)/obj/lib_vendor |
| |
| define cp-modules |
| mkdir -p $(PRODUCT_OUT)/root/boot |
| mkdir -p $(KERNEL_KO_OUT) |
| # cp $(WIFI_OUT)/broadcom/drivers/ap6xxx/broadcm_40181/dhd.ko $(TARGET_OUT)/lib/ |
| # cp $(KERNEL_OUT)/../hardware/amlogic/pmu/aml_pmu_dev.ko $(TARGET_OUT)/lib/ |
| # cp $(shell pwd)/hardware/amlogic/thermal/aml_thermal.ko $(TARGET_OUT)/lib/ |
| # cp $(KERNEL_OUT)/../hardware/amlogic/nand/amlnf/aml_nftl_dev.ko $(PRODUCT_OUT)/root/boot/ |
| endef |
| |
| $(KERNEL_OUT): |
| mkdir -p $(KERNEL_OUT) |
| |
| $(KERNEL_CONFIG): $(KERNEL_OUT) |
| $(MAKE) -C $(KERNEL_ROOTDIR) O=../$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(PREFIX_CROSS_COMPILE) $(KERNEL_DEFCONFIG) |
| |
| BOARD_MKBOOTIMG_ARGS := --kernel_offset $(BOARD_KERNEL_OFFSET) |
| |
| $(INTERMEDIATES_KERNEL): $(KERNEL_OUT) $(KERNEL_CONFIG) |
| @echo "make Image" |
| $(MAKE) -C $(KERNEL_ROOTDIR) O=../$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(PREFIX_CROSS_COMPILE) |
| $(MAKE) CROSS_COMPILE=$(PREFIX_CROSS_COMPILE) -f device/hardkernel/common/wifi_driver.mk $(WIFI_MODULE) |
| $(cp-modules) |
| $(media-modules) |
| mkdir -p $(PRODUCT_OUT)/$(TARGET_COPY_OUT_VENDOR)/lib/modules/ |
| find $(KERNEL_OUT) -name *.ko | xargs -i cp {} $(KERNEL_KO_OUT)/ |
| cp $(KERNEL_KO_OUT)/* $(PRODUCT_OUT)/$(TARGET_COPY_OUT_VENDOR)/lib/modules/ |
| |
| kerneltags: $(KERNEL_OUT) |
| $(MAKE) -C $(KERNEL_ROOTDIR) O=../$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(PREFIX_CROSS_COMPILE) tags |
| |
| kernelconfig: $(KERNEL_OUT) $(KERNEL_CONFIG) |
| env KCONFIG_NOTIMESTAMP=true \ |
| $(MAKE) -C $(KERNEL_ROOTDIR) O=../$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(PREFIX_CROSS_COMPILE) menuconfig |
| |
| savekernelconfig: $(KERNEL_OUT) $(KERNEL_CONFIG) |
| env KCONFIG_NOTIMESTAMP=true \ |
| $(MAKE) -C $(KERNEL_ROOTDIR) O=../$(KERNEL_OUT) ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(PREFIX_CROSS_COMPILE) savedefconfig |
| @echo |
| @echo Saved to $(KERNEL_OUT)/defconfig |
| @echo |
| @echo handly merge to "$(KERNEL_ROOTDIR)/arch/$(KERNEL_ARCH)/configs/$(KERNEL_DEFCONFIG)" if need |
| @echo |
| |
| build-modules-quick: |
| $(media-modules) |
| |
| $(INSTALLED_KERNEL_TARGET): $(INTERMEDIATES_KERNEL) | $(ACP) |
| @echo "Kernel installed" |
| $(transform-prebuilt-to-target) |
| |
| -include device/hardkernel/common/gpu/gondul-kernel.mk |
| |
| $(BOARD_VENDOR_KERNEL_MODULES): $(INSTALLED_KERNEL_TARGET) |
| @echo "BOARD_VENDOR_KERNEL_MODULES: $(BOARD_VENDOR_KERNEL_MODULES)" |
| |
| |
| .PHONY: bootimage-quick |
| bootimage-quick: $(INTERMEDIATES_KERNEL) |
| cp -v $(INTERMEDIATES_KERNEL) $(INSTALLED_KERNEL_TARGET) |
| out/host/linux-x86/bin/mkbootfs $(PRODUCT_OUT)/root | \ |
| out/host/linux-x86/bin/minigzip > $(PRODUCT_OUT)/ramdisk.img |
| out/host/linux-x86/bin/mkbootimg --kernel $(INTERMEDIATES_KERNEL) \ |
| --base 0x0 \ |
| --kernel_offset 0x1080000 \ |
| --ramdisk $(PRODUCT_OUT)/ramdisk.img \ |
| $(BOARD_MKBOOTIMG_ARGS) \ |
| --output $(PRODUCT_OUT)/boot.img |
| ls -l $(PRODUCT_OUT)/boot.img |
| echo "Done building boot.img" |
| |
| .PHONY: recoveryimage-quick |
| recoveryimage-quick: $(INTERMEDIATES_KERNEL) |
| cp -v $(INTERMEDIATES_KERNEL) $(INSTALLED_KERNEL_TARGET) |
| out/host/linux-x86/bin/mkbootfs $(PRODUCT_OUT)/recovery/root | \ |
| out/host/linux-x86/bin/minigzip > $(PRODUCT_OUT)/ramdisk-recovery.img |
| out/host/linux-x86/bin/mkbootimg --kernel $(INTERMEDIATES_KERNEL) \ |
| --base 0x0 \ |
| --kernel_offset 0x1080000 \ |
| --ramdisk $(PRODUCT_OUT)/ramdisk-recovery.img \ |
| $(BOARD_MKBOOTIMG_ARGS) \ |
| --output $(PRODUCT_OUT)/recovery.img |
| ls -l $(PRODUCT_OUT)/recovery.img |
| echo "Done building recovery.img" |
| |
| .PHONY: kernelconfig |
| |
| .PHONY: savekernelconfig |
| |
| $(PRODUCT_OUT)/ramdisk.img: $(INSTALLED_KERNEL_TARGET) |
| $(PRODUCT_OUT)/system.img: $(INSTALLED_KERNEL_TARGET) |