From ece35e8d19b28238e51719617ca9d312abb9808e Mon Sep 17 00:00:00 2001 From: "Igor Zalatov (from Citadel PC)" Date: Sun, 4 Sep 2022 23:08:10 +0300 Subject: [PATCH] Add t31_axiostv project --- projects/t31_axiostv/Makefile | 174 ++++++++++++++++++ .../t31_axiostv/br-ext-chip-ingenic/Config.in | 36 ++++ .../unknown_unknown_t31_axiostv_defconfig | 110 +++++++++++ .../br-ext-chip-ingenic/external.mk | 35 ++++ .../br-ext-chip-ingenic/package/ax-agent | 1 + .../general/package/ax-agent/Config.in | 7 + .../general/package/ax-agent/ax-agent.mk | 25 +++ .../general/package/ax-agent/files/S97agent | 57 ++++++ .../general/package/ax-agent/src/ax-agent.c | 7 + 9 files changed, 452 insertions(+) create mode 100644 projects/t31_axiostv/Makefile create mode 100644 projects/t31_axiostv/br-ext-chip-ingenic/Config.in create mode 100644 projects/t31_axiostv/br-ext-chip-ingenic/configs/unknown_unknown_t31_axiostv_defconfig create mode 100644 projects/t31_axiostv/br-ext-chip-ingenic/external.mk create mode 120000 projects/t31_axiostv/br-ext-chip-ingenic/package/ax-agent create mode 100644 projects/t31_axiostv/general/package/ax-agent/Config.in create mode 100644 projects/t31_axiostv/general/package/ax-agent/ax-agent.mk create mode 100755 projects/t31_axiostv/general/package/ax-agent/files/S97agent create mode 100644 projects/t31_axiostv/general/package/ax-agent/src/ax-agent.c diff --git a/projects/t31_axiostv/Makefile b/projects/t31_axiostv/Makefile new file mode 100644 index 0000000..ccc9d0a --- /dev/null +++ b/projects/t31_axiostv/Makefile @@ -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-info - write to stdout information about selected board\n\ + - make BOARD= all - build all needed for a board (toolchain, kernel and rootfs images)\n\ + - make overlayed-rootfs- 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) diff --git a/projects/t31_axiostv/br-ext-chip-ingenic/Config.in b/projects/t31_axiostv/br-ext-chip-ingenic/Config.in new file mode 100644 index 0000000..9183f58 --- /dev/null +++ b/projects/t31_axiostv/br-ext-chip-ingenic/Config.in @@ -0,0 +1,36 @@ +source "$BR2_EXTERNAL_INGENIC_PATH/linux/Config.ext.in" +source "$BR2_EXTERNAL_INGENIC_PATH/package/ingenic-osdrv-t20/Config.in" +source "$BR2_EXTERNAL_INGENIC_PATH/package/ingenic-osdrv-t21/Config.in" +source "$BR2_EXTERNAL_INGENIC_PATH/package/ingenic-osdrv-t31/Config.in" +source "$BR2_EXTERNAL_INGENIC_PATH/package/ingenic_patcher/Config.in" +source "$BR2_EXTERNAL_INGENIC_PATH/package/aura-httpd/Config.in" +source "$BR2_EXTERNAL_INGENIC_PATH/package/ax-agent/Config.in" +source "$BR2_EXTERNAL_INGENIC_PATH/package/ax-agent/Config.in" +source "$BR2_EXTERNAL_INGENIC_PATH/package/dropbear-openipc/Config.in" +source "$BR2_EXTERNAL_INGENIC_PATH/package/fdk-aac-openipc/Config.in" +source "$BR2_EXTERNAL_INGENIC_PATH/package/ffmpeg-openipc/Config.in" +source "$BR2_EXTERNAL_INGENIC_PATH/package/fwprintenv-openipc/Config.in" +source "$BR2_EXTERNAL_INGENIC_PATH/package/i2c-telemetry/Config.in" +source "$BR2_EXTERNAL_INGENIC_PATH/package/ipctool/Config.in" +source "$BR2_EXTERNAL_INGENIC_PATH/package/json-c-openipc/Config.in" +source "$BR2_EXTERNAL_INGENIC_PATH/package/lame-openipc/Config.in" +source "$BR2_EXTERNAL_INGENIC_PATH/package/libcurl-openipc/Config.in" +source "$BR2_EXTERNAL_INGENIC_PATH/package/libevent-openipc/Config.in" +source "$BR2_EXTERNAL_INGENIC_PATH/package/libhv-openipc/Config.in" +source "$BR2_EXTERNAL_INGENIC_PATH/package/libogg-openipc/Config.in" +source "$BR2_EXTERNAL_INGENIC_PATH/package/libsrt-openipc/Config.in" +source "$BR2_EXTERNAL_INGENIC_PATH/package/libwebsockets-openipc/Config.in" +source "$BR2_EXTERNAL_INGENIC_PATH/package/linux-firmware-openipc/Config.in" +source "$BR2_EXTERNAL_INGENIC_PATH/package/majestic-fonts/Config.in" +source "$BR2_EXTERNAL_INGENIC_PATH/package/majestic/Config.in" +source "$BR2_EXTERNAL_INGENIC_PATH/package/mbedtls-openipc/Config.in" +source "$BR2_EXTERNAL_INGENIC_PATH/package/microbe-web/Config.in" +source "$BR2_EXTERNAL_INGENIC_PATH/package/microsnander/Config.in" +source "$BR2_EXTERNAL_INGENIC_PATH/package/motors/Config.in" +source "$BR2_EXTERNAL_INGENIC_PATH/package/node-exporter/Config.in" +source "$BR2_EXTERNAL_INGENIC_PATH/package/opus-openipc/Config.in" +source "$BR2_EXTERNAL_INGENIC_PATH/package/rtl8188fu-openipc/Config.in" +source "$BR2_EXTERNAL_INGENIC_PATH/package/uacme-openipc/Config.in" +source "$BR2_EXTERNAL_INGENIC_PATH/package/vtund-openipc/Config.in" +source "$BR2_EXTERNAL_INGENIC_PATH/package/xmdp/Config.in" +source "$BR2_EXTERNAL_INGENIC_PATH/package/yaml-cli/Config.in" diff --git a/projects/t31_axiostv/br-ext-chip-ingenic/configs/unknown_unknown_t31_axiostv_defconfig b/projects/t31_axiostv/br-ext-chip-ingenic/configs/unknown_unknown_t31_axiostv_defconfig new file mode 100644 index 0000000..783106b --- /dev/null +++ b/projects/t31_axiostv/br-ext-chip-ingenic/configs/unknown_unknown_t31_axiostv_defconfig @@ -0,0 +1,110 @@ +# Architecture +BR2_mipsel=y +BR2_mips_xburst=y +# BR2_MIPS_SOFT_FLOAT is not set +BR2_MIPS_FP32_MODE_32=y +# BR2_MIPS_FP32_MODE_XX is not set +BR2_MIPS_NAN_LEGACY=y +BR2_MIPS_OABI32=y +BR2_KERNEL_HEADERS_VERSION=y +BR2_DEFAULT_KERNEL_VERSION="3.10.14" +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_10=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_EXTRA_GCC_CONFIG_OPTIONS="--with-float=hard" +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="3.10.14" +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_INGENIC_PATH)/board/t31/kernel/t31.generic.config" +BR2_LINUX_KERNEL_UIMAGE=y +BR2_LINUX_KERNEL_LZMA=y +BR2_LINUX_KERNEL_EXT_INGENIC_PATCHER=y +BR2_LINUX_KERNEL_EXT_INGENIC_PATCHER_LIST="$(BR2_EXTERNAL_INGENIC_PATH)/board/t31/kernel/patches/ $(BR2_EXTERNAL_INGENIC_PATH)/board/t31/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-t31" +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_INGENIC_OSDRV_T31=y +BR2_PACKAGE_HASERL=y +# BR2_PACKAGE_HISI_GPIO is not set +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 is not set +# BR2_PACKAGE_WPA_SUPPLICANT is not set +# BR2_PACKAGE_WPA_SUPPLICANT_CLI is not set +# BR2_PACKAGE_WPA_SUPPLICANT_NL80211 is not set +# BR2_PACKAGE_WPA_SUPPLICANT_PASSPHRASE is not set +# BR2_PACKAGE_LINUX_FIRMWARE_OPENIPC is not set +# BR2_PACKAGE_LINUX_FIRMWARE_OPENIPC_MT7601U is not set +# BR2_PACKAGE_RTL8188EU is not set + +# WIREGUARD +# BR2_PACKAGE_WIREGUARD_LINUX_COMPAT is not set +# BR2_PACKAGE_WIREGUARD_TOOLS is not set + +# AXIOSTV +BR2_PACKAGE_FFMPEG_OPENIPC=y +BR2_PACKAGE_AX_AGENT=y + +# DEBUG +BR2_PACKAGE_HOST_GDB=y +BR2_PACKAGE_GDB=y diff --git a/projects/t31_axiostv/br-ext-chip-ingenic/external.mk b/projects/t31_axiostv/br-ext-chip-ingenic/external.mk new file mode 100644 index 0000000..bd4a683 --- /dev/null +++ b/projects/t31_axiostv/br-ext-chip-ingenic/external.mk @@ -0,0 +1,35 @@ +include $(BR2_EXTERNAL_INGENIC_PATH)/linux/linux-ext-ingenic_patcher.mk +include $(BR2_EXTERNAL_INGENIC_PATH)/package/ingenic-osdrv-t20/ingenic-osdrv-t20.mk +include $(BR2_EXTERNAL_INGENIC_PATH)/package/ingenic-osdrv-t21/ingenic-osdrv-t21.mk +include $(BR2_EXTERNAL_INGENIC_PATH)/package/ingenic-osdrv-t31/ingenic-osdrv-t31.mk +include $(BR2_EXTERNAL_INGENIC_PATH)/package/ingenic_patcher/ingenic_patcher.mk +include $(BR2_EXTERNAL_INGENIC_PATH)/package/aura-httpd/aura-httpd.mk +include $(BR2_EXTERNAL_INGENIC_PATH)/package/ax-agent/ax-agent.mk +include $(BR2_EXTERNAL_INGENIC_PATH)/package/dropbear-openipc/dropbear-openipc.mk +include $(BR2_EXTERNAL_INGENIC_PATH)/package/fdk-aac-openipc/fdk-aac-openipc.mk +include $(BR2_EXTERNAL_INGENIC_PATH)/package/ffmpeg-openipc/ffmpeg-openipc.mk +include $(BR2_EXTERNAL_INGENIC_PATH)/package/fwprintenv-openipc/fwprintenv-openipc.mk +include $(BR2_EXTERNAL_INGENIC_PATH)/package/i2c-telemetry/i2c-telemetry.mk +include $(BR2_EXTERNAL_INGENIC_PATH)/package/ipctool/ipctool.mk +include $(BR2_EXTERNAL_INGENIC_PATH)/package/json-c-openipc/json-c-openipc.mk +include $(BR2_EXTERNAL_INGENIC_PATH)/package/lame-openipc/lame-openipc.mk +include $(BR2_EXTERNAL_INGENIC_PATH)/package/libcurl-openipc/libcurl-openipc.mk +include $(BR2_EXTERNAL_INGENIC_PATH)/package/libevent-openipc/libevent-openipc.mk +include $(BR2_EXTERNAL_INGENIC_PATH)/package/libhv-openipc/libhv-openipc.mk +include $(BR2_EXTERNAL_INGENIC_PATH)/package/libogg-openipc/libogg-openipc.mk +include $(BR2_EXTERNAL_INGENIC_PATH)/package/libsrt-openipc/libsrt-openipc.mk +include $(BR2_EXTERNAL_INGENIC_PATH)/package/libwebsockets-openipc/libwebsockets-openipc.mk +include $(BR2_EXTERNAL_INGENIC_PATH)/package/linux-firmware-openipc/linux-firmware-openipc.mk +include $(BR2_EXTERNAL_INGENIC_PATH)/package/majestic/majestic.mk +include $(BR2_EXTERNAL_INGENIC_PATH)/package/majestic-fonts/majestic-fonts.mk +include $(BR2_EXTERNAL_INGENIC_PATH)/package/mbedtls-openipc/mbedtls-openipc.mk +include $(BR2_EXTERNAL_INGENIC_PATH)/package/microbe-web/microbe-web.mk +include $(BR2_EXTERNAL_INGENIC_PATH)/package/microsnander/microsnander.mk +include $(BR2_EXTERNAL_INGENIC_PATH)/package/motors/motors.mk +include $(BR2_EXTERNAL_INGENIC_PATH)/package/node-exporter/node-exporter.mk +include $(BR2_EXTERNAL_INGENIC_PATH)/package/opus-openipc/opus-openipc.mk +include $(BR2_EXTERNAL_INGENIC_PATH)/package/rtl8188fu-openipc/rtl8188fu-openipc.mk +include $(BR2_EXTERNAL_INGENIC_PATH)/package/uacme-openipc/uacme-openipc.mk +include $(BR2_EXTERNAL_INGENIC_PATH)/package/vtund-openipc/vtund-openipc.mk +include $(BR2_EXTERNAL_INGENIC_PATH)/package/xmdp/xmdp.mk +include $(BR2_EXTERNAL_INGENIC_PATH)/package/yaml-cli/yaml-cli.mk diff --git a/projects/t31_axiostv/br-ext-chip-ingenic/package/ax-agent b/projects/t31_axiostv/br-ext-chip-ingenic/package/ax-agent new file mode 120000 index 0000000..ed6ab54 --- /dev/null +++ b/projects/t31_axiostv/br-ext-chip-ingenic/package/ax-agent @@ -0,0 +1 @@ +../../general/package/ax-agent \ No newline at end of file diff --git a/projects/t31_axiostv/general/package/ax-agent/Config.in b/projects/t31_axiostv/general/package/ax-agent/Config.in new file mode 100644 index 0000000..32a435a --- /dev/null +++ b/projects/t31_axiostv/general/package/ax-agent/Config.in @@ -0,0 +1,7 @@ +config BR2_PACKAGE_AX_AGENT + bool "ax-agent" + default n + help + Simple daemon + + https://openipc.org diff --git a/projects/t31_axiostv/general/package/ax-agent/ax-agent.mk b/projects/t31_axiostv/general/package/ax-agent/ax-agent.mk new file mode 100644 index 0000000..e078231 --- /dev/null +++ b/projects/t31_axiostv/general/package/ax-agent/ax-agent.mk @@ -0,0 +1,25 @@ +################################################################################ +# +# ax-agent | updated 2022.09.04 +# +################################################################################ + +AX_AGENT_LICENSE = MIT +AX_AGENT_LICENSE_FILES = LICENSE + +define AX_AGENT_EXTRACT_CMDS + cp ../general/package/ax-agent/src/ax-agent.c $(@D)/ +endef + +define AX_AGENT_BUILD_CMDS + (cd $(@D); $(TARGET_CC) -s ax-agent.c -o ax-agent) +endef + +define AX_AGENT_INSTALL_TARGET_CMDS + $(INSTALL) -m 755 -d $(TARGET_DIR)/etc/init.d + cp ../general/package/ax-agent/files/S97agent $(TARGET_DIR)/etc/init.d + + install -m 0755 -D $(@D)/ax-agent $(TARGET_DIR)/usr/sbin/ax-agent +endef + +$(eval $(generic-package)) diff --git a/projects/t31_axiostv/general/package/ax-agent/files/S97agent b/projects/t31_axiostv/general/package/ax-agent/files/S97agent new file mode 100755 index 0000000..26ee930 --- /dev/null +++ b/projects/t31_axiostv/general/package/ax-agent/files/S97agent @@ -0,0 +1,57 @@ +#!/bin/sh + +DAEMON="ax-agent" +PIDFILE="/var/run/$DAEMON.pid" + +AGENT_ARGS="" + +# shellcheck source=/dev/null +[ -r "/etc/default/$DAEMON" ] && . "/etc/default/$DAEMON" + +# The daemon does not create a pidfile, so pass "-n" in the command line +# and use "-m" to instruct start-stop-daemon to create one. +start() { + printf 'Starting %s: ' "$DAEMON" + [ -f /usr/sbin/$DAEMON ] || echo -en "DISABLED, " + # shellcheck disable=SC2086 # we need the word splitting + start-stop-daemon -b -m -S -q -p "$PIDFILE" -x "/usr/sbin/$DAEMON" \ + -- $AGENT_ARGS + status=$? + if [ "$status" -eq 0 ]; then + echo "OK" + else + echo "FAIL" + fi + return "$status" +} + +stop() { + printf 'Stopping %s: ' "$DAEMON" + [ -f /usr/sbin/$DAEMON ] || echo -en "DISABLED, " + start-stop-daemon -K -q -p "$PIDFILE" + status=$? + if [ "$status" -eq 0 ]; then + rm -f "$PIDFILE" + echo "OK" + else + echo "FAIL" + fi + return "$status" +} + +restart() { + stop + sleep 1 + start +} + +case "$1" in + start|stop|restart) + "$1";; + reload) + # Restart, since there is no true "reload" feature. + restart;; + *) + echo "Usage: $0 {start|stop|restart|reload}" + exit 1 +esac diff --git a/projects/t31_axiostv/general/package/ax-agent/src/ax-agent.c b/projects/t31_axiostv/general/package/ax-agent/src/ax-agent.c new file mode 100644 index 0000000..aec2262 --- /dev/null +++ b/projects/t31_axiostv/general/package/ax-agent/src/ax-agent.c @@ -0,0 +1,7 @@ +#include + +int main (void) +{ + puts ("Hello, World!"); + return 0; +} \ No newline at end of file