From 56619980a5ee0c119042e87c6269542f6a4d059b Mon Sep 17 00:00:00 2001 From: Petru Soroaga Date: Fri, 1 Mar 2024 10:59:07 +0200 Subject: [PATCH] RubyFPV Integration - Part 1 (#1331) --- .../configs/gk7205v200_rubyfpv_defconfig | 129 +++++++++++++ .../configs/gk7205v210_rubyfpv_defconfig | 129 +++++++++++++ .../configs/gk7205v300_rubyfpv_defconfig | 129 +++++++++++++ .../configs/ssc30kq_rubyfpv_defconfig | 120 ++++++++++++ .../configs/ssc338q_rubyfpv_defconfig | 126 +++++++++++++ general/package/rubyfpv/Config.in | 11 ++ general/package/rubyfpv/files/S95ruby | 26 +++ general/package/rubyfpv/files/stop_vehicle.sh | 9 + general/package/rubyfpv/files/tweaksys | 178 ++++++++++++++++++ general/package/rubyfpv/rubyfpv.mk | 23 +++ general/package/rubyfpv/src/ruby_start.c | 7 + general/scripts/rootfs_script.sh | 2 +- 12 files changed, 888 insertions(+), 1 deletion(-) create mode 100644 br-ext-chip-goke/configs/gk7205v200_rubyfpv_defconfig create mode 100644 br-ext-chip-goke/configs/gk7205v210_rubyfpv_defconfig create mode 100644 br-ext-chip-goke/configs/gk7205v300_rubyfpv_defconfig create mode 100644 br-ext-chip-sigmastar/configs/ssc30kq_rubyfpv_defconfig create mode 100644 br-ext-chip-sigmastar/configs/ssc338q_rubyfpv_defconfig create mode 100644 general/package/rubyfpv/Config.in create mode 100644 general/package/rubyfpv/files/S95ruby create mode 100644 general/package/rubyfpv/files/stop_vehicle.sh create mode 100644 general/package/rubyfpv/files/tweaksys create mode 100644 general/package/rubyfpv/rubyfpv.mk create mode 100644 general/package/rubyfpv/src/ruby_start.c diff --git a/br-ext-chip-goke/configs/gk7205v200_rubyfpv_defconfig b/br-ext-chip-goke/configs/gk7205v200_rubyfpv_defconfig new file mode 100644 index 00000000..20349a86 --- /dev/null +++ b/br-ext-chip-goke/configs/gk7205v200_rubyfpv_defconfig @@ -0,0 +1,129 @@ +# Architecture +BR2_arm=y +BR2_cortex_a7=y +BR2_ARM_EABI=y +BR2_ARM_FPU_NEON_VFPV4=y +BR2_ARM_INSTRUCTIONS_THUMB2=y +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_12_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_TARBALL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="https://github.com/openipc/linux/archive/$(OPENIPC_KERNEL).tar.gz" +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(EXTERNAL_VENDOR)/board/$(OPENIPC_SOC_FAMILY)/kernel/gk7205v200.generic-fpv.config" +BR2_LINUX_KERNEL_UIMAGE=y +BR2_LINUX_KERNEL_XZ=y + +# OpenIPC +BR2_OPENIPC_SOC_VENDOR="goke" +BR2_OPENIPC_SOC_MODEL="gk7205v200" +BR2_OPENIPC_SOC_FAMILY="gk7205v200" +BR2_OPENIPC_VARIANT="fpv" +BR2_OPENIPC_FLASH_SIZE="8" + +# 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="$(BR2_EXTERNAL)/overlay" +BR2_ROOTFS_POST_BUILD_SCRIPT="$(BR2_EXTERNAL)/scripts/rootfs_script.sh" + +# OpenIPC configuration +BR2_TOOLCHAIN_BUILDROOT_VENDOR="openipc" +BR2_TARGET_GENERIC_ISSUE="Welcome to OpenIPC" +BR2_TARGET_GENERIC_HOSTNAME="openipc-gk7205v200" +BR2_GLOBAL_PATCH_DIR="$(BR2_EXTERNAL)/package/all-patches" + +# OpenIPC packages +BR2_PACKAGE_BUSYBOX_CONFIG="$(BR2_EXTERNAL)/package/busybox/busybox.config" +BR2_PACKAGE_DROPBEAR_OPENIPC=y +# BR2_PACKAGE_IFUPDOWN_SCRIPTS is not set +# BR2_PACKAGE_FDK_AAC_OPENIPC is not set +BR2_PACKAGE_UBOOT_TOOLS=y +BR2_PACKAGE_GOKE_OSDRV_GK7205V200=y +BR2_PACKAGE_HISILICON_OPENSDK=y +# BR2_PACKAGE_HASERL is not set +# BR2_PACKAGE_HISI_GPIO is not set +BR2_PACKAGE_IPCTOOL=y +BR2_PACKAGE_JSON_C=y +# BR2_PACKAGE_JSONFILTER is not set +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_LIBYAML=y +# BR2_PACKAGE_MAJESTIC_FONTS is not set +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_WEBUI is not set +# BR2_PACKAGE_MINI_SNMPD is not set +# BR2_PACKAGE_MOTORS is not set +# BR2_PACKAGE_SSHPASS is not set +BR2_PACKAGE_VTUND_OPENIPC=y +BR2_PACKAGE_YAML_CLI=y +# BR2_PACKAGE_QUIRC_OPENIPC is not set + +# WiFi +BR2_PACKAGE_WIRELESS_TOOLS=y +# BR2_PACKAGE_WIRELESS_REGDB 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=y +# BR2_PACKAGE_LINUX_FIRMWARE_OPENIPC_MEDIATEK_MT7601U is not set +# BR2_PACKAGE_RTL8188EU is not set +# BR2_PACKAGE_LINUX_FIRMWARE_OPENIPC_ATHEROS_9271 is not set +BR2_PACKAGE_RTL8812AU_OPENIPC=y + +# WIREGUARD +# BR2_PACKAGE_WIREGUARD_LINUX_COMPAT is not set +# BR2_PACKAGE_WIREGUARD_TOOLS is not set + +# FPV +BR2_PACKAGE_RUBYFPV=y + +# DEBUG +# BR2_PACKAGE_HOST_GDB is not set +# BR2_PACKAGE_GDB is not set + +# CCACHE +BR2_CCACHE=y +BR2_CCACHE_DIR="$(HOME)/.ccache" + +# Compression +BR2_PACKAGE_LIBZIP=y + +# External +BR2_TOOLCHAIN_EXTERNAL=y +BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y +BR2_TOOLCHAIN_EXTERNAL_CUSTOM_MUSL=y +BR2_TOOLCHAIN_EXTERNAL_CUSTOM_PREFIX="arm-openipc-linux-musleabi" +BR2_TOOLCHAIN_EXTERNAL_CXX=y +BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y +BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_9=y +BR2_TOOLCHAIN_EXTERNAL_URL="https://github.com/openipc/firmware/releases/download/$(OPENIPC_TOOLCHAIN).tgz" diff --git a/br-ext-chip-goke/configs/gk7205v210_rubyfpv_defconfig b/br-ext-chip-goke/configs/gk7205v210_rubyfpv_defconfig new file mode 100644 index 00000000..765f18e8 --- /dev/null +++ b/br-ext-chip-goke/configs/gk7205v210_rubyfpv_defconfig @@ -0,0 +1,129 @@ +# Architecture +BR2_arm=y +BR2_cortex_a7=y +BR2_ARM_EABI=y +BR2_ARM_FPU_NEON_VFPV4=y +BR2_ARM_INSTRUCTIONS_THUMB2=y +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_12_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_TARBALL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="https://github.com/openipc/linux/archive/$(OPENIPC_KERNEL).tar.gz" +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(EXTERNAL_VENDOR)/board/$(OPENIPC_SOC_FAMILY)/kernel/gk7205v200.generic-fpv.config" +BR2_LINUX_KERNEL_UIMAGE=y +BR2_LINUX_KERNEL_XZ=y + +# OpenIPC +BR2_OPENIPC_SOC_VENDOR="goke" +BR2_OPENIPC_SOC_MODEL="gk7205v210" +BR2_OPENIPC_SOC_FAMILY="gk7205v200" +BR2_OPENIPC_VARIANT="fpv" +BR2_OPENIPC_FLASH_SIZE="8" + +# 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="$(BR2_EXTERNAL)/overlay" +BR2_ROOTFS_POST_BUILD_SCRIPT="$(BR2_EXTERNAL)/scripts/rootfs_script.sh" + +# OpenIPC configuration +BR2_TOOLCHAIN_BUILDROOT_VENDOR="openipc" +BR2_TARGET_GENERIC_ISSUE="Welcome to OpenIPC" +BR2_TARGET_GENERIC_HOSTNAME="openipc-gk7205v210" +BR2_GLOBAL_PATCH_DIR="$(BR2_EXTERNAL)/package/all-patches" + +# OpenIPC packages +BR2_PACKAGE_BUSYBOX_CONFIG="$(BR2_EXTERNAL)/package/busybox/busybox.config" +BR2_PACKAGE_DROPBEAR_OPENIPC=y +# BR2_PACKAGE_IFUPDOWN_SCRIPTS is not set +# BR2_PACKAGE_FDK_AAC_OPENIPC is not set +BR2_PACKAGE_UBOOT_TOOLS=y +BR2_PACKAGE_GOKE_OSDRV_GK7205V200=y +BR2_PACKAGE_HISILICON_OPENSDK=y +# BR2_PACKAGE_HASERL is not set +# BR2_PACKAGE_HISI_GPIO is not set +BR2_PACKAGE_IPCTOOL=y +BR2_PACKAGE_JSON_C=y +# BR2_PACKAGE_JSONFILTER is not set +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_LIBYAML=y +# BR2_PACKAGE_MAJESTIC_FONTS is not set +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_WEBUI is not set +# BR2_PACKAGE_MINI_SNMPD is not set +# BR2_PACKAGE_MOTORS is not set +# BR2_PACKAGE_SSHPASS is not set +BR2_PACKAGE_VTUND_OPENIPC=y +BR2_PACKAGE_YAML_CLI=y +# BR2_PACKAGE_QUIRC_OPENIPC is not set + +# WiFi +BR2_PACKAGE_WIRELESS_TOOLS=y +# BR2_PACKAGE_WIRELESS_REGDB 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=y +# BR2_PACKAGE_LINUX_FIRMWARE_OPENIPC_MEDIATEK_MT7601U is not set +# BR2_PACKAGE_RTL8188EU is not set +# BR2_PACKAGE_LINUX_FIRMWARE_OPENIPC_ATHEROS_9271 is not set +BR2_PACKAGE_RTL8812AU_OPENIPC=y + +# WIREGUARD +# BR2_PACKAGE_WIREGUARD_LINUX_COMPAT is not set +# BR2_PACKAGE_WIREGUARD_TOOLS is not set + +# FPV +BR2_PACKAGE_RUBYFPV=y + +# DEBUG +# BR2_PACKAGE_HOST_GDB is not set +# BR2_PACKAGE_GDB is not set + +# CCACHE +BR2_CCACHE=y +BR2_CCACHE_DIR="$(HOME)/.ccache" + +# Compression +BR2_PACKAGE_LIBZIP=y + +# External +BR2_TOOLCHAIN_EXTERNAL=y +BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y +BR2_TOOLCHAIN_EXTERNAL_CUSTOM_MUSL=y +BR2_TOOLCHAIN_EXTERNAL_CUSTOM_PREFIX="arm-openipc-linux-musleabi" +BR2_TOOLCHAIN_EXTERNAL_CXX=y +BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y +BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_9=y +BR2_TOOLCHAIN_EXTERNAL_URL="https://github.com/openipc/firmware/releases/download/$(OPENIPC_TOOLCHAIN).tgz" diff --git a/br-ext-chip-goke/configs/gk7205v300_rubyfpv_defconfig b/br-ext-chip-goke/configs/gk7205v300_rubyfpv_defconfig new file mode 100644 index 00000000..8876e63f --- /dev/null +++ b/br-ext-chip-goke/configs/gk7205v300_rubyfpv_defconfig @@ -0,0 +1,129 @@ +# Architecture +BR2_arm=y +BR2_cortex_a7=y +BR2_ARM_EABI=y +BR2_ARM_FPU_NEON_VFPV4=y +BR2_ARM_INSTRUCTIONS_THUMB2=y +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_12_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_TARBALL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="https://github.com/openipc/linux/archive/$(OPENIPC_KERNEL).tar.gz" +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(EXTERNAL_VENDOR)/board/$(OPENIPC_SOC_FAMILY)/kernel/gk7205v300.generic-fpv.config" +BR2_LINUX_KERNEL_UIMAGE=y +BR2_LINUX_KERNEL_XZ=y + +# OpenIPC +BR2_OPENIPC_SOC_VENDOR="goke" +BR2_OPENIPC_SOC_MODEL="gk7205v300" +BR2_OPENIPC_SOC_FAMILY="gk7205v200" +BR2_OPENIPC_VARIANT="fpv" +BR2_OPENIPC_FLASH_SIZE="8" + +# 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="$(BR2_EXTERNAL)/overlay" +BR2_ROOTFS_POST_BUILD_SCRIPT="$(BR2_EXTERNAL)/scripts/rootfs_script.sh" + +# OpenIPC configuration +BR2_TOOLCHAIN_BUILDROOT_VENDOR="openipc" +BR2_TARGET_GENERIC_ISSUE="Welcome to OpenIPC" +BR2_TARGET_GENERIC_HOSTNAME="openipc-gk7205v300" +BR2_GLOBAL_PATCH_DIR="$(BR2_EXTERNAL)/package/all-patches" + +# OpenIPC packages +BR2_PACKAGE_BUSYBOX_CONFIG="$(BR2_EXTERNAL)/package/busybox/busybox.config" +BR2_PACKAGE_DROPBEAR_OPENIPC=y +# BR2_PACKAGE_IFUPDOWN_SCRIPTS is not set +# BR2_PACKAGE_FDK_AAC_OPENIPC is not set +BR2_PACKAGE_UBOOT_TOOLS=y +BR2_PACKAGE_GOKE_OSDRV_GK7205V200=y +BR2_PACKAGE_HISILICON_OPENSDK=y +# BR2_PACKAGE_HASERL is not set +# BR2_PACKAGE_HISI_GPIO is not set +BR2_PACKAGE_IPCTOOL=y +BR2_PACKAGE_JSON_C=y +# BR2_PACKAGE_JSONFILTER is not set +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_LIBYAML=y +# BR2_PACKAGE_MAJESTIC_FONTS is not set +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_WEBUI is not set +# BR2_PACKAGE_MINI_SNMPD is not set +# BR2_PACKAGE_MOTORS is not set +# BR2_PACKAGE_SSHPASS is not set +BR2_PACKAGE_VTUND_OPENIPC=y +BR2_PACKAGE_YAML_CLI=y +# BR2_PACKAGE_QUIRC_OPENIPC is not set + +# WiFi +BR2_PACKAGE_WIRELESS_TOOLS=y +# BR2_PACKAGE_WIRELESS_REGDB 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=y +# BR2_PACKAGE_LINUX_FIRMWARE_OPENIPC_MEDIATEK_MT7601U is not set +# BR2_PACKAGE_RTL8188EU is not set +# BR2_PACKAGE_LINUX_FIRMWARE_OPENIPC_ATHEROS_9271 is not set +BR2_PACKAGE_RTL8812AU_OPENIPC=y + +# WIREGUARD +# BR2_PACKAGE_WIREGUARD_LINUX_COMPAT is not set +# BR2_PACKAGE_WIREGUARD_TOOLS is not set + +# FPV +BR2_PACKAGE_RUBYFPV=y + +# DEBUG +# BR2_PACKAGE_HOST_GDB is not set +# BR2_PACKAGE_GDB is not set + +# CCACHE +BR2_CCACHE=y +BR2_CCACHE_DIR="$(HOME)/.ccache" + +# Compression +BR2_PACKAGE_LIBZIP=y + +# External +BR2_TOOLCHAIN_EXTERNAL=y +BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y +BR2_TOOLCHAIN_EXTERNAL_CUSTOM_MUSL=y +BR2_TOOLCHAIN_EXTERNAL_CUSTOM_PREFIX="arm-openipc-linux-musleabi" +BR2_TOOLCHAIN_EXTERNAL_CXX=y +BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y +BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_9=y +BR2_TOOLCHAIN_EXTERNAL_URL="https://github.com/openipc/firmware/releases/download/$(OPENIPC_TOOLCHAIN).tgz" diff --git a/br-ext-chip-sigmastar/configs/ssc30kq_rubyfpv_defconfig b/br-ext-chip-sigmastar/configs/ssc30kq_rubyfpv_defconfig new file mode 100644 index 00000000..fffa6251 --- /dev/null +++ b/br-ext-chip-sigmastar/configs/ssc30kq_rubyfpv_defconfig @@ -0,0 +1,120 @@ +# Architecture +BR2_arm=y +BR2_cortex_a7=y +BR2_ARM_EABIHF=y +BR2_ARM_FPU_NEON_VFPV4=y +BR2_ARM_INSTRUCTIONS_THUMB2=y +BR2_KERNEL_HEADERS_VERSION=y +BR2_DEFAULT_KERNEL_VERSION="4.9.84" +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_9=y + +# Toolchain +BR2_PER_PACKAGE_DIRECTORIES=y +BR2_GCC_VERSION_12_X=y +BR2_TOOLCHAIN_USES_GLIBC=y +BR2_TOOLCHAIN_BUILDROOT_GLIBC=y +BR2_TOOLCHAIN_BUILDROOT_LIBC="glibc" +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_TARBALL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="https://github.com/openipc/linux/archive/$(OPENIPC_KERNEL).tar.gz" +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(EXTERNAL_VENDOR)/board/$(OPENIPC_SOC_FAMILY)/kernel/infinity6e-ssc012b.config" +BR2_LINUX_KERNEL_UIMAGE=y +BR2_LINUX_KERNEL_XZ=y + +# OpenIPC +BR2_OPENIPC_SOC_VENDOR="sigmastar" +BR2_OPENIPC_SOC_MODEL="ssc30kq" +BR2_OPENIPC_SOC_FAMILY="infinity6e" +BR2_OPENIPC_VARIANT="fpv" +BR2_OPENIPC_FLASH_SIZE="16" +BR2_OPENIPC_MAJESTIC="lite" + +# 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="$(BR2_EXTERNAL)/overlay" +BR2_ROOTFS_POST_BUILD_SCRIPT="$(BR2_EXTERNAL)/scripts/rootfs_script.sh" + +# OpenIPC configuration +BR2_TOOLCHAIN_BUILDROOT_VENDOR="openipc" +BR2_TARGET_GENERIC_ISSUE="Welcome to OpenIPC" +BR2_TARGET_GENERIC_HOSTNAME="openipc-ssc30kq" +BR2_GLOBAL_PATCH_DIR="$(BR2_EXTERNAL)/package/all-patches" + +# OpenIPC packages +BR2_PACKAGE_BUSYBOX_CONFIG="$(BR2_EXTERNAL)/package/busybox/busybox.config" +BR2_PACKAGE_DROPBEAR_OPENIPC=y +# BR2_PACKAGE_IFUPDOWN_SCRIPTS is not set +# BR2_PACKAGE_FDK_AAC_OPENIPC is not set +BR2_PACKAGE_UBOOT_TOOLS=y +BR2_PACKAGE_IPCTOOL=y +BR2_PACKAGE_JSON_C=y +BR2_PACKAGE_JSONFILTER=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_LIBYAML=y +BR2_PACKAGE_MAJESTIC=y +BR2_PACKAGE_MAJESTIC_FONTS=y +BR2_PACKAGE_MBEDTLS_OPENIPC=y +# BR2_PACKAGE_MBEDTLS_OPENIPC_PROGRAMS is not set +# BR2_PACKAGE_MBEDTLS_OPENIPC_COMPRESSION is not set +BR2_PACKAGE_MAJESTIC_WEBUI=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_SIGMASTAR_OSDRV_INFINITY6E=y +BR2_PACKAGE_EXFAT_OPENIPC=y +BR2_PACKAGE_EXFATPROGS=y +# BR2_PACKAGE_SSHPASS is not set +# BR2_PACKAGE_UACME_OPENIPC is not set +BR2_PACKAGE_VTUND_OPENIPC=y +BR2_PACKAGE_YAML_CLI=y +BR2_PACKAGE_ZLIB=y + +# Wireless +BR2_PACKAGE_WIRELESS_TOOLS=y +BR2_PACKAGE_WPA_SUPPLICANT=y +BR2_PACKAGE_WPA_SUPPLICANT_CLI=y +BR2_PACKAGE_WPA_SUPPLICANT_AP_SUPPORT=y +BR2_PACKAGE_WPA_SUPPLICANT_NL80211=y +BR2_PACKAGE_WPA_SUPPLICANT_PASSPHRASE=y +BR2_PACKAGE_RTL8812AU_OPENIPC=y + +# FPV +BR2_PACKAGE_RUBYFPV=y + +# Debug +# BR2_PACKAGE_HOST_GDB is not set +# BR2_PACKAGE_GDB is not set + +# CCACHE +BR2_CCACHE=y +BR2_CCACHE_DIR="$(HOME)/.ccache" + +# External +BR2_TOOLCHAIN_EXTERNAL=y +BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y +BR2_TOOLCHAIN_EXTERNAL_CUSTOM_GLIBC=y +BR2_TOOLCHAIN_EXTERNAL_CUSTOM_PREFIX="arm-openipc-linux-gnueabihf" +BR2_TOOLCHAIN_EXTERNAL_CXX=y +BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y +BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_9=y +# BR2_TOOLCHAIN_EXTERNAL_INET_RPC is not set +BR2_TOOLCHAIN_EXTERNAL_URL="https://github.com/openipc/firmware/releases/download/$(OPENIPC_TOOLCHAIN).tgz" diff --git a/br-ext-chip-sigmastar/configs/ssc338q_rubyfpv_defconfig b/br-ext-chip-sigmastar/configs/ssc338q_rubyfpv_defconfig new file mode 100644 index 00000000..947196a8 --- /dev/null +++ b/br-ext-chip-sigmastar/configs/ssc338q_rubyfpv_defconfig @@ -0,0 +1,126 @@ +# Architecture +BR2_arm=y +BR2_cortex_a7=y +BR2_ARM_EABIHF=y +BR2_ARM_FPU_NEON_VFPV4=y +BR2_ARM_INSTRUCTIONS_THUMB2=y +BR2_KERNEL_HEADERS_VERSION=y +BR2_DEFAULT_KERNEL_VERSION="4.9.84" +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_9=y + +# Toolchain +BR2_PER_PACKAGE_DIRECTORIES=y +BR2_GCC_VERSION_12_X=y +BR2_TOOLCHAIN_USES_GLIBC=y +BR2_TOOLCHAIN_BUILDROOT_GLIBC=y +BR2_TOOLCHAIN_BUILDROOT_LIBC="glibc" +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_TARBALL=y +BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="https://github.com/openipc/linux/archive/$(OPENIPC_KERNEL).tar.gz" +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(EXTERNAL_VENDOR)/board/$(OPENIPC_SOC_FAMILY)/kernel/infinity6e-ssc012b.config" +BR2_LINUX_KERNEL_UIMAGE=y +BR2_LINUX_KERNEL_XZ=y + +# OpenIPC +BR2_OPENIPC_SOC_VENDOR="sigmastar" +BR2_OPENIPC_SOC_MODEL="ssc338q" +BR2_OPENIPC_SOC_FAMILY="infinity6e" +BR2_OPENIPC_VARIANT="fpv" +BR2_OPENIPC_FLASH_SIZE="16" +BR2_OPENIPC_MAJESTIC="lite" + +# 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_TARGET_ROOTFS_UBI=y +BR2_TARGET_ROOTFS_UBI_SUBSIZE=2048 +BR2_TARGET_ROOTFS_UBI_USE_CUSTOM_CONFIG=y +BR2_TARGET_ROOTFS_UBI_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL)/scripts/ubifs/ubinize_sigmastar.cfg" +BR2_TARGET_ROOTFS_UBIFS_LEBSIZE=0x1f000 +BR2_ROOTFS_OVERLAY="$(BR2_EXTERNAL)/overlay" +BR2_ROOTFS_POST_BUILD_SCRIPT="$(BR2_EXTERNAL)/scripts/rootfs_script.sh" + +# OpenIPC configuration +BR2_TOOLCHAIN_BUILDROOT_VENDOR="openipc" +BR2_TARGET_GENERIC_ISSUE="Welcome to OpenIPC" +BR2_TARGET_GENERIC_HOSTNAME="openipc-ssc338q" +BR2_GLOBAL_PATCH_DIR="$(BR2_EXTERNAL)/package/all-patches" + +# OpenIPC packages +BR2_PACKAGE_BUSYBOX_CONFIG="$(BR2_EXTERNAL)/package/busybox/busybox.config" +BR2_PACKAGE_DROPBEAR_OPENIPC=y +# BR2_PACKAGE_IFUPDOWN_SCRIPTS is not set +# BR2_PACKAGE_FDK_AAC_OPENIPC is not set +BR2_PACKAGE_UBOOT_TOOLS=y +BR2_PACKAGE_IPCTOOL=y +BR2_PACKAGE_JSON_C=y +BR2_PACKAGE_JSONFILTER=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_LIBYAML=y +BR2_PACKAGE_MAJESTIC=y +BR2_PACKAGE_MAJESTIC_FONTS=y +BR2_PACKAGE_MBEDTLS_OPENIPC=y +# BR2_PACKAGE_MBEDTLS_OPENIPC_PROGRAMS is not set +# BR2_PACKAGE_MBEDTLS_OPENIPC_COMPRESSION is not set +# BR2_PACKAGE_MAJESTIC_WEBUI is not set +# 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_SIGMASTAR_OSDRV_INFINITY6E=y +BR2_PACKAGE_EXFAT_OPENIPC=y +BR2_PACKAGE_EXFATPROGS=y +# BR2_PACKAGE_SSHPASS is not set +# BR2_PACKAGE_UACME_OPENIPC is not set +BR2_PACKAGE_VTUND_OPENIPC=y +BR2_PACKAGE_YAML_CLI=y +BR2_PACKAGE_ZLIB=y + +# Wireless +BR2_PACKAGE_WIRELESS_TOOLS=y +BR2_PACKAGE_WPA_SUPPLICANT=y +BR2_PACKAGE_WPA_SUPPLICANT_CLI=y +BR2_PACKAGE_WPA_SUPPLICANT_AP_SUPPORT=y +BR2_PACKAGE_WPA_SUPPLICANT_NL80211=y +BR2_PACKAGE_WPA_SUPPLICANT_PASSPHRASE=y +BR2_PACKAGE_RTL8733BU_OPENIPC=y +BR2_PACKAGE_RTL8812AU_OPENIPC=y + +# FPV +BR2_PACKAGE_RUBYFPV=y + +# Debug +# BR2_PACKAGE_HOST_GDB is not set +# BR2_PACKAGE_GDB is not set + +# CCACHE +BR2_CCACHE=y +BR2_CCACHE_DIR="$(HOME)/.ccache" + +# External +BR2_TOOLCHAIN_EXTERNAL=y +BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y +BR2_TOOLCHAIN_EXTERNAL_CUSTOM_GLIBC=y +BR2_TOOLCHAIN_EXTERNAL_CUSTOM_PREFIX="arm-openipc-linux-gnueabihf" +BR2_TOOLCHAIN_EXTERNAL_CXX=y +BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y +BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_9=y +# BR2_TOOLCHAIN_EXTERNAL_INET_RPC is not set +BR2_TOOLCHAIN_EXTERNAL_URL="https://github.com/openipc/firmware/releases/download/$(OPENIPC_TOOLCHAIN).tgz" diff --git a/general/package/rubyfpv/Config.in b/general/package/rubyfpv/Config.in new file mode 100644 index 00000000..0cbfc9b6 --- /dev/null +++ b/general/package/rubyfpv/Config.in @@ -0,0 +1,11 @@ +config BR2_PACKAGE_RUBYFPV + bool "rubyfpv" + select BR2_PACKAGE_LIBPCAP + select BR2_PACKAGE_LIBSODIUM + select BR2_PACKAGE_IW + select BR2_PACKAGE_DATALINK + default n + help + Ruby package + + https://rubyfpv.com diff --git a/general/package/rubyfpv/files/S95ruby b/general/package/rubyfpv/files/S95ruby new file mode 100644 index 00000000..f63d70bd --- /dev/null +++ b/general/package/rubyfpv/files/S95ruby @@ -0,0 +1,26 @@ +#!/bin/sh +# +# Start ruby +# + +chip=$(ipcinfo -c) +fw=$(grep "BUILD_OPTION" "/etc/os-release" | cut -d= -f2) + +case "$1" in + start) + if ! [ -f /etc/system.ok ]; then + tweaksys ${chip} + fi + + echo "Starting Ruby..." + + /usr/sbin/ruby_start + ;; + stop) + echo "Stopping Ruby..." + /usr/sbin/stop_vehicle + ;; + *) + echo "Usage: $0 {start|stop}" + exit 1 +esac diff --git a/general/package/rubyfpv/files/stop_vehicle.sh b/general/package/rubyfpv/files/stop_vehicle.sh new file mode 100644 index 00000000..c5a4e5dd --- /dev/null +++ b/general/package/rubyfpv/files/stop_vehicle.sh @@ -0,0 +1,9 @@ +kill -9 `pidof ruby_vehicle` +kill -9 `pidof ruby_rx_commands` +kill -9 `pidof ruby_tx_telemetry` +kill -9 `pidof ruby_rt_vehicle` +kill -9 `pidof ruby_rt_vehicle_light` +kill -9 `pidof ruby_alive` +kill -9 `pidof ruby_start` +kill -9 `pidof ruby_rx_rc` +kill -9 `pidof ruby_logger` diff --git a/general/package/rubyfpv/files/tweaksys b/general/package/rubyfpv/files/tweaksys new file mode 100644 index 00000000..8abcbae3 --- /dev/null +++ b/general/package/rubyfpv/files/tweaksys @@ -0,0 +1,178 @@ +#!/bin/sh + +chip=$(ipcinfo -c) +family=$(ipcinfo -f) +vendor=$(ipcinfo -v) + +if ! [ ${chip} = "hi3536dv100" ]; then + sensor=$(ipcinfo -s) +fi + +basic() { + # set boot delay + fw_setenv bootdelay 0 + # don't load f2fs module (disabled in kernel) + sed -i "s!f2fs!#f2fs!g" /etc/modules + # freely uart for telemetry + sed -i "s!console::respawn:/sbin/getty -L console 0 vt100 # GENERIC_SERIAL!#console::respawn:/sbin/getty -L console 0 vt100 # GENERIC_SERIAL!g" /etc/inittab + + # tune socket buffer + echo "net.core.rmem_default=512000" >> /etc/sysctl.conf +} + +prefix=${family} + +hisi_goke() { + if [ ${vendor} = "hisilicon" ]; then + prefix="open" + fi + # remove unneeded modules + sed -i "s!insmod ${prefix}_rgn.ko!#insmod ${prefix}_rgn.ko!g" /usr/bin/load_${vendor} + sed -i "s!insmod ${prefix}_jpege.ko!#insmod ${prefix}_jpege.ko!g" /usr/bin/load_${vendor} + sed -i "s!insmod ${prefix}_ive.ko save_power=0!#insmod ${prefix}_ive.ko save_power=0!g" /usr/bin/load_${vendor} + sed -i "s!insmod ${prefix}_aio.ko!#insmod ${prefix}_aio.ko!g" /usr/bin/load_${vendor} + sed -i "s!insmod ${prefix}_ai.ko!#insmod ${prefix}_ai.ko!g" /usr/bin/load_${vendor} + sed -i "s!insmod ${prefix}_ao.ko!#insmod ${prefix}_ao.ko!g" /usr/bin/load_${vendor} + sed -i "s!insmod ${prefix}_aenc.ko!#insmod ${prefix}_aenc.ko!g" /usr/bin/load_${vendor} + sed -i "s!insmod ${prefix}_adec.ko!#insmod ${prefix}_adec.ko!g" /usr/bin/load_${vendor} + sed -i "s!insmod ${prefix}_acodec.ko!#insmod ${prefix}_acodec.ko!g" /usr/bin/load_${vendor} + # change fps 25 -> 30 + sed -i "s!Isp_FrameRate=25!Isp_FrameRate=30!g" /etc/sensors/imx307_i2c_2l_1080p.ini + sed -i "s!Isp_FrameRate=25!Isp_FrameRate=30!g" /etc/sensors/smtsec_imx307_i2c_4l_1080p.ini + sed -i "s!Isp_FrameRate=25!Isp_FrameRate=30!g" /etc/sensors/imx335_i2c_4M.ini +} + +sigmastar() { + sed -i "s!serial=/dev/ttyAMA0!serial=/dev/ttyS0!g" /etc/telemetry.conf + sed -i "s!Device = /dev/ttyAMA0!Device = /dev/ttyS0!g" /etc/mavlink.conf +} + +majestic_generic() { + cli -s .isp.slowShutter disabled + # enable digital image stabilization + # cli -s .isp.dis true + cli -s .image.contrast 50 + cli -s .image.luminance 50 + cli -s .video0.size 1920x1080 + cli -s .video0.fps 30 + cli -s .video0.bitrate 5120 + cli -s .video0.codec h264 + cli -s .video0.rcMode cbr + cli -s .video0.gopSize 1.5 + # lowdelay support only imx307 sensor + if [ ${sensor} = "imx307" ]; then + cli -s .isp.lowDelay true + # cli -s .video0.sliceUnits 4 + fi + if [ ${sensor} = "imx335" ]; then + cli -s .isp.drc 350 + cli -s .isp.sensorConfig /etc/sensors/imx335_i2c_4M.ini + fi + cli -s .hls.enabled false + cli -s .netip.enabled false + cli -s .jpeg.enabled false +} + +majestic_sigmastar() { + cli -s .isp.exposure 10 + cli -s .isp.aGain 8 + cli -s .isp.dGain 8 + cli -s .video0.size 1920x1080 + cli -s .video0.fps 90 + cli -s .video0.rcMode cbr + cli -s .jpeg.enabled false +} + +streamer() { + if [ -f /usr/bin/majestic ]; then + if [ ${vendor} = "sigmastar" ]; then + majestic_sigmastar + else + majestic_generic + fi + # outgoing rtp stream to udp + cli -s .outgoing.enabled true + cli -s .outgoing.server udp://127.0.0.1:5600 + fi + + if [ -f /usr/bin/venc ]; then + if [ ${sensor} = "imx335" ]; then + sed -i "s!version=200_imx307B!version=300_imx335B!g" /etc/venc.conf + sed -i "s!size=720p!size=1292x972!g" /etc/venc.conf + fi + fi +} + +finish() { + # complete tweaks and add marker + touch /etc/system.ok + echo "Preparing system done." + reboot +} + +case "$1" in + gk7205v200 | gk7205v210 | hi3516ev200) + echo "Preparing system tweaks for ${chip}..." + + # set custom config + if [ ${chip} = "gk7205v200" ] && [ ${sensor} = "imx307" ]; then + echo "switch to custom sensor config" + # cli -s .isp.sensorConfig /etc/sensors/60fps/720p_imx307_i2c_2l.ini + fi + + # fix osmem in bootargs + bootargs=$(fw_printenv -n bootargs) + if echo ${bootargs} | grep -q "32M"; then + newbootargs="mem=\${osmem} "$(echo ${bootargs} | cut -d " " -f2-) + fw_setenv bootargs ${newbootargs} + fw_setenv osmem 40M + fi + + # remove unneeded to reduce some memory + rm -f /etc/init.d/S60crond /etc/init.d/S49ntpd /etc/init.d/S02klogd + + basic + hisi_goke + streamer + finish + ;; + gk7205v300 | hi3516ev300) + echo "Preparing system tweaks for ${chip}..." + + # increase osmem + mem=$(fw_printenv -n osmem) && [ "${mem}" = "32M" ] && fw_setenv osmem 64M && set_allocator cma || echo "Memory allocated for the system:" ${mem} + + # set sensor config for smtsec board + if [ ${chip} = "gk7205v300" ] && [ ${sensor} = "imx307" ]; then + cli -s .isp.sensorConfig /etc/sensors/smtsec_imx307_i2c_4l_1080p.ini + fi + + basic + hisi_goke + streamer + finish + ;; + t31l | t31n | t31x | t31zx) + echo "Preparing system tweaks for ${chip}..." + + basic + streamer + finish + ;; + hi3536dv100) + echo "Preparing system tweaks for ${chip}..." + + finish + ;; + ssc33x) + echo "Preparing system tweaks for ${chip}..." + + basic + sigmastar + streamer + finish + ;; + *) + echo "Usage: $0 {gk7205v200|gk7205v210|gk7205v300|hi3516ev200|hi3516ev300|t31l|t31n|t31x|t31zx|hi3536dv100|ssc33x}" + exit 1 +esac diff --git a/general/package/rubyfpv/rubyfpv.mk b/general/package/rubyfpv/rubyfpv.mk new file mode 100644 index 00000000..739aab78 --- /dev/null +++ b/general/package/rubyfpv/rubyfpv.mk @@ -0,0 +1,23 @@ + +define RUBYFPV_EXTRACT_CMDS + cp -avr $(RUBYFPV_PKGDIR)/src/* $(@D)/ +endef + +define RUBYFPV_BUILD_CMDS + (cd $(@D); $(TARGET_CC) -s ruby_start.c -o ruby_start) +endef + +define RUBYFPV_INSTALL_TARGET_CMDS + $(INSTALL) -m 755 -d $(TARGET_DIR)/etc/init.d + cp $(RUBYFPV_PKGDIR)/files/S95ruby $(TARGET_DIR)/etc/init.d + + install -m 0755 -D $(@D)/ruby_start $(TARGET_DIR)/usr/sbin/ruby_start + + $(INSTALL) -m 755 -d $(TARGET_DIR)/usr/sbin + cp $(RUBYFPV_PKGDIR)/files/stop_vehicle.sh $(TARGET_DIR)/usr/sbin + + $(INSTALL) -m 755 -d $(TARGET_DIR)/usr/bin + cp $(RUBYFPV_PKGDIR)/files/tweaksys $(TARGET_DIR)/usr/bin +endef + +$(eval $(generic-package)) diff --git a/general/package/rubyfpv/src/ruby_start.c b/general/package/rubyfpv/src/ruby_start.c new file mode 100644 index 00000000..1d726888 --- /dev/null +++ b/general/package/rubyfpv/src/ruby_start.c @@ -0,0 +1,7 @@ +#include + +int main (void) +{ + puts ("Welcome to RubyFPV"); + return 0; +} diff --git a/general/scripts/rootfs_script.sh b/general/scripts/rootfs_script.sh index c1d8d64d..c28e6735 100755 --- a/general/scripts/rootfs_script.sh +++ b/general/scripts/rootfs_script.sh @@ -7,7 +7,7 @@ date +GITHUB_VERSION="\"${GIT_BRANCH-local}+${GIT_HASH-build}, %Y-%m-%d"\" >> ${ echo BUILD_OPTION=${OPENIPC_VARIANT} >> ${FILE} date +TIME_STAMP=%s >> ${FILE} -CONF="USES_GLIBC=y|INGENIC_OSDRV_T30=y|LIBV4L=y|MAVLINK_ROUTER=y|WIFIBROADCAST=y|WEBRTC_AUDIO_PROCESSING=y" +CONF="USES_GLIBC=y|INGENIC_OSDRV_T30=y|LIBV4L=y|MAVLINK_ROUTER=y|WIFIBROADCAST=y|RUBYFPV=y|WEBRTC_AUDIO_PROCESSING=y" if ! grep -qP ${CONF} ${BR2_CONFIG}; then rm -f ${TARGET_DIR}/usr/lib/libstdc++* fi