mirror of https://github.com/OpenIPC/composer.git
Scavenger picked up files from ak3918ev200
parent
e0bf89f2e9
commit
effaae9354
|
@ -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,28 @@
|
|||
source "$BR2_EXTERNAL_ANYKA_PATH/linux/Config.ext.in"
|
||||
source "$BR2_EXTERNAL_ANYKA_PATH/package/anyka-osdrv-ak3918ev200/Config.in"
|
||||
source "$BR2_EXTERNAL_ANYKA_PATH/package/anyka_patcher/Config.in"
|
||||
source "$BR2_EXTERNAL_ANYKA_PATH/package/aura-httpd/Config.in"
|
||||
source "$BR2_EXTERNAL_ANYKA_PATH/package/dropbear-openipc/Config.in"
|
||||
source "$BR2_EXTERNAL_ANYKA_PATH/package/fdk-aac-openipc/Config.in"
|
||||
source "$BR2_EXTERNAL_ANYKA_PATH/package/fwprintenv-openipc/Config.in"
|
||||
source "$BR2_EXTERNAL_ANYKA_PATH/package/ipctool/Config.in"
|
||||
source "$BR2_EXTERNAL_ANYKA_PATH/package/json-c-openipc/Config.in"
|
||||
source "$BR2_EXTERNAL_ANYKA_PATH/package/lame-openipc/Config.in"
|
||||
source "$BR2_EXTERNAL_ANYKA_PATH/package/libcurl-openipc/Config.in"
|
||||
source "$BR2_EXTERNAL_ANYKA_PATH/package/libevent-openipc/Config.in"
|
||||
source "$BR2_EXTERNAL_ANYKA_PATH/package/libhv-openipc/Config.in"
|
||||
source "$BR2_EXTERNAL_ANYKA_PATH/package/libogg-openipc/Config.in"
|
||||
source "$BR2_EXTERNAL_ANYKA_PATH/package/libsrt-openipc/Config.in"
|
||||
source "$BR2_EXTERNAL_ANYKA_PATH/package/libwebsockets-openipc/Config.in"
|
||||
source "$BR2_EXTERNAL_ANYKA_PATH/package/linux-firmware-openipc/Config.in"
|
||||
source "$BR2_EXTERNAL_ANYKA_PATH/package/majestic-fonts/Config.in"
|
||||
# source "$BR2_EXTERNAL_ANYKA_PATH/package/majestic/Config.in"
|
||||
source "$BR2_EXTERNAL_ANYKA_PATH/package/mbedtls-openipc/Config.in"
|
||||
source "$BR2_EXTERNAL_ANYKA_PATH/package/microbe-web/Config.in"
|
||||
source "$BR2_EXTERNAL_ANYKA_PATH/package/motors/Config.in"
|
||||
source "$BR2_EXTERNAL_ANYKA_PATH/package/node-exporter/Config.in"
|
||||
source "$BR2_EXTERNAL_ANYKA_PATH/package/opus-openipc/Config.in"
|
||||
source "$BR2_EXTERNAL_ANYKA_PATH/package/rtl8188fu-openipc/Config.in"
|
||||
source "$BR2_EXTERNAL_ANYKA_PATH/package/uacme-openipc/Config.in"
|
||||
source "$BR2_EXTERNAL_ANYKA_PATH/package/vtund-openipc/Config.in"
|
||||
source "$BR2_EXTERNAL_ANYKA_PATH/package/yaml-cli/Config.in"
|
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1 @@
|
|||
../../../../../patches/linux/3.4.x/gcc8_err_encountered.patch
|
|
@ -0,0 +1,103 @@
|
|||
# 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="3.4.35"
|
||||
BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_4=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="3.4.35"
|
||||
BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
|
||||
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_ANYKA_PATH)/board/ak3918ev200/kernel/ak3918ev200.generic.config"
|
||||
BR2_LINUX_KERNEL_UIMAGE=y
|
||||
BR2_LINUX_KERNEL_XZ=y
|
||||
BR2_LINUX_KERNEL_EXT_ANYKA_PATCHER=y
|
||||
BR2_LINUX_KERNEL_EXT_ANYKA_PATCHER_LIST="$(BR2_EXTERNAL_ANYKA_PATH)/board/ak3918ev200/kernel/patches/ $(BR2_EXTERNAL_ANYKA_PATH)/board/ak3918ev200/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-ak3918ev200"
|
||||
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_ANYKA_GPIO is not set
|
||||
# BR2_PACKAGE_ANYKA_OSDRV_AK3918EV300 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=y
|
||||
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
|
||||
|
||||
# WIREGUARD
|
||||
BR2_PACKAGE_WIREGUARD_LINUX_COMPAT=y
|
||||
BR2_PACKAGE_WIREGUARD_TOOLS=y
|
||||
|
||||
# DEBUG
|
||||
BR2_PACKAGE_HOST_GDB=y
|
||||
BR2_PACKAGE_GDB=y
|
|
@ -0,0 +1,2 @@
|
|||
include $(BR2_EXTERNAL_ANYKA_PATH)/linux/linux-ext-anyka_patcher.mk
|
||||
include $(sort $(wildcard $(BR2_EXTERNAL_ANYKA_PATH)/package/*/*.mk))
|
|
@ -0,0 +1 @@
|
|||
../../general/package/anyka-osdrv-ak3918ev200
|
|
@ -0,0 +1,6 @@
|
|||
config BR2_PACKAGE_ANYKA_OSDRV_AK3918EV200
|
||||
bool "anyka-osdrv-ak3918ev200"
|
||||
help
|
||||
anyka-osdrv-ak3918ev200 - Anyka kernel modules and libs
|
||||
|
||||
https://openipc.org
|
|
@ -0,0 +1,34 @@
|
|||
################################################################################
|
||||
#
|
||||
# anyka-osdrv-ak3918ev200
|
||||
#
|
||||
################################################################################
|
||||
|
||||
ANYKA_OSDRV_AK3918EV200_VERSION =
|
||||
ANYKA_OSDRV_AK3918EV200_SITE =
|
||||
ANYKA_OSDRV_AK3918EV200_LICENSE = MIT
|
||||
ANYKA_OSDRV_AK3918EV200_LICENSE_FILES = LICENSE
|
||||
|
||||
define ANYKA_OSDRV_AK3918EV200_INSTALL_TARGET_CMDS
|
||||
$(INSTALL) -m 755 -d $(TARGET_DIR)/etc/init.d
|
||||
$(INSTALL) -m 755 -t $(TARGET_DIR)/etc/init.d $(BR2_EXTERNAL_ANYKA_PATH)/package/anyka-osdrv-ak3918ev200/files/script/S95anyka
|
||||
|
||||
$(INSTALL) -m 755 -d $(TARGET_DIR)/etc/sensors
|
||||
$(INSTALL) -m 644 -t $(TARGET_DIR)/etc/sensors $(BR2_EXTERNAL_ANYKA_PATH)/package/anyka-osdrv-ak3918ev200/files/sensor/config/*.conf
|
||||
|
||||
$(INSTALL) -m 755 -d $(TARGET_DIR)/lib/modules/3.4.35/anyka
|
||||
$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/3.4.35/anyka $(BR2_EXTERNAL_ANYKA_PATH)/package/anyka-osdrv-ak3918ev200/files/kmod/*.ko
|
||||
|
||||
$(INSTALL) -m 755 -d $(TARGET_DIR)/usr/bin
|
||||
$(INSTALL) -m 755 -t $(TARGET_DIR)/usr/bin $(BR2_EXTERNAL_ANYKA_PATH)/package/anyka-osdrv-ak3918ev200/files/script/load_anyka
|
||||
# $(INSTALL) -m 755 -t $(TARGET_DIR)/usr/bin $(BR2_EXTERNAL_ANYKA_PATH)/package/anyka-osdrv-ak3918ev200/files/script/ircut_demo
|
||||
|
||||
$(INSTALL) -m 755 -d $(TARGET_DIR)/usr/lib/sensors
|
||||
# $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/sensors $(BR2_EXTERNAL_ANYKA_PATH)/package/anyka-osdrv-ak3918ev200/files/sensor/*.so
|
||||
|
||||
$(INSTALL) -m 755 -d $(TARGET_DIR)/usr/lib
|
||||
|
||||
# $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(BR2_EXTERNAL_ANYKA_PATH)/package/anyka-osdrv-ak3918ev200/files/lib/xxx.so
|
||||
endef
|
||||
|
||||
$(eval $(generic-package))
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,78 @@
|
|||
#!/bin/sh
|
||||
|
||||
DAEMON="majestic"
|
||||
PIDFILE="/var/run/$DAEMON.pid"
|
||||
|
||||
DAEMON_ARGS="-s"
|
||||
|
||||
# shellcheck source=/dev/null
|
||||
[ -r "/etc/default/$DAEMON" ] && . "/etc/default/$DAEMON"
|
||||
|
||||
load_majestic() {
|
||||
printf 'Starting %s: ' "$DAEMON"
|
||||
[ -f /usr/bin/$DAEMON ] || echo -en "DISABLED, "
|
||||
# shellcheck disable=SC2086 # we need the word splitting
|
||||
[ -f /etc/coredump.conf ] && . /etc/coredump.conf
|
||||
if [ "$coredump_enabled" ]; then
|
||||
[ "$(yaml-cli -i /etc/majestic.yaml -g .watchdog.timeout)" -lt "30" ] && yaml-cli -i /etc/majestic.yaml -s .watchdog.timeout 30
|
||||
ulimit -c unlimited && echo "|/usr/sbin/sendcoredump.sh" >/proc/sys/kernel/core_pattern
|
||||
fi
|
||||
start-stop-daemon -b -m -S -q -p "$PIDFILE" -x "/usr/bin/$DAEMON" \
|
||||
-- $DAEMON_ARGS
|
||||
status=$?
|
||||
if [ "$status" -eq 0 ]; then
|
||||
echo "OK"
|
||||
else
|
||||
echo "FAIL"
|
||||
fi
|
||||
return "$status"
|
||||
}
|
||||
|
||||
# The daemon does not create a pidfile, and use "-m" to instruct start-stop-daemon to create one.
|
||||
start() {
|
||||
logger -s -p daemon.info -t anyka "Check MAC for Xiongmai devices"
|
||||
if [ "$(fw_printenv -n ethaddr)" = "00:00:23:34:45:66" ]; then
|
||||
logger -s -p daemon.info -t anyka "The eth0 interface has a lousy MAC, let's try to change it.."
|
||||
XMMAC="$(ipcinfo --xm-mac)" && [ -n "${XMMAC}" ] && fw_setenv ethaddr ${XMMAC} && reboot -f || logger -s -p daemon.info -t anyka "It is not possible to install a new MAC on the eth0 interface.."
|
||||
else
|
||||
logger -s -p daemon.info -t anyka "The eth0 interface has a correct MAC - $(fw_printenv -n ethaddr)"
|
||||
fi
|
||||
#
|
||||
logger -s -p daemon.info -t anyka "Loading of kernel modules and initialization of the video system has started"
|
||||
export TZ=$(cat /etc/TZ)
|
||||
#load_anyka
|
||||
#
|
||||
#load_majestic
|
||||
}
|
||||
|
||||
stop() {
|
||||
printf 'Stopping %s: ' "$DAEMON"
|
||||
[ -f /usr/bin/$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
|
||||
reload
|
||||
}
|
||||
|
||||
reload() {
|
||||
load_majestic
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
start|stop|restart|reload)
|
||||
"$1";;
|
||||
*)
|
||||
echo "Usage: $0 {start|stop|restart|reload}"
|
||||
exit 1
|
||||
esac
|
|
@ -0,0 +1,87 @@
|
|||
#!/bin/sh
|
||||
|
||||
# on EV200:
|
||||
# GPIO1_0 -> GPIO8 (1*8+0 = 8)
|
||||
# GPIO1_1 -> GPIO9 (1*8+1 = 9)
|
||||
|
||||
# on EV300:
|
||||
# GPIO1_3 -> GPIO11
|
||||
# GPIO1_2 -> GPIO10
|
||||
|
||||
#(normal mode)
|
||||
ir_cut_enable() {
|
||||
# pin_mux
|
||||
echo "$gpio_0" >/sys/class/gpio/unexport
|
||||
echo "$gpio_1" >/sys/class/gpio/unexport
|
||||
echo "$gpio_0" >/sys/class/gpio/export
|
||||
echo "$gpio_1" >/sys/class/gpio/export
|
||||
|
||||
# dir
|
||||
echo "out" >/sys/class/gpio/gpio$gpio_0/direction
|
||||
echo "out" >/sys/class/gpio/gpio$gpio_1/direction
|
||||
|
||||
# data, gpio_1: 0, gpio_0: 1 (normal mode)
|
||||
echo "1" >/sys/class/gpio/gpio$gpio_0/value
|
||||
echo "0" >/sys/class/gpio/gpio$gpio_1/value
|
||||
|
||||
#sleep 1s
|
||||
sleep 1
|
||||
|
||||
# back to original
|
||||
echo "0" >/sys/class/gpio/gpio$gpio_0/value
|
||||
echo "0" >/sys/class/gpio/gpio$gpio_1/value
|
||||
}
|
||||
|
||||
# (ir mode)
|
||||
ir_cut_disable() {
|
||||
# pin_mux
|
||||
echo "$gpio_0" >/sys/class/gpio/unexport
|
||||
echo "$gpio_1" >/sys/class/gpio/unexport
|
||||
echo "$gpio_0" >/sys/class/gpio/export
|
||||
echo "$gpio_1" >/sys/class/gpio/export
|
||||
|
||||
# dir
|
||||
echo "out" >/sys/class/gpio/gpio$gpio_0/direction
|
||||
echo "out" >/sys/class/gpio/gpio$gpio_1/direction
|
||||
|
||||
# data, gpio_1: 1, gpio_0: 0 (ir mode)
|
||||
echo "0" >/sys/class/gpio/gpio$gpio_0/value
|
||||
echo "1" >/sys/class/gpio/gpio$gpio_1/value
|
||||
|
||||
#sleep 1s
|
||||
sleep 1
|
||||
|
||||
# back to original
|
||||
echo "0" >/sys/class/gpio/gpio$gpio_0/value
|
||||
echo "0" >/sys/class/gpio/gpio$gpio_1/value
|
||||
}
|
||||
|
||||
gpio_0=0
|
||||
gpio_1=0
|
||||
|
||||
if [ $# -lt 2 ]; then
|
||||
echo "usage : ./ircut_demo <chip> <mode>"
|
||||
echo "for example:"
|
||||
echo "ir mode : ./ircut_demo hi3516ev200 1"
|
||||
else
|
||||
if [ $1 = "hi3516ev200" ]; then
|
||||
gpio_0=8
|
||||
gpio_1=9
|
||||
elif [ $1 = "hi3516ev300" ]; then
|
||||
gpio_0=11
|
||||
gpio_1=10
|
||||
else
|
||||
echo "wrong chipid: $1, please select: hi3516ev200 or hi3516ev300."
|
||||
exit
|
||||
fi
|
||||
|
||||
if [ $2 -eq 0 ]; then
|
||||
echo "normal mode, ir_cut on"
|
||||
ir_cut_enable >/dev/null
|
||||
elif [ $2 -eq 1 ]; then
|
||||
echo "ir mode, ir_cut off"
|
||||
ir_cut_disable >/dev/null
|
||||
else
|
||||
echo "invalid mode, please slect 0 or 1."
|
||||
fi
|
||||
fi
|
|
@ -0,0 +1,196 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
# This is part of OpenIPC.org project | 2020.08.01
|
||||
#
|
||||
# ar0237 imx290 imx307 imx323 imx385 jxf22 ov2718 ov2718_2a sc2235
|
||||
|
||||
|
||||
# SoC detect
|
||||
chipid=$(ipcinfo --chip-name)
|
||||
|
||||
# MMZ config
|
||||
mem_start=0x80000000; # phy mem start
|
||||
|
||||
mem_total=$(fw_printenv -n totalmem | tr -d 'M')
|
||||
mem_total=${mem_total:=64}
|
||||
|
||||
os_mem_size=$(fw_printenv -n osmem | tr -d 'M')
|
||||
os_mem_size=${os_mem_size:=32}
|
||||
|
||||
report_error()
|
||||
{
|
||||
echo "******* Error: There's something wrong, please check! *****"
|
||||
exit 1
|
||||
}
|
||||
|
||||
insert_mmz()
|
||||
{
|
||||
}
|
||||
|
||||
insert_detect()
|
||||
{
|
||||
insert_mmz
|
||||
insert_isp
|
||||
SENSOR=ar0130 insert_sns
|
||||
}
|
||||
|
||||
remove_detect()
|
||||
{
|
||||
}
|
||||
|
||||
remove_sns()
|
||||
{
|
||||
rmmod -w sensor_spi &> /dev/null
|
||||
rmmod -w sensor_i2c &> /dev/null
|
||||
}
|
||||
|
||||
insert_isp()
|
||||
{
|
||||
}
|
||||
|
||||
insert_sns()
|
||||
{
|
||||
}
|
||||
|
||||
insert_ko()
|
||||
{
|
||||
find . -maxdepth 1 -type f -name "sensor_*.ko" -exec insmod {} \;
|
||||
insmod akcamera.ko
|
||||
}
|
||||
|
||||
remove_ko()
|
||||
{
|
||||
}
|
||||
|
||||
calc_mmz_info()
|
||||
{
|
||||
mmz_start=`echo "$mem_start $os_mem_size" |
|
||||
awk 'BEGIN { temp = 0; }
|
||||
{
|
||||
temp = $1/1024/1024 + $2;
|
||||
}
|
||||
END { printf("0x%x00000\n", temp); }'`
|
||||
|
||||
mmz_size=`echo "$mem_total $os_mem_size" |
|
||||
awk 'BEGIN { temp = 0; }
|
||||
{
|
||||
temp = $1 - $2;
|
||||
}
|
||||
END { printf("%dM\n", temp); }'`
|
||||
echo "mmz_start: $mmz_start, mmz_size: $mmz_size"
|
||||
}
|
||||
|
||||
|
||||
######################parse arg###################################
|
||||
b_arg_os_mem=0
|
||||
b_arg_total_mem=0
|
||||
b_arg_sensor=0
|
||||
b_arg_insmod=0
|
||||
b_arg_remove=0
|
||||
b_arg_online=1
|
||||
|
||||
for arg in $@
|
||||
do
|
||||
if [ $b_arg_total_mem -eq 1 ]; then
|
||||
b_arg_total_mem=0;
|
||||
mem_total=$arg;
|
||||
|
||||
if [ -z $mem_total ]; then
|
||||
echo "[error] mem_total is null"
|
||||
exit;
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ $b_arg_os_mem -eq 1 ] ; then
|
||||
b_arg_os_mem=0;
|
||||
os_mem_size=$arg;
|
||||
|
||||
if [ -z $os_mem_size ]; then
|
||||
echo "[error] os_mem_size is null"
|
||||
exit;
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ $b_arg_sensor -eq 1 ] ; then
|
||||
b_arg_sensor=0
|
||||
SENSOR=$arg;
|
||||
fi
|
||||
|
||||
case $arg in
|
||||
"-i")
|
||||
b_arg_insmod=1;
|
||||
;;
|
||||
"-r")
|
||||
b_arg_remove=1;
|
||||
;;
|
||||
"-a")
|
||||
b_arg_insmod=1;
|
||||
b_arg_remove=1;
|
||||
;;
|
||||
"-h")
|
||||
load_usage;
|
||||
;;
|
||||
"-sensor")
|
||||
b_arg_sensor=1;
|
||||
;;
|
||||
"-osmem")
|
||||
b_arg_os_mem=1;
|
||||
;;
|
||||
"-total")
|
||||
b_arg_total_mem=1;
|
||||
;;
|
||||
"-offline")
|
||||
b_arg_online=0;
|
||||
;;
|
||||
esac
|
||||
done
|
||||
#######################parse arg end########################
|
||||
|
||||
if [ $os_mem_size -ge $mem_total ] ; then
|
||||
echo "[err] os_mem[$os_mem_size], over total_mem[$mem_total]"
|
||||
exit;
|
||||
fi
|
||||
|
||||
calc_mmz_info;
|
||||
|
||||
#######################Action###############################
|
||||
|
||||
if [ $# -lt 1 ]; then
|
||||
load_usage;
|
||||
exit 0;
|
||||
fi
|
||||
|
||||
# Sensor config
|
||||
# SENSOR=${SENSOR:=imx307}
|
||||
#
|
||||
|
||||
if [ -n "$SENSOR" ]; then
|
||||
logger -s -p daemon.info -t anyka "Manualy set SENSOR as ${SENSOR}"
|
||||
else
|
||||
if fw_printenv -n sensor >/dev/null; then
|
||||
SENSOR_ENV=$(fw_printenv -n sensor)
|
||||
export SENSOR=${SENSOR_ENV}
|
||||
logger -s -p daemon.info -t anyka "Get data from environment and set SENSOR as ${SENSOR}"
|
||||
else
|
||||
#insert_detect
|
||||
SENSOR_DETECT=$(ipcinfo --short-sensor)
|
||||
export SENSOR=${SENSOR_DETECT:=unknown}
|
||||
#remove_detect
|
||||
logger -s -p daemon.info -t anyka "Get data from ipcinfo and set SENSOR as ${SENSOR}"
|
||||
fw_setenv sensor $SENSOR && logger -s -p daemon.info -t anyka "Write detected ${SENSOR} to U-Boot ENV"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ $b_arg_remove -eq 1 ]; then
|
||||
remove_ko;
|
||||
fi
|
||||
|
||||
cd /lib/modules/3.4.35/anyka
|
||||
|
||||
if [ "$SENSOR" = "unknown" ]; then
|
||||
exit 1
|
||||
else
|
||||
if [ $b_arg_insmod -eq 1 ]; then
|
||||
insert_ko;
|
||||
fi
|
||||
fi
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue