mirror of https://github.com/OpenIPC/composer.git
				
				
				
			Update CIP37210 project
							parent
							
								
									c78b2b4fc7
								
							
						
					
					
						commit
						c085edca90
					
				|  | @ -0,0 +1,174 @@ | ||||||
|  | 
 | ||||||
|  | ROOT_DIR      := $(CURDIR) | ||||||
|  | BR_VER        ?= 2021.02.12 | ||||||
|  | BR_DIR        := $(ROOT_DIR)/buildroot-$(BR_VER) | ||||||
|  | 
 | ||||||
|  | ifeq ($(PLATFORM),) | ||||||
|  |     ifneq ($(BOARD),) | ||||||
|  | 		FULL_PATH := $(shell find br-ext-chip-* -name "$(BOARD)*_defconfig") | ||||||
|  | 		ifeq ($(FULL_PATH),) | ||||||
|  | 			FULL_PATH := $(error Cannot find anything for $(BOARD)) | ||||||
|  | 		else ifneq ($(shell echo $(FULL_PATH) | wc -w), 1) | ||||||
|  | 			FULL_PATH := $(error For provided '$(BOARD)' multiple options found: $(FULL_PATH)) | ||||||
|  | 		endif | ||||||
|  | 
 | ||||||
|  | 		PLATFORM := $(shell echo $(FULL_PATH) | cut -d '/' -f 1 | cut -d '-' -f 4 ) | ||||||
|  |     endif | ||||||
|  | endif | ||||||
|  | 
 | ||||||
|  | BR_EXT_DIR    := $(ROOT_DIR)/br-ext-chip-$(PLATFORM) | ||||||
|  | SCRIPTS_DIR   := $(ROOT_DIR)/scripts | ||||||
|  | #BOARDS       := $(shell ls -1 $(BR_EXT_DIR)/configs)
 | ||||||
|  | 
 | ||||||
|  | .PHONY: usage help clean distclean prepare install-deps all toolchain-params run-tests overlayed-rootfs-% | ||||||
|  | 
 | ||||||
|  | usage help: | ||||||
|  | 	@echo -e \
 | ||||||
|  | 	"\n\
 | ||||||
|  | 	BR-OpenIPC usage:\n\
 | ||||||
|  | 	  - make help|usage - print this help\n\
 | ||||||
|  | 	  - make install-deps - install system deps\n\
 | ||||||
|  | 	  - make prepare - download and unpack buildroot\n\
 | ||||||
|  | 	  - make list-configs - show available hardware configs list\n\
 | ||||||
|  | 	  - make BOARD=<BOARD-ID> board-info - write to stdout information about selected board\n\
 | ||||||
|  | 	  - make BOARD=<BOARD-ID> all - build all needed for a board (toolchain, kernel and rootfs images)\n\
 | ||||||
|  | 	  - make overlayed-rootfs-<FS-TYPE> ROOTFS_OVERLAYS=... - create rootfs image that contains original\n\
 | ||||||
|  | 	  - make clean - cleaning before reassembly\n\
 | ||||||
|  | 	  - make distclean - switching to the factory state\n\
 | ||||||
|  | 	  Buildroot target dir overlayed by some custom layers.\n\
 | ||||||
|  | 	  Example:\n\
 | ||||||
|  | 	      make overlayed-rootfs-squashfs ROOTFS_OVERLAYS=./examples/echo_server/overlay\n\
 | ||||||
|  | 	"
 | ||||||
|  | 
 | ||||||
|  | distclean: | ||||||
|  | 	@rm -rf output buildroot-$(BR_VER) | ||||||
|  | 
 | ||||||
|  | clean: | ||||||
|  | 	@rm -rf output/target output/.config | ||||||
|  | 
 | ||||||
|  | prepare: $(BR_DIR) | ||||||
|  | $(ROOT_DIR)/buildroot-$(BR_VER).tar.gz: | ||||||
|  | 	wget -O $@ -nv \
 | ||||||
|  | 		--retry-connrefused --continue --timeout=15 \
 | ||||||
|  | 		http://buildroot.org/downloads/buildroot-$(BR_VER).tar.gz | ||||||
|  | 
 | ||||||
|  | $(BR_DIR): $(ROOT_DIR)/buildroot-$(BR_VER).tar.gz | ||||||
|  | 	tar -C $(ROOT_DIR) -xf buildroot-$(BR_VER).tar.gz | ||||||
|  | 	rm -f buildroot-$(BR_VER).tar.gz | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | install-deps: | ||||||
|  | ifneq ($(shell id -u), 0) | ||||||
|  | 	@echo "You must be root to perform this action." | ||||||
|  | else | ||||||
|  | 	DEBIAN_FRONTEND=noninteractive apt-get update && \
 | ||||||
|  | 		apt-get -y install \
 | ||||||
|  | 		build-essential git make libncurses-dev wget curl \
 | ||||||
|  | 		cpio rsync bc unzip file | ||||||
|  | endif | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | %_info: | ||||||
|  | 	@echo | ||||||
|  | 	@cat $(BR_EXT_DIR)/board/$(subst _info,,$@)/config | grep RAM_LINUX_SIZE | ||||||
|  | 	$(eval VENDOR 	:= $(shell echo $@ | cut -d "_" -f 1)) | ||||||
|  | 	$(eval FAMILY 	:= $(shell cat $(BR_EXT_DIR)/board/$(subst _info,,$@)/config | grep FAMILY | cut -d "=" -f 2)) | ||||||
|  | 	$(eval CHIP	:= $(shell echo $@ | cut -d "_" -f 3)) | ||||||
|  | 	@cat $(BR_EXT_DIR)/board/$(FAMILY)/$(CHIP).config | ||||||
|  | 
 | ||||||
|  | buildroot-version: | ||||||
|  | 	@echo $(BR_VER) | ||||||
|  | 
 | ||||||
|  | has-nand: | ||||||
|  | 	@sed -rn "s/^BR2_TARGET_ROOTFS_UBI=(y)/\1/p" $(FULL_PATH) | ||||||
|  | 
 | ||||||
|  | toolname: | ||||||
|  | 	@$(SCRIPTS_DIR)/show_toolchains.sh $(FULL_PATH) $(BR_VER) | ||||||
|  | 
 | ||||||
|  | list-configs: | ||||||
|  | 	@echo | ||||||
|  | 	@ls -1 $(BR_EXT_DIR)/configs | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | # -------------------------------------------------------------------------------------------------
 | ||||||
|  | OUT_DIR ?= $(ROOT_DIR)/output | ||||||
|  | 
 | ||||||
|  | # Buildroot considers relative paths relatively to its' own root directory. So we use absolute paths
 | ||||||
|  | # to avoid ambiguity
 | ||||||
|  | override OUT_DIR := $(abspath $(OUT_DIR)) | ||||||
|  | BOARD_MAKE := $(MAKE) -C $(BR_DIR) BR2_EXTERNAL=$(BR_EXT_DIR) O=$(OUT_DIR) | ||||||
|  | 
 | ||||||
|  | define CREATE_TOOLCHAIN_PARAMS | ||||||
|  |     eval $$($(BOARD_MAKE) -s --no-print-directory VARS=GNU_TARGET_NAME printvars) \
 | ||||||
|  |     && $(SCRIPTS_DIR)/create_toolchain_binding.sh $(OUT_DIR)/host/bin $$GNU_TARGET_NAME \
 | ||||||
|  |     > $(OUT_DIR)/toolchain-params.mk | ||||||
|  | endef | ||||||
|  | 
 | ||||||
|  | # -------------------------------------------------------------------------------------------------
 | ||||||
|  | $(OUT_DIR)/.config: | ||||||
|  | ifndef BOARD | ||||||
|  | 	@echo "Variable BOARD must be defined to initialize output directory" >&2 && exit 1 | ||||||
|  | endif | ||||||
|  | 	$(BOARD_MAKE) BR2_DEFCONFIG=$(BR_EXT_DIR)/configs/$(BOARD)_defconfig defconfig | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | $(OUT_DIR)/toolchain-params.mk: $(OUT_DIR)/.config $(SCRIPTS_DIR)/create_toolchain_binding.sh | ||||||
|  | 	$(CREATE_TOOLCHAIN_PARAMS) | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | # -------------------------------------------------------------------------------------------------
 | ||||||
|  | # build all needed for a board
 | ||||||
|  | all: $(OUT_DIR)/.config $(OUT_DIR)/toolchain-params.mk | ||||||
|  | 	$(BOARD_MAKE) all | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | # -------------------------------------------------------------------------------------------------
 | ||||||
|  | # re-create params file
 | ||||||
|  | toolchain-params: | ||||||
|  | 	$(CREATE_TOOLCHAIN_PARAMS) | ||||||
|  | 
 | ||||||
|  | # -------------------------------------------------------------------------------------------------
 | ||||||
|  | # create rootfs image that contains original Buildroot target dir overlayed by some custom layers
 | ||||||
|  | # space-separated list of overlays
 | ||||||
|  | 
 | ||||||
|  | ROOTFS_OVERLAYS ?= | ||||||
|  | # overlayed rootfs directory
 | ||||||
|  | ROOTFS_OVERLAYED_DIR ?= $(OUT_DIR)/target-overlayed | ||||||
|  | # overlayed rootfs image's name (without prefix)
 | ||||||
|  | ROOTFS_OVERLAYED_IMAGE ?= rootfs-overlayed | ||||||
|  | 
 | ||||||
|  | overlayed-rootfs-%: $(OUT_DIR)/.config | ||||||
|  | 	$(SCRIPTS_DIR)/create_overlayed_rootfs.sh $(ROOTFS_OVERLAYED_DIR) $(OUT_DIR)/target $(ROOTFS_OVERLAYS) | ||||||
|  | 	$(BOARD_MAKE) $(subst overlayed-,,$@) \
 | ||||||
|  | 	    BASE_TARGET_DIR=$(abspath $(ROOTFS_OVERLAYED_DIR)) \
 | ||||||
|  | 	    ROOTFS_$(call UPPERCASE,$(subst overlayed-rootfs-,,$@))_FINAL_IMAGE_NAME=$(ROOTFS_OVERLAYED_IMAGE).$(subst overlayed-rootfs-,,$@) | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | # -------------------------------------------------------------------------------------------------
 | ||||||
|  | board-info: | ||||||
|  | 	@cat $(BR_EXT_DIR)/board/$(BOARD)/config | grep RAM_LINUX_SIZE | ||||||
|  | 	$(eval VENDOR := $(shell echo $(BOARD) | cut -d "_" -f 1)) | ||||||
|  | 	$(eval FAMILY := $(shell cat $(BR_EXT_DIR)/board/$(BOARD)/config | grep FAMILY | cut -d "=" -f 2)) | ||||||
|  | 	$(eval CHIP   := $(shell echo $(BOARD) | cut -d "_" -f 3)) | ||||||
|  | 	@cat $(BR_EXT_DIR)/board/$(FAMILY)/$(CHIP).config | ||||||
|  | 	@cat $(BR_EXT_DIR)/board/$(BOARD)/config | ||||||
|  | 
 | ||||||
|  | # -------------------------------------------------------------------------------------------------
 | ||||||
|  | # such targets (with trimmed `br-` prefix) are passed to Buildroot's Makefile
 | ||||||
|  | br-%: $(OUT_DIR)/.config | ||||||
|  | 	$(BOARD_MAKE) $(subst br-,,$@) | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | # -------------------------------------------------------------------------------------------------
 | ||||||
|  | run-tests: | ||||||
|  | 	$(MAKE) -C $(ROOT_DIR)/tests | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | # -------------------------------------------------------------------------------------------------
 | ||||||
|  | # there are some extra targets of specific packages
 | ||||||
|  | include $(sort $(wildcard $(ROOT_DIR)/extra/*.mk)) | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | # -------------------------------------------------------------------------------------------------
 | ||||||
|  | # util stuff is below
 | ||||||
|  | UPPERCASE = $(shell echo $(1) | tr a-z A-Z) | ||||||
|  | @ -0,0 +1,108 @@ | ||||||
|  | # Architecture | ||||||
|  | BR2_arm=y | ||||||
|  | BR2_arm926t=y | ||||||
|  | BR2_ARM_EABI=y | ||||||
|  | # BR2_ARM_INSTRUCTIONS_THUMB is not set | ||||||
|  | BR2_KERNEL_HEADERS_VERSION=y | ||||||
|  | BR2_DEFAULT_KERNEL_VERSION="4.9.37" | ||||||
|  | BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_9=y | ||||||
|  | 
 | ||||||
|  | # Toolchain | ||||||
|  | BR2_PER_PACKAGE_DIRECTORIES=y | ||||||
|  | BR2_GCC_VERSION_8_X=y | ||||||
|  | # BR2_TOOLCHAIN_USES_UCLIBC is not set | ||||||
|  | # BR2_TOOLCHAIN_BUILDROOT_UCLIBC is not set | ||||||
|  | # BR2_TOOLCHAIN_BUILDROOT_LIBC="uclibc" | ||||||
|  | BR2_TOOLCHAIN_USES_MUSL=y | ||||||
|  | BR2_TOOLCHAIN_BUILDROOT_MUSL=y | ||||||
|  | BR2_TOOLCHAIN_BUILDROOT_LIBC="musl" | ||||||
|  | BR2_TOOLCHAIN_BUILDROOT_CXX=y | ||||||
|  | BR2_TOOLCHAIN_BUILDROOT_LOCALE=y | ||||||
|  | BR2_TOOLCHAIN_BUILDROOT_USE_SSP=y | ||||||
|  | 
 | ||||||
|  | # Kernel | ||||||
|  | BR2_LINUX_KERNEL=y | ||||||
|  | BR2_LINUX_KERNEL_CUSTOM_VERSION=y | ||||||
|  | BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.9.37" | ||||||
|  | BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y | ||||||
|  | BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_HISILICON_PATH)/board/hi3516cv200/kernel/hi3518ev200.generic.config" | ||||||
|  | BR2_LINUX_KERNEL_UIMAGE=y | ||||||
|  | BR2_LINUX_KERNEL_XZ=y | ||||||
|  | BR2_LINUX_KERNEL_EXT_HISI_PATCHER=y | ||||||
|  | BR2_LINUX_KERNEL_EXT_HISI_PATCHER_LIST="$(BR2_EXTERNAL_HISILICON_PATH)/board/hi3516cv200/kernel/patches/ $(BR2_EXTERNAL_HISILICON_PATH)/board/hi3516cv200/kernel/overlay" | ||||||
|  | 
 | ||||||
|  | # Filesystem | ||||||
|  | # BR2_TARGET_TZ_INFO is not set | ||||||
|  | BR2_TARGET_ROOTFS_CPIO=y | ||||||
|  | BR2_TARGET_ROOTFS_SQUASHFS=y | ||||||
|  | BR2_TARGET_ROOTFS_SQUASHFS4_XZ=y | ||||||
|  | BR2_ROOTFS_OVERLAY="$(TOPDIR)/../general/overlay" | ||||||
|  | BR2_ROOTFS_POST_BUILD_SCRIPT="$(TOPDIR)/../scripts/executing_commands_for_$(BR2_TOOLCHAIN_BUILDROOT_LIBC).sh" | ||||||
|  | 
 | ||||||
|  | # OpenIPC configuration | ||||||
|  | BR2_TOOLCHAIN_BUILDROOT_VENDOR="openipc" | ||||||
|  | BR2_TARGET_GENERIC_ISSUE="Welcome to OpenIPC v2.2" | ||||||
|  | BR2_TARGET_GENERIC_HOSTNAME="openipc-hi3518ev200" | ||||||
|  | BR2_GLOBAL_PATCH_DIR="$(TOPDIR)/../general/package/all-patches" | ||||||
|  | 
 | ||||||
|  | # OpenIPC packages | ||||||
|  | BR2_PACKAGE_BUSYBOX_CONFIG="$(TOPDIR)/../general/package/busybox/busybox.config" | ||||||
|  | BR2_PACKAGE_DROPBEAR_OPENIPC=y | ||||||
|  | # BR2_PACKAGE_FDK_AAC_OPENIPC is not set | ||||||
|  | BR2_PACKAGE_FWPRINTENV_OPENIPC=y | ||||||
|  | BR2_PACKAGE_HASERL=y | ||||||
|  | BR2_PACKAGE_HISI_GPIO is not set | ||||||
|  | BR2_PACKAGE_HISILICON_OSDRV_HI3516CV200=y | ||||||
|  | BR2_PACKAGE_IPCTOOL=y | ||||||
|  | BR2_PACKAGE_JSON_C=y | ||||||
|  | BR2_PACKAGE_LAME_OPENIPC=y | ||||||
|  | BR2_PACKAGE_LIBCURL_OPENIPC=y | ||||||
|  | BR2_PACKAGE_LIBCURL_OPENIPC_CURL=y | ||||||
|  | # BR2_PACKAGE_LIBCURL_OPENIPC_VERBOSE is not set | ||||||
|  | # BR2_PACKAGE_LIBCURL_OPENIPC_PROXY_SUPPORT is not set | ||||||
|  | # BR2_PACKAGE_LIBCURL_OPENIPC_COOKIES_SUPPORT is not set | ||||||
|  | # BR2_PACKAGE_LIBCURL_OPENIPC_EXTRA_PROTOCOLS_FEATURES is not set | ||||||
|  | BR2_PACKAGE_LIBCURL_OPENIPC_MBEDTLS=y | ||||||
|  | BR2_PACKAGE_LIBEVENT_OPENIPC=y | ||||||
|  | BR2_PACKAGE_LIBEVENT_OPENIPC_REMOVE_PYSCRIPT=y | ||||||
|  | BR2_PACKAGE_LIBOGG_OPENIPC=y | ||||||
|  | BR2_PACKAGE_LIBWEBSOCKETS_OPENIPC=y | ||||||
|  | BR2_PACKAGE_LIBYAML=y | ||||||
|  | BR2_PACKAGE_MAJESTIC_FONTS=y | ||||||
|  | BR2_PACKAGE_MAJESTIC=y | ||||||
|  | BR2_PACKAGE_MBEDTLS_OPENIPC=y | ||||||
|  | # BR2_PACKAGE_MBEDTLS_OPENIPC_PROGRAMS is not set | ||||||
|  | # BR2_PACKAGE_MBEDTLS_OPENIPC_COMPRESSION is not set | ||||||
|  | BR2_PACKAGE_MICROBE_WEB=y | ||||||
|  | # BR2_PACKAGE_MINI_SNMPD is not set | ||||||
|  | # BR2_PACKAGE_MOTORS is not set | ||||||
|  | BR2_PACKAGE_OPUS_OPENIPC=y | ||||||
|  | BR2_PACKAGE_OPUS_OPENIPC_FIXED_POINT=y | ||||||
|  | # BR2_PACKAGE_SSHPASS is not set | ||||||
|  | BR2_PACKAGE_UACME_OPENIPC=y | ||||||
|  | BR2_PACKAGE_VTUND_OPENIPC=y | ||||||
|  | BR2_PACKAGE_YAML_CLI=y | ||||||
|  | 
 | ||||||
|  | # WiFi | ||||||
|  | BR2_PACKAGE_WIRELESS_TOOLS=y | ||||||
|  | BR2_PACKAGE_WPA_SUPPLICANT=y | ||||||
|  | BR2_PACKAGE_WPA_SUPPLICANT_CLI=y | ||||||
|  | BR2_PACKAGE_WPA_SUPPLICANT_NL80211=y | ||||||
|  | BR2_PACKAGE_WPA_SUPPLICANT_PASSPHRASE=y | ||||||
|  | BR2_PACKAGE_LINUX_FIRMWARE_OPENIPC=y | ||||||
|  | BR2_PACKAGE_LINUX_FIRMWARE_OPENIPC_MT7601U=y | ||||||
|  | BR2_PACKAGE_LINUX_FIRMWARE_OPENIPC_RTL8188EU=y | ||||||
|  | # BR2_PACKAGE_RTL8188EU is not set | ||||||
|  | # BR2_PACKAGE_RTL8188FU_OPENIPC is not set | ||||||
|  | 
 | ||||||
|  | # WIREGUARD | ||||||
|  | # BR2_PACKAGE_WIREGUARD_LINUX_COMPAT is not set | ||||||
|  | # BR2_PACKAGE_WIREGUARD_TOOLS is not set | ||||||
|  | 
 | ||||||
|  | # MQTT | ||||||
|  | BR2_PACKAGE_MOSQUITTO=y | ||||||
|  | # BR2_PACKAGE_MOSQUITTO_BROKER is not set | ||||||
|  | 
 | ||||||
|  | # DEBUG | ||||||
|  | BR2_PACKAGE_HOST_GDB=y | ||||||
|  | BR2_PACKAGE_GDB=y | ||||||
		Loading…
	
		Reference in New Issue