diff --git a/README.md b/README.md index 482b2b617..f190226f5 100644 --- a/README.md +++ b/README.md @@ -68,6 +68,7 @@ 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 C110 v26 SSC333 ? ? NOR_? done +TP-Link Tapo C120 SSC377 SC430AI RTL8188FU_USB NOR_16M testing TP-Link Tapo C310 v1 SSC325 SC3335 RTL8192EU_USB NOR_8M in progress TP-Link Tapo C310 v2.20 SSC335 SC3338 RTL8192EU_USB NOR_8M testing TP-Link Tapo TC60 V5 T23N WQ9001_? NOR_8M **INIT** - frozen diff --git a/devices/ssc377_lite_tp-link-tapo-c120/br-ext-chip-sigmastar/configs/ssc377_lite_tp-link-tapo-c120_defconfig b/devices/ssc377_lite_tp-link-tapo-c120/br-ext-chip-sigmastar/configs/ssc377_lite_tp-link-tapo-c120_defconfig new file mode 100644 index 000000000..a69b2f393 --- /dev/null +++ b/devices/ssc377_lite_tp-link-tapo-c120/br-ext-chip-sigmastar/configs/ssc377_lite_tp-link-tapo-c120_defconfig @@ -0,0 +1,68 @@ +# Architecture +BR2_arm=y +BR2_cortex_a35=y +BR2_ARM_FPU_NEON_VFPV4=y +BR2_ARM_INSTRUCTIONS_THUMB2=y + +# Toolchain +BR2_TOOLCHAIN_EXTERNAL=y +BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y +BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y +BR2_TOOLCHAIN_EXTERNAL_URL="https://github.com/openipc/firmware/releases/download/$(OPENIPC_TOOLCHAIN).tgz" +BR2_TOOLCHAIN_EXTERNAL_CUSTOM_PREFIX="arm-openipc-linux-musleabihf" +BR2_TOOLCHAIN_EXTERNAL_HEADERS_5_10=y +BR2_TOOLCHAIN_EXTERNAL_CUSTOM_MUSL=y +BR2_TOOLCHAIN_EXTERNAL_CXX=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)/infinity6c-ssc027a.config" +BR2_LINUX_KERNEL_UIMAGE=y +BR2_LINUX_KERNEL_XZ=y + +# Filesystem +BR2_PACKAGE_BUSYBOX_CONFIG="$(BR2_EXTERNAL)/package/busybox/busybox.config" +BR2_PACKAGE_EXFATPROGS=y +BR2_PACKAGE_UBOOT_TOOLS=y +BR2_PACKAGE_ZLIB=y +# BR2_PACKAGE_IFUPDOWN_SCRIPTS is not set +# BR2_PACKAGE_WIREGUARD_LINUX_COMPAT is not set +BR2_PACKAGE_WIREGUARD_TOOLS=y +BR2_PACKAGE_WIRELESS_REGDB=y +BR2_PACKAGE_WIRELESS_TOOLS=y +BR2_PACKAGE_WPA_SUPPLICANT_OPENIPC=y +BR2_TARGET_ROOTFS_CPIO=y +BR2_TARGET_ROOTFS_SQUASHFS=y +BR2_TARGET_ROOTFS_SQUASHFS4_XZ=y + +# OpenIPC +BR2_OPENIPC_SOC_VENDOR="sigmastar" +BR2_OPENIPC_SOC_MODEL="ssc377" +BR2_OPENIPC_SOC_FAMILY="infinity6c" +BR2_OPENIPC_VARIANT="lite" +BR2_OPENIPC_FLASH_SIZE="16" + +# Packages +BR2_PACKAGE_DROPBEAR_OPENIPC=y +BR2_PACKAGE_EXFAT_OPENIPC=y +BR2_PACKAGE_IPCTOOL=y +BR2_PACKAGE_LIBCURL_OPENIPC=y +BR2_PACKAGE_LIBCURL_OPENIPC_CURL=y +# 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_LIBEVENT_OPENIPC=y +BR2_PACKAGE_LIBOGG_OPENIPC=y +BR2_PACKAGE_MAJESTIC_FONTS=y +BR2_PACKAGE_MAJESTIC_WEBUI=y +BR2_PACKAGE_MAJESTIC=y +BR2_PACKAGE_MBEDTLS_OPENIPC=y +BR2_PACKAGE_OPUS_OPENIPC=y +BR2_PACKAGE_OPUS_OPENIPC_FIXED_POINT=y +BR2_PACKAGE_RTL8188FU_OPENIPC=y +BR2_PACKAGE_SIGMASTAR_OSDRV_INFINITY6C=y +BR2_PACKAGE_VTUND_OPENIPC=y +BR2_PACKAGE_YAML_CLI=y diff --git a/devices/ssc377_lite_tp-link-tapo-c120/general/overlay/etc/init.d/S96irled b/devices/ssc377_lite_tp-link-tapo-c120/general/overlay/etc/init.d/S96irled new file mode 100755 index 000000000..231d396a8 --- /dev/null +++ b/devices/ssc377_lite_tp-link-tapo-c120/general/overlay/etc/init.d/S96irled @@ -0,0 +1,33 @@ +#!/bin/sh +# Tapo C120: majestic drives the IR-cut filter on GPIO 81 (1 = day, 0 = night) but has no +# IR-LED output in this build, so mirror the night state onto the IR LEDs (GPIO 12 + 13). +PID=/var/run/irled.pid +case "$1" in + start) + for p in 12 13; do + [ -d /sys/class/gpio/gpio$p ] || echo $p > /sys/class/gpio/export + echo out > /sys/class/gpio/gpio$p/direction + done + ( + last= + while :; do + v=$(cat /sys/class/gpio/gpio81/value 2>/dev/null) + if [ -n "$v" ] && [ "$v" != "$last" ]; then + for p in 12 13; do echo $((1 - v)) > /sys/class/gpio/gpio$p/value; done + last=$v + fi + sleep 3 + done + ) & + echo $! > $PID + ;; + stop) + [ -f $PID ] && kill "$(cat $PID)" 2>/dev/null; rm -f $PID + ;; + restart) + $0 stop; $0 start + ;; + *) + echo "Usage: $0 {start|stop|restart}"; exit 1 + ;; +esac diff --git a/devices/ssc377_lite_tp-link-tapo-c120/general/overlay/etc/wireless/usb b/devices/ssc377_lite_tp-link-tapo-c120/general/overlay/etc/wireless/usb new file mode 100755 index 000000000..2ecddbfae --- /dev/null +++ b/devices/ssc377_lite_tp-link-tapo-c120/general/overlay/etc/wireless/usb @@ -0,0 +1,16 @@ +#!/bin/sh + +set_gpio() { + [ "$2" -eq 1 ] && gpio set $1 || gpio clear $1 + sleep 1 +} + +# The RTL8188FTV sits on a USB daughterboard whose power is gated by GPIO 42 +if [ "$1" = "rtl8188fu-tapo-c120" ]; then + set_gpio 42 1 + sleep 2 + modprobe 8188fu + exit 0 +fi + +exit 1 diff --git a/devices/ssc377_lite_tp-link-tapo-c120/general/overlay/usr/share/openipc/customizer.sh b/devices/ssc377_lite_tp-link-tapo-c120/general/overlay/usr/share/openipc/customizer.sh new file mode 100755 index 000000000..c561c44ac --- /dev/null +++ b/devices/ssc377_lite_tp-link-tapo-c120/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/ssc377_lite_tp-link-tapo-c120-nor.tgz' +# +# +# Set custom majestic settings +# +cli -s .nightMode.irCutPin1 81 +cli -s .nightMode.irCutSingleInvert true +cli -s .nightMode.backlightPin 14 +cli -s .nightMode.colorToGray true +cli -s .audio.codec opus +# +# +# Set wlan device and credentials if need +# +fw_setenv wlandev rtl8188fu-tapo-c120 +fw_setenv sensor sc430ai +#fw_setenv wlanssid Router +#fw_setenv wlanpass 12345678 + +exit 0 diff --git a/devices/ssc377_lite_tp-link-tapo-c120/general/package/sigmastar-osdrv-infinity6c/files/sensor/configs/sc430ai.bin b/devices/ssc377_lite_tp-link-tapo-c120/general/package/sigmastar-osdrv-infinity6c/files/sensor/configs/sc430ai.bin new file mode 100644 index 000000000..6facbe27c Binary files /dev/null and b/devices/ssc377_lite_tp-link-tapo-c120/general/package/sigmastar-osdrv-infinity6c/files/sensor/configs/sc430ai.bin differ diff --git a/devices/ssc377_lite_tp-link-tapo-c120/general/scripts/excludes/ssc377_lite.list b/devices/ssc377_lite_tp-link-tapo-c120/general/scripts/excludes/ssc377_lite.list new file mode 100644 index 000000000..fabfda1eb --- /dev/null +++ b/devices/ssc377_lite_tp-link-tapo-c120/general/scripts/excludes/ssc377_lite.list @@ -0,0 +1,17 @@ +/etc/sensors/gc4653.bin +/etc/sensors/imx335.bin +/etc/sensors/imx415.bin +/etc/sensors/os04a10.bin +/etc/sensors/sc401ai.bin +/etc/sensors/sc830ai.bin +# +/lib/modules/5.10.61/sigmastar/sensor_gc4653_mipi.ko +/lib/modules/5.10.61/sigmastar/sensor_imx335_mipi.ko +/lib/modules/5.10.61/sigmastar/sensor_imx415_mipi.ko +/lib/modules/5.10.61/sigmastar/sensor_os04a10_mipi.ko +/lib/modules/5.10.61/sigmastar/sensor_sc401ai_mipi.ko +/lib/modules/5.10.61/sigmastar/sensor_sc4336p_mipi.ko +/lib/modules/5.10.61/sigmastar/sensor_sc450ai_mipi.ko +/lib/modules/5.10.61/sigmastar/sensor_sc501ai_mipi.ko +/lib/modules/5.10.61/sigmastar/sensor_sc830ai_mipi.ko +/lib/modules/5.10.61/sigmastar/sensor_sc850sl_mipi.ko