diff --git a/.github/workflows/master.yml b/.github/workflows/master.yml index c2124b3..97a57a0 100644 --- a/.github/workflows/master.yml +++ b/.github/workflows/master.yml @@ -75,6 +75,7 @@ jobs: - t31_lite_wansview-q5-2k - t31_lite_aoni-ep01j05 - t31_lite_chinamobile-hdc-51-a6-v11 + - t31_lite_cmcc-hdc-51-a6-v10 - t31_lite_chinatelecom-y4h-50 - t31_lite_wyze-v3b - t31_lite_xiaomi-mjsxj03hl diff --git a/README.md b/README.md index 3ac92b7..ab89312 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,8 @@ Babysense See HD IP206 SSC333 GC2053 RTL8188FU_USB NOR_16M done Bathhouse HI3518EV300 ? RTL8188FU_USB NOR_8M research ChinaTelecom DS-YTJ5301 SSC30KD GC2053 RTL8188FU_USB NOR_16M video-ok, wifi-no, motors-no ChinaTelecom Y4H-50 T31L ? ? NOR_16M new -CMCC HDC-51 A5-V12 T21N SC2235 RTL8189FTV_SDIO NOR_16M in progress +CMCC HDC-51 A5-V12 T21N SC2235 RTL8189FTV_SDIO NOR_16M done +CMCC HDC-51 A6-V11 T31L JXF37 RTL8188FU_USB NOR_16M in progress CMCC HDC-51 A6-V11 T31L SC2332 RTL8188FU_USB NOR_16M done Cootli CAMV0103 GK7202V300 SC223A SSV6355_USB NOR_8M in progress Emax Wyvern Link SSC338Q IMX415 NOR_16M done diff --git a/devices/t31_lite_cmcc-hdc-51-a6-v10/br-ext-chip-ingenic/configs/t31_lite_cmcc-hdc-51-a6-v10_defconfig b/devices/t31_lite_cmcc-hdc-51-a6-v10/br-ext-chip-ingenic/configs/t31_lite_cmcc-hdc-51-a6-v10_defconfig new file mode 100644 index 0000000..5771a51 --- /dev/null +++ b/devices/t31_lite_cmcc-hdc-51-a6-v10/br-ext-chip-ingenic/configs/t31_lite_cmcc-hdc-51-a6-v10_defconfig @@ -0,0 +1,69 @@ +# Architecture +BR2_mipsel=y +BR2_mips_xburst=y +# BR2_MIPS_SOFT_FLOAT is not set +BR2_MIPS_FP32_MODE_32=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="mipsel-openipc-linux-musl" +BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_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)/t31.generic.config" +BR2_LINUX_KERNEL_LZMA=y + +# Filesystem +BR2_PACKAGE_BUSYBOX_CONFIG="$(BR2_EXTERNAL)/package/busybox/busybox.config" +BR2_PACKAGE_UBOOT_TOOLS=y +BR2_PACKAGE_ZLIB=y +# BR2_PACKAGE_IFUPDOWN_SCRIPTS is not set +BR2_PACKAGE_WIREGUARD_LINUX_COMPAT=y +BR2_PACKAGE_WIREGUARD_TOOLS=y +BR2_PACKAGE_WIRELESS_TOOLS=y +BR2_PACKAGE_WPA_SUPPLICANT=y +BR2_PACKAGE_WPA_SUPPLICANT_CLI=y +BR2_PACKAGE_WPA_SUPPLICANT_PASSPHRASE=y +BR2_TARGET_ROOTFS_CPIO=y +BR2_TARGET_ROOTFS_SQUASHFS=y +BR2_TARGET_ROOTFS_SQUASHFS4_XZ=y + +# OpenIPC +BR2_OPENIPC_SOC_VENDOR="ingenic" +BR2_OPENIPC_SOC_MODEL="t31" +BR2_OPENIPC_SOC_FAMILY="t31" +BR2_OPENIPC_SNS_MODEL="jxf37" +BR2_OPENIPC_VARIANT="lite" +BR2_OPENIPC_FLASH_SIZE="8" + +# Packages +BR2_PACKAGE_DROPBEAR_OPENIPC=y +BR2_PACKAGE_INGENIC_OSDRV_T31=y +BR2_PACKAGE_IPCTOOL=y +BR2_PACKAGE_JSONFILTER=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_QUIRC_OPENIPC=y +BR2_PACKAGE_RTL8188FU_OPENIPC=y +BR2_PACKAGE_VTUND_OPENIPC=y +BR2_PACKAGE_YAML_CLI=y diff --git a/devices/t31_lite_cmcc-hdc-51-a6-v10/general/overlay/etc/init.d/S97qrscan b/devices/t31_lite_cmcc-hdc-51-a6-v10/general/overlay/etc/init.d/S97qrscan new file mode 100755 index 0000000..7afc62a --- /dev/null +++ b/devices/t31_lite_cmcc-hdc-51-a6-v10/general/overlay/etc/init.d/S97qrscan @@ -0,0 +1,7 @@ +#!/bin/sh + +case "$1" in + start) + qrscan.sh >/dev/null 2>&1 & + ;; +esac diff --git a/devices/t31_lite_cmcc-hdc-51-a6-v10/general/overlay/usr/lib/sounds/ready_48k.pcm b/devices/t31_lite_cmcc-hdc-51-a6-v10/general/overlay/usr/lib/sounds/ready_48k.pcm new file mode 100644 index 0000000..d615825 Binary files /dev/null and b/devices/t31_lite_cmcc-hdc-51-a6-v10/general/overlay/usr/lib/sounds/ready_48k.pcm differ diff --git a/devices/t31_lite_cmcc-hdc-51-a6-v10/general/overlay/usr/sbin/qrscan.sh b/devices/t31_lite_cmcc-hdc-51-a6-v10/general/overlay/usr/sbin/qrscan.sh new file mode 100755 index 0000000..707f2e9 --- /dev/null +++ b/devices/t31_lite_cmcc-hdc-51-a6-v10/general/overlay/usr/sbin/qrscan.sh @@ -0,0 +1,27 @@ +#!/bin/sh + +GPIO=53 # BLUE led, t31_lite_cmcc-hdc-51-a6-v10 +N=0 + +gpio clear ${GPIO} | logger -t gpio + +while true ; do + if [ "$N" -ge 30 ]; then + logger -t qrscan "Recognition timeout exceeded, reboot camera and try again..." + gpio set ${GPIO} | logger -t gpio + exit 1 + fi + timeout 1 wget -q -O /tmp/image.jpg http://127.0.0.1/image.jpg + data=$(qrscan -p /tmp/image.jpg) + if [[ -n "$data" ]] && $(echo "$data" | grep -q wlan); then + fw_setenv $(echo $data | cut -d " " -f 1 | sed 's/=/ /') + fw_setenv $(echo $data | cut -d " " -f 2 | sed 's/=/ /') + logger -t qrscan "Recognition successfully, wlanssid and wlanpass is writed to env. Reboot required." + curl --data-binary @/usr/lib/sounds/ready_48k.pcm http://localhost/play_audio + for a in $(seq 10) ; do (gpio set ${GPIO} ; sleep 0.3 ; gpio clear ${GPIO} ; sleep 0.3 ) ; done | logger -t gpio + reboot -f + fi + sleep 1 + N=$((N + 1)) +done + diff --git a/devices/t31_lite_cmcc-hdc-51-a6-v10/general/overlay/usr/share/openipc/customizer.sh b/devices/t31_lite_cmcc-hdc-51-a6-v10/general/overlay/usr/share/openipc/customizer.sh new file mode 100644 index 0000000..e3d65c3 --- /dev/null +++ b/devices/t31_lite_cmcc-hdc-51-a6-v10/general/overlay/usr/share/openipc/customizer.sh @@ -0,0 +1,39 @@ +#!/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/t31_lite_chinamobile-hdc-51-a6-v10-nor.tgz' +# +# +# Set custom majestic settings +# +cli -s .nightMode.lightMonitor true +cli -s .nightMode.lightSensorPin 7 +cli -s .nightMode.irCutPin1 58 +cli -s .nightMode.irCutPin2 57 +cli -s .video0.codec h264 +cli -s .audio.enabled true +cli -s .audio.codec opus +cli -s .audio.srate 48000 +cli -s .audio.volume 50 +cli -s .audio.outputEnabled true +cli -s .audio.outputVolume 80 +cli -s .audio.speakerPin 63 +# +# +# Set wlan device and credentials if need +# +fw_setenv wlandev rtl8188fu-generic +#fw_setenv wlanssid Router +#fw_setenv wlanpass 12345678 +# +# +# Set osmem and rmem +# +fw_setenv osmem 39M +fw_setenv rmem 25M@0x2700000 +# +exit 0