diff --git a/.github/workflows/master.yml b/.github/workflows/master.yml index 0f4e548..a43bb54 100644 --- a/.github/workflows/master.yml +++ b/.github/workflows/master.yml @@ -32,6 +32,7 @@ jobs: - hi3518ev200_ultimate_lenovo-snowman-1080p - ssc30kd_lite_chinatelecom-ds-ytj5301 - ssc325_lite_imilab-ec3-cmsxj25a + - ssc325_lite_tp-link-tapo-c310-v1 - ssc325de_lite_imou-c22ep-s2 - ssc333_lite_meari-speed-6s - ssc333_lite_tp-link-tapo-c110-v2 diff --git a/README.md b/README.md index 6acf173..b16b9ba 100644 --- a/README.md +++ b/README.md @@ -44,6 +44,7 @@ Switcam HS303 v2 HI3518EV200 OV9732 RTL8188EU_USB NOR_16M done TP-Link Tapo C110 v1 SSC335 SC3335 ATBM6032i_USB NOR_8M done TP-Link Tapo C110 v1 SSC337 SC3335 SSW101B_USB NOR_8M done TP-Link Tapo C110 v2 SSC333 SC3338 SSW101B_USB NOR_8M done +TP-Link Tapo C310 v1 SSC325 SC3335 RTL8192EU_USB NOR_8M in progress Trassir TR-D4121IR1 v2 HI3516CV200 AR0237 - NOR_16M done Trassir TR-W2C1 v2 SSC335 GC2053 MT7601U_USB NOR_16M done Tuya GV7630-T31-PTZ T31L SC2336 ATBM6012B_USB NOR_8M in progress diff --git a/devices/ssc325_lite_tp-link-tapo-c310-v1/br-ext-chip-sigmastar/configs/ssc325_lite_tp-link-tapo-c310-v1_defconfig b/devices/ssc325_lite_tp-link-tapo-c310-v1/br-ext-chip-sigmastar/configs/ssc325_lite_tp-link-tapo-c310-v1_defconfig new file mode 100644 index 0000000..bf07e0a --- /dev/null +++ b/devices/ssc325_lite_tp-link-tapo-c310-v1/br-ext-chip-sigmastar/configs/ssc325_lite_tp-link-tapo-c310-v1_defconfig @@ -0,0 +1,118 @@ +# 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_13_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 is not set +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/infinity6-ssc009a.config" +BR2_LINUX_KERNEL_UIMAGE=y +BR2_LINUX_KERNEL_XZ=y + +# OpenIPC +BR2_OPENIPC_SOC_VENDOR="sigmastar" +BR2_OPENIPC_SOC_MODEL="ssc325" +BR2_OPENIPC_SOC_FAMILY="infinity6" +BR2_OPENIPC_VARIANT="lite" +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-ssc325" +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_MAJESTIC_WEBUI=y +BR2_PACKAGE_MBEDTLS_OPENIPC=y +# BR2_PACKAGE_MBEDTLS_OPENIPC_PROGRAMS is not set +# BR2_PACKAGE_MBEDTLS_OPENIPC_COMPRESSION 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_INFINITY6=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_NL80211=y +BR2_PACKAGE_WPA_SUPPLICANT_PASSPHRASE=y +BR2_PACKAGE_RTL8192EU_OPENIPC=y + +# Debug +# BR2_PACKAGE_HOST_GDB is not set +# BR2_PACKAGE_GDB is not set + +# CCACHE +BR2_CCACHE=y +BR2_CCACHE_DIR="$(HOME)/.ccache" +BR2_OPTIMIZE_S=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-musleabihf" +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/devices/ssc325_lite_tp-link-tapo-c310-v1/general/overlay/etc/wireless/usb b/devices/ssc325_lite_tp-link-tapo-c310-v1/general/overlay/etc/wireless/usb new file mode 100755 index 0000000..17cbc8c --- /dev/null +++ b/devices/ssc325_lite_tp-link-tapo-c310-v1/general/overlay/etc/wireless/usb @@ -0,0 +1,13 @@ +#!/bin/sh + +set_gpio() { + [ "$2" -eq 1 ] && gpio set $1 || gpio clear $1 + sleep 1 +} + +if [ "$1" = "rtl8192eu-ssc325-tapo-c310v1" ]; then + modprobe 8192eu + exit 0 +fi + +exit 1 diff --git a/devices/ssc325_lite_tp-link-tapo-c310-v1/general/overlay/usr/share/openipc/customizer.sh b/devices/ssc325_lite_tp-link-tapo-c310-v1/general/overlay/usr/share/openipc/customizer.sh new file mode 100644 index 0000000..bd337e6 --- /dev/null +++ b/devices/ssc325_lite_tp-link-tapo-c310-v1/general/overlay/usr/share/openipc/customizer.sh @@ -0,0 +1,27 @@ +#!/bin/sh +# +# Perform basic settings on a known IP camera +# +# +# Set custom upgrade url +# +fw_setenv upgrade 'https://github.com/OpenIPC/builder/releases/download/latest/ssc325_lite_tp-link-tapo-c310-v1-nor.tgz' +# +# +# Set custom majestic settings +# +#cli -s .nightMode.enabled true +#cli -s .nightMode.irCutPin1 78 +#cli -s .nightMode.irCutPin2 79 +#cli -s .nightMode.backlightPin 52 +#cli -s .nightMode.colorToGray true +cli -s .video0.codec h264 +# +# +# Set wlan device and credentials if need +# +fw_setenv wlandev rtl8192eu-ssc325-tapo-c310v1 +#fw_setenv wlanssid Router +#fw_setenv wlanpass 12345678 + +exit 0 diff --git a/devices/ssc325_lite_tp-link-tapo-c310-v1/general/package/sigmastar-osdrv-infinity6/files/script/load_sigmastar b/devices/ssc325_lite_tp-link-tapo-c310-v1/general/package/sigmastar-osdrv-infinity6/files/script/load_sigmastar new file mode 100755 index 0000000..b805f2c --- /dev/null +++ b/devices/ssc325_lite_tp-link-tapo-c310-v1/general/package/sigmastar-osdrv-infinity6/files/script/load_sigmastar @@ -0,0 +1,70 @@ +#!/bin/sh +# +# OpenIPC.org | 2024 +# + +PATH_MODULE=/lib/modules/4.9.84/sigmastar +PATH_SENSOR=${PATH_MODULE}/sensor +SENSOR=$(fw_printenv -n sensor) + +detect_sensor() { + insmod ${PATH_SENSOR}/sensor_config.ko + if [ -e /dev/srcfg ]; then + echo srcfg 0 1 0 0 0 0 > /dev/srcfg + rmmod sensor_config + fi + SENSOR=$(ipcinfo -s) + fw_setenv sensor ${SENSOR} +} + +set_sensor() { + case ${SENSOR} in + gc2053|imx307|sc3335) + insmod ${PATH_SENSOR}/sensor_${SENSOR}_mipi.ko chmap=1 + ;; + sc2239|sc2335) + [ "$(fw_printenv -n soc)" = "ssc325de" ] && IFACE=parl + insmod ${PATH_SENSOR}/sensor_${SENSOR}_${IFACE:-mipi}.ko chmap=1 + ;; + *) + echo -e "\n\e[1;31mUNSUPPORTED sensor - ${SENSOR}\e[0m\n" | logger -s -t OpenIPC + ;; + esac +} + +insert_ko() { + insmod ${PATH_MODULE}/mhal.ko + insmod ${PATH_MODULE}/mi_common.ko + insmod ${PATH_MODULE}/mi_sys.ko logBufSize=256 default_config_path=/usr/bin + insmod ${PATH_MODULE}/mi_rgn.ko + insmod ${PATH_MODULE}/mi_ai.ko + insmod ${PATH_MODULE}/mi_ao.ko + insmod ${PATH_MODULE}/mi_sensor.ko + insmod ${PATH_MODULE}/mi_shadow.ko + insmod ${PATH_MODULE}/mi_divp.ko + insmod ${PATH_MODULE}/mi_vif.ko + insmod ${PATH_MODULE}/mi_vpe.ko + insmod ${PATH_MODULE}/mi_venc.ko +} + +if [ ! -e /sys/module/mhal ]; then + insert_ko +fi + +if [ -z ${SENSOR} ]; then + echo -e "\n\e[1;33mAutodetect sensor\e[0m\n" | logger -s -t OpenIPC + detect_sensor +fi + +if [ -z ${SENSOR} ]; then + echo -e "\n\e[1;31mSensor parameter MISSING\e[0m\n" | logger -s -t OpenIPC + exit 1 +else + echo -e "\n\e[1;32mSensor assigned - ${SENSOR}\e[0m\n" | logger -s -t OpenIPC + if [ -e /sys/module/sensor* ]; then + rmmod $(ls -d /sys/module/sensor* | cut -d/ -f4) + fi + set_sensor +fi + +exit 0 diff --git a/devices/ssc325_lite_tp-link-tapo-c310-v1/general/package/sigmastar-osdrv-infinity6/files/sensor/kmod/sensor_sc3335_mipi.ko b/devices/ssc325_lite_tp-link-tapo-c310-v1/general/package/sigmastar-osdrv-infinity6/files/sensor/kmod/sensor_sc3335_mipi.ko new file mode 100644 index 0000000..bce3a11 Binary files /dev/null and b/devices/ssc325_lite_tp-link-tapo-c310-v1/general/package/sigmastar-osdrv-infinity6/files/sensor/kmod/sensor_sc3335_mipi.ko differ diff --git a/devices/ssc325_lite_tp-link-tapo-c310-v1/general/package/sigmastar-osdrv-infinity6/sigmastar-osdrv-infinity6.mk b/devices/ssc325_lite_tp-link-tapo-c310-v1/general/package/sigmastar-osdrv-infinity6/sigmastar-osdrv-infinity6.mk new file mode 100644 index 0000000..eac43b6 --- /dev/null +++ b/devices/ssc325_lite_tp-link-tapo-c310-v1/general/package/sigmastar-osdrv-infinity6/sigmastar-osdrv-infinity6.mk @@ -0,0 +1,40 @@ +################################################################################ +# +# sigmastar-osdrv-infinity6 +# +################################################################################ + +SIGMASTAR_OSDRV_INFINITY6_VERSION = +SIGMASTAR_OSDRV_INFINITY6_SITE = +SIGMASTAR_OSDRV_INFINITY6_LICENSE = MIT +SIGMASTAR_OSDRV_INFINITY6_LICENSE_FILES = LICENSE + +SIGMASTAR_OSDRV_INFINITY6_DEPENDENCIES = ipctool + +define SIGMASTAR_OSDRV_INFINITY6_BUILD_CMDS + cp -rf $(SIGMASTAR_OSDRV_INFINITY6_PKGDIR)/files/src $(@D) + $(TARGET_CC) $(@D)/src/config_tool.c -o $(@D)/config_tool -lipchw -s +endef + +define SIGMASTAR_OSDRV_INFINITY6_INSTALL_TARGET_CMDS + $(INSTALL) -m 755 -d $(TARGET_DIR)/lib/modules/4.9.84/sigmastar + $(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.84/sigmastar $(SIGMASTAR_OSDRV_INFINITY6_PKGDIR)/files/kmod/* + + $(INSTALL) -m 755 -d $(TARGET_DIR)/lib/modules/4.9.84/sigmastar/sensor + $(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.84/sigmastar/sensor $(SIGMASTAR_OSDRV_INFINITY6B0_PKGDIR)/files/sensor/kmod/* + + $(INSTALL) -m 755 -d $(TARGET_DIR)/etc/firmware + $(INSTALL) -m 644 -t $(TARGET_DIR)/etc/firmware $(SIGMASTAR_OSDRV_INFINITY6_PKGDIR)/files/sensor/firmware/* + + $(INSTALL) -m 755 -d $(TARGET_DIR)/etc/sensors + $(INSTALL) -m 644 -t $(TARGET_DIR)/etc/sensors $(SIGMASTAR_OSDRV_INFINITY6_PKGDIR)/files/sensor/configs/* + + $(INSTALL) -m 755 -d $(TARGET_DIR)/usr/lib + $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib $(SIGMASTAR_OSDRV_INFINITY6_PKGDIR)/files/lib/* + + $(INSTALL) -m 755 -d $(TARGET_DIR)/usr/bin + $(INSTALL) -m 755 -t $(TARGET_DIR)/usr/bin $(@D)/config_tool + $(INSTALL) -m 755 -t $(TARGET_DIR)/usr/bin $(SIGMASTAR_OSDRV_INFINITY6_PKGDIR)/files/script/* +endef + +$(eval $(generic-package)) diff --git a/devices/ssc325_lite_tp-link-tapo-c310-v1/general/scripts/excludes/ssc325_lite.list b/devices/ssc325_lite_tp-link-tapo-c310-v1/general/scripts/excludes/ssc325_lite.list new file mode 100644 index 0000000..43b73a1 --- /dev/null +++ b/devices/ssc325_lite_tp-link-tapo-c310-v1/general/scripts/excludes/ssc325_lite.list @@ -0,0 +1,16 @@ +/etc/sensors/gc2053.bin +/etc/sensors/imx307.bin +/etc/sensors/sc2239.bin +/etc/sensors/sc2335.bin +# +/lib/modules/4.9.84/sigmastar/sensor/sensor_gc2053_mipi.ko +/lib/modules/4.9.84/sigmastar/sensor/sensor_imx307_mipi.ko +/lib/modules/4.9.84/sigmastar/sensor/sensor_sc2239_mipi.ko +/lib/modules/4.9.84/sigmastar/sensor/sensor_sc2239_parl.ko +/lib/modules/4.9.84/sigmastar/sensor/sensor_sc2335_mipi.ko +/lib/modules/4.9.84/sigmastar/sensor/sensor_sc2335_parl.ko +# +/lib/modules/4.9.84/kernel/fs/lockd/*.ko +/lib/modules/4.9.84/kernel/fs/nfs/*.ko +/lib/modules/4.9.84/kernel/fs/nfs_common/*.ko +/lib/modules/4.9.84/kernel/net/sunrpc/*.ko