diff --git a/.github/workflows/master.yml b/.github/workflows/master.yml index d9100c4..3043ac3 100644 --- a/.github/workflows/master.yml +++ b/.github/workflows/master.yml @@ -76,6 +76,9 @@ jobs: - t21_lite_smartwares-cip-37210at - t21_lite_xyx-06s - t21_lite_wansview-q5-1080p + - t23_lite_jooan-a6m-u + - t23_lite_jooan-q3r-u + - t23_lite_lsc-3215672 - t31_lite_aceline-aip-o4 - t31_lite_wansview-q5-2k - t31_lite_aoni-ep01j05 diff --git a/devices/t23_lite_jooan-a6m-u/br-ext-chip-ingenic/configs/t23_lite_jooan-a6m-u_defconfig b/devices/t23_lite_jooan-a6m-u/br-ext-chip-ingenic/configs/t23_lite_jooan-a6m-u_defconfig new file mode 100644 index 0000000..f7eceab --- /dev/null +++ b/devices/t23_lite_jooan-a6m-u/br-ext-chip-ingenic/configs/t23_lite_jooan-a6m-u_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/toolchain/toolchain.ingenic-t31.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/ingenic-t23.tar.gz" +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(EXTERNAL_VENDOR)/board/$(OPENIPC_SOC_FAMILY)/t23.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="t23" +BR2_OPENIPC_SOC_FAMILY="t23" +BR2_OPENIPC_VARIANT="lite" +BR2_OPENIPC_FLASH_SIZE="8" + +# Packages +BR2_PACKAGE_ATBM_WIFI=y +BR2_PACKAGE_BWM_NG=y +BR2_PACKAGE_DROPBEAR_OPENIPC=y +BR2_PACKAGE_INGENIC_OSDRV_T23=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_VTUND_OPENIPC=y +BR2_PACKAGE_YAML_CLI=y diff --git a/devices/t23_lite_jooan-a6m-u/general/overlay/etc/rc.local b/devices/t23_lite_jooan-a6m-u/general/overlay/etc/rc.local new file mode 100755 index 0000000..467c5a1 --- /dev/null +++ b/devices/t23_lite_jooan-a6m-u/general/overlay/etc/rc.local @@ -0,0 +1,20 @@ +#!/bin/sh +# +# rc.local +# +# This script is executed at the end of each multiuser runlevel. +# Make sure that the script will "exit 0" on success or any other +# value on error. +# +# In order to enable or disable this script just change the execution +# bits. +# +# By default this script does nothing. + + +#(resetd.sh >/dev/null 2>&1) & +# +#(while true; do sleep 30; checker=$(pidof majestic); if [[ -z $checker ]]; then /etc/init.d/S95majestic start; fi; done) & + + +exit 0 diff --git a/devices/t23_lite_jooan-a6m-u/general/overlay/etc/wireless/usb b/devices/t23_lite_jooan-a6m-u/general/overlay/etc/wireless/usb new file mode 100755 index 0000000..da9b2f6 --- /dev/null +++ b/devices/t23_lite_jooan-a6m-u/general/overlay/etc/wireless/usb @@ -0,0 +1,15 @@ +#!/bin/sh + +set_gpio() { + [ "$2" -eq 1 ] && gpio set $1 || gpio clear $1 + sleep 1 +} + +# T23 JOOAN A6M-U +if [ "$1" = "atbm601x-t23-jooan-a6m-u" ]; then + set_gpio 6 1 + modprobe atbm6012b_wifi_usb + exit 0 +fi + +exit 1 diff --git a/devices/t23_lite_jooan-a6m-u/general/overlay/usr/sbin/resetd.sh b/devices/t23_lite_jooan-a6m-u/general/overlay/usr/sbin/resetd.sh new file mode 100755 index 0000000..abe2b0e --- /dev/null +++ b/devices/t23_lite_jooan-a6m-u/general/overlay/usr/sbin/resetd.sh @@ -0,0 +1,37 @@ +#!/bin/sh + +if [ -e /usr/share/openipc/gpio.conf ]; then + . /usr/share/openipc/gpio.conf +fi + + +[ -z $button ] && echo "GPIO pin for resetd is not set" | logger -t resetd && exit + +# Counter for button press until reset +count=0 + +# prepare the pin +if [ ! -d /sys/class/gpio/gpio${button} ]; then + echo "${button}" > /sys/class/gpio/export + echo "in" > /sys/class/gpio/gpio${button}/direction +fi + +# continuously monitor current value of reset switch +while [ true ]; do + if [ "$(cat /sys/class/gpio/gpio${button}/value)" -eq 1 ]; then + count=0 + else + count=$((count+1)) + # 20 counts =~ 5 seconds @ 0.25 sleep intervals + if [ $count -eq 20 ]; then + #echo 'SET WIFI' | logger -t resetd + #fw_setenv wlanssid WIFI + #fw_setenv wlanpass 12345678 + for a in $(seq 10) ; do (gpio toggle ${led1} ; sleep 0.3 ; gpio toggle ${led1} ; sleep 0.3) ; done >/dev/null 2>&1 + echo 'RESETTING FIRMWARE' | logger -t resetd + firstboot + fi + fi + # This interval uses 1% CPU. Less sleep = more CPU + sleep 0.25 +done diff --git a/devices/t23_lite_jooan-a6m-u/general/overlay/usr/share/openipc/customizer.sh b/devices/t23_lite_jooan-a6m-u/general/overlay/usr/share/openipc/customizer.sh new file mode 100644 index 0000000..dfb17b1 --- /dev/null +++ b/devices/t23_lite_jooan-a6m-u/general/overlay/usr/share/openipc/customizer.sh @@ -0,0 +1,55 @@ +#!/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/t23_lite_jooan-a6m-u-nor.tgz' +# +# +# Set custom majestic settings +# +cli -s .video0.codec h264 +cli -s .nightMode.irCutPin1 49 +cli -s .nightMode.irCutPin2 50 +cli -s .nightMode.backlightPin 59 +cli -s .nightMode.monitorDelay 5 +cli -s .osd.enabled true +cli -s .osd.template "OpenIPC | %F %T %Z" +cli -s .audio.enabled true +cli -s .audio.codec aac +cli -s .audio.srate 48000 +cli -s .audio.volume 95 +cli -s .audio.gain 25 +cli -s .audio.outputEnabled true +cli -s .audio.outputVolume 80 +cli -s .audio.speakerPin 63 +cli -s .audio.speakerPinInvert true +# +# +# Set wlan device and credentials if need +# +fw_setenv wlandev atbm601x-t23-jooan-a6m-u +#fw_setenv wlanssid Router +#fw_setenv wlanpass 12345678 +# +# +# Set osmem and rmem +# +fw_setenv osmem 45M@0x0 +fw_setenv rmem 19M@0x2D00000 +# +# +# Set motor and mmc +# +fw_setenv gpio_mmc 61 +#fw_setenv gpio_motors 53 52 54 14 17 +# +# +#adduser viewer -s /bin/false -D -H ; echo viewer:123456 | chpasswd +# +(sleep 3 ; reboot -f) & +# + +exit 0 diff --git a/devices/t23_lite_jooan-a6m-u/general/overlay/usr/share/openipc/gpio.conf b/devices/t23_lite_jooan-a6m-u/general/overlay/usr/share/openipc/gpio.conf new file mode 100644 index 0000000..cf0fd81 --- /dev/null +++ b/devices/t23_lite_jooan-a6m-u/general/overlay/usr/share/openipc/gpio.conf @@ -0,0 +1,13 @@ +alarm_in=-1 +alarm_out=-1 +button=62 +ircut1=49 +ircut2=50 +led1=-1 +led2=-1 +light_ir=59 +light_wl=60 +light_sensor=-1 +mmc_pwr=61 +speaker=63 +usb=6 diff --git a/devices/t23_lite_jooan-a6m-u/general/overlay/usr/share/openipc/muxes.sh b/devices/t23_lite_jooan-a6m-u/general/overlay/usr/share/openipc/muxes.sh new file mode 100644 index 0000000..b249b04 --- /dev/null +++ b/devices/t23_lite_jooan-a6m-u/general/overlay/usr/share/openipc/muxes.sh @@ -0,0 +1,4 @@ +#!/bin/sh + +### set leds to off ### +gpio clear 60 diff --git a/devices/t23_lite_jooan-a6m-u/general/scripts/excludes/t23_lite.list b/devices/t23_lite_jooan-a6m-u/general/scripts/excludes/t23_lite.list new file mode 100644 index 0000000..95850ab --- /dev/null +++ b/devices/t23_lite_jooan-a6m-u/general/scripts/excludes/t23_lite.list @@ -0,0 +1,32 @@ +/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/i2c/algos/i2c-algo-bit.ko +/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/i2c/busses/i2c-gpio.ko +/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/net/usb/cdc_ether.ko +/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/net/usb/rndis_host.ko +/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/net/usb/usbnet.ko +/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/usb/serial/option.ko +/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/usb/serial/usb_wwan.ko +/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/usb/serial/usbserial.ko +/lib/modules/3.10.14__isvp_swan_1.0__/kernel/fs/f2fs/f2fs.ko +# +/etc/sensor/gc2053-t23.bin +/etc/sensor/gc2053.yaml +/etc/sensor/imx327-t23.bin +/etc/sensor/imx327.yaml +/etc/sensor/jxf23-t23.bin +/etc/sensor/jxf23.yaml +/etc/sensor/jxf37pa-t23.bin +/etc/sensor/jxf37pa.yaml +/etc/sensor/jxh63p-t23.bin +/etc/sensor/jxh63p.yaml +#/etc/sensor/sc1346-t23.bin +#/etc/sensor/sc1346.yaml +#/etc/sensor/sc1a4t-t23.bin +#/etc/sensor/sc1a4t.yaml +/etc/sensor/sc200ai-t23.bin +/etc/sensor/sc200ai.yaml +/etc/sensor/sc2310-t23.bin +/etc/sensor/sc2310.yaml +/etc/sensor/sc2331-t23.bin +/etc/sensor/sc2331.yaml +/etc/sensor/sc301IoT-t23.bin +/etc/sensor/sc301IoT.yaml diff --git a/devices/t23_lite_jooan-q3r-u/br-ext-chip-ingenic/configs/t23_lite_jooan-q3r-u_defconfig b/devices/t23_lite_jooan-q3r-u/br-ext-chip-ingenic/configs/t23_lite_jooan-q3r-u_defconfig new file mode 100644 index 0000000..6998eda --- /dev/null +++ b/devices/t23_lite_jooan-q3r-u/br-ext-chip-ingenic/configs/t23_lite_jooan-q3r-u_defconfig @@ -0,0 +1,70 @@ +# 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/toolchain/toolchain.ingenic-t31.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/ingenic-t23.tar.gz" +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(EXTERNAL_VENDOR)/board/$(OPENIPC_SOC_FAMILY)/t23.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="t23" +BR2_OPENIPC_SOC_FAMILY="t23" +BR2_OPENIPC_VARIANT="lite" +BR2_OPENIPC_FLASH_SIZE="8" + +# Packages +BR2_PACKAGE_ATBM_WIFI=y +BR2_PACKAGE_BWM_NG=y +BR2_PACKAGE_DROPBEAR_OPENIPC=y +BR2_PACKAGE_GPIO_MOTORS=y +BR2_PACKAGE_INGENIC_OSDRV_T23=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_VTUND_OPENIPC=y +BR2_PACKAGE_YAML_CLI=y diff --git a/devices/t23_lite_jooan-q3r-u/general/overlay/etc/rc.local b/devices/t23_lite_jooan-q3r-u/general/overlay/etc/rc.local new file mode 100755 index 0000000..467c5a1 --- /dev/null +++ b/devices/t23_lite_jooan-q3r-u/general/overlay/etc/rc.local @@ -0,0 +1,20 @@ +#!/bin/sh +# +# rc.local +# +# This script is executed at the end of each multiuser runlevel. +# Make sure that the script will "exit 0" on success or any other +# value on error. +# +# In order to enable or disable this script just change the execution +# bits. +# +# By default this script does nothing. + + +#(resetd.sh >/dev/null 2>&1) & +# +#(while true; do sleep 30; checker=$(pidof majestic); if [[ -z $checker ]]; then /etc/init.d/S95majestic start; fi; done) & + + +exit 0 diff --git a/devices/t23_lite_jooan-q3r-u/general/overlay/etc/wireless/usb b/devices/t23_lite_jooan-q3r-u/general/overlay/etc/wireless/usb new file mode 100755 index 0000000..da9b2f6 --- /dev/null +++ b/devices/t23_lite_jooan-q3r-u/general/overlay/etc/wireless/usb @@ -0,0 +1,15 @@ +#!/bin/sh + +set_gpio() { + [ "$2" -eq 1 ] && gpio set $1 || gpio clear $1 + sleep 1 +} + +# T23 JOOAN A6M-U +if [ "$1" = "atbm601x-t23-jooan-a6m-u" ]; then + set_gpio 6 1 + modprobe atbm6012b_wifi_usb + exit 0 +fi + +exit 1 diff --git a/devices/t23_lite_jooan-q3r-u/general/overlay/usr/sbin/resetd.sh b/devices/t23_lite_jooan-q3r-u/general/overlay/usr/sbin/resetd.sh new file mode 100755 index 0000000..abe2b0e --- /dev/null +++ b/devices/t23_lite_jooan-q3r-u/general/overlay/usr/sbin/resetd.sh @@ -0,0 +1,37 @@ +#!/bin/sh + +if [ -e /usr/share/openipc/gpio.conf ]; then + . /usr/share/openipc/gpio.conf +fi + + +[ -z $button ] && echo "GPIO pin for resetd is not set" | logger -t resetd && exit + +# Counter for button press until reset +count=0 + +# prepare the pin +if [ ! -d /sys/class/gpio/gpio${button} ]; then + echo "${button}" > /sys/class/gpio/export + echo "in" > /sys/class/gpio/gpio${button}/direction +fi + +# continuously monitor current value of reset switch +while [ true ]; do + if [ "$(cat /sys/class/gpio/gpio${button}/value)" -eq 1 ]; then + count=0 + else + count=$((count+1)) + # 20 counts =~ 5 seconds @ 0.25 sleep intervals + if [ $count -eq 20 ]; then + #echo 'SET WIFI' | logger -t resetd + #fw_setenv wlanssid WIFI + #fw_setenv wlanpass 12345678 + for a in $(seq 10) ; do (gpio toggle ${led1} ; sleep 0.3 ; gpio toggle ${led1} ; sleep 0.3) ; done >/dev/null 2>&1 + echo 'RESETTING FIRMWARE' | logger -t resetd + firstboot + fi + fi + # This interval uses 1% CPU. Less sleep = more CPU + sleep 0.25 +done diff --git a/devices/t23_lite_jooan-q3r-u/general/overlay/usr/share/openipc/customizer.sh b/devices/t23_lite_jooan-q3r-u/general/overlay/usr/share/openipc/customizer.sh new file mode 100644 index 0000000..a6f3645 --- /dev/null +++ b/devices/t23_lite_jooan-q3r-u/general/overlay/usr/share/openipc/customizer.sh @@ -0,0 +1,54 @@ +#!/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/t23_lite_jooan-q3r-u-nor.tgz' +# +# +# Set custom majestic settings +# +cli -s .video0.codec h264 +cli -s .nightMode.irCutPin1 49 +cli -s .nightMode.irCutPin2 50 +cli -s .nightMode.backlightPin 59 +cli -s .nightMode.monitorDelay 5 +cli -s .osd.enabled true +cli -s .osd.template "OpenIPC | %F %T %Z" +cli -s .audio.enabled true +cli -s .audio.codec aac +cli -s .audio.srate 48000 +cli -s .audio.volume 95 +cli -s .audio.gain 25 +cli -s .audio.outputEnabled true +cli -s .audio.outputVolume 80 +cli -s .audio.speakerPin 63 +cli -s .audio.speakerPinInvert true +# +# +# Set wlan device and credentials if need +# +fw_setenv wlandev atbm601x-t23-jooan-a6m-u +#fw_setenv wlanssid Router +#fw_setenv wlanpass 12345678 +# +# +# Set osmem and rmem +# +fw_setenv osmem 45M@0x0 +fw_setenv rmem 19M@0x2D00000 +# +# Set motor and mmc +# +fw_setenv gpio_mmc 61 +fw_setenv gpio_motors 53 52 54 14 17 +# +# +#adduser viewer -s /bin/false -D -H ; echo viewer:123456 | chpasswd +# +(sleep 3 ; reboot -f) & +# + +exit 0 diff --git a/devices/t23_lite_jooan-q3r-u/general/overlay/usr/share/openipc/gpio.conf b/devices/t23_lite_jooan-q3r-u/general/overlay/usr/share/openipc/gpio.conf new file mode 100644 index 0000000..cf0fd81 --- /dev/null +++ b/devices/t23_lite_jooan-q3r-u/general/overlay/usr/share/openipc/gpio.conf @@ -0,0 +1,13 @@ +alarm_in=-1 +alarm_out=-1 +button=62 +ircut1=49 +ircut2=50 +led1=-1 +led2=-1 +light_ir=59 +light_wl=60 +light_sensor=-1 +mmc_pwr=61 +speaker=63 +usb=6 diff --git a/devices/t23_lite_jooan-q3r-u/general/overlay/usr/share/openipc/muxes.sh b/devices/t23_lite_jooan-q3r-u/general/overlay/usr/share/openipc/muxes.sh new file mode 100644 index 0000000..b249b04 --- /dev/null +++ b/devices/t23_lite_jooan-q3r-u/general/overlay/usr/share/openipc/muxes.sh @@ -0,0 +1,4 @@ +#!/bin/sh + +### set leds to off ### +gpio clear 60 diff --git a/devices/t23_lite_jooan-q3r-u/general/scripts/excludes/t23_lite.list b/devices/t23_lite_jooan-q3r-u/general/scripts/excludes/t23_lite.list new file mode 100644 index 0000000..95850ab --- /dev/null +++ b/devices/t23_lite_jooan-q3r-u/general/scripts/excludes/t23_lite.list @@ -0,0 +1,32 @@ +/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/i2c/algos/i2c-algo-bit.ko +/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/i2c/busses/i2c-gpio.ko +/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/net/usb/cdc_ether.ko +/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/net/usb/rndis_host.ko +/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/net/usb/usbnet.ko +/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/usb/serial/option.ko +/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/usb/serial/usb_wwan.ko +/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/usb/serial/usbserial.ko +/lib/modules/3.10.14__isvp_swan_1.0__/kernel/fs/f2fs/f2fs.ko +# +/etc/sensor/gc2053-t23.bin +/etc/sensor/gc2053.yaml +/etc/sensor/imx327-t23.bin +/etc/sensor/imx327.yaml +/etc/sensor/jxf23-t23.bin +/etc/sensor/jxf23.yaml +/etc/sensor/jxf37pa-t23.bin +/etc/sensor/jxf37pa.yaml +/etc/sensor/jxh63p-t23.bin +/etc/sensor/jxh63p.yaml +#/etc/sensor/sc1346-t23.bin +#/etc/sensor/sc1346.yaml +#/etc/sensor/sc1a4t-t23.bin +#/etc/sensor/sc1a4t.yaml +/etc/sensor/sc200ai-t23.bin +/etc/sensor/sc200ai.yaml +/etc/sensor/sc2310-t23.bin +/etc/sensor/sc2310.yaml +/etc/sensor/sc2331-t23.bin +/etc/sensor/sc2331.yaml +/etc/sensor/sc301IoT-t23.bin +/etc/sensor/sc301IoT.yaml diff --git a/devices/t23_lite_lsc-3215672/br-ext-chip-ingenic/configs/t23_lite_lsc-3215672_defconfig b/devices/t23_lite_lsc-3215672/br-ext-chip-ingenic/configs/t23_lite_lsc-3215672_defconfig new file mode 100644 index 0000000..d2f2490 --- /dev/null +++ b/devices/t23_lite_lsc-3215672/br-ext-chip-ingenic/configs/t23_lite_lsc-3215672_defconfig @@ -0,0 +1,70 @@ +# 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/toolchain/toolchain.ingenic-t31.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/ingenic-t23.tar.gz" +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(EXTERNAL_VENDOR)/board/$(OPENIPC_SOC_FAMILY)/t23.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="t23" +BR2_OPENIPC_SOC_FAMILY="t23" +BR2_OPENIPC_SNS_MODEL="sc2331" +BR2_OPENIPC_VARIANT="lite" +BR2_OPENIPC_FLASH_SIZE="8" + +# Packages +BR2_PACKAGE_ATBM_WIFI=y +BR2_PACKAGE_BWM_NG=y +BR2_PACKAGE_DROPBEAR_OPENIPC=y +BR2_PACKAGE_INGENIC_OSDRV_T23=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_VTUND_OPENIPC=y +BR2_PACKAGE_YAML_CLI=y diff --git a/devices/t23_lite_lsc-3215672/general/overlay/etc/rc.local b/devices/t23_lite_lsc-3215672/general/overlay/etc/rc.local new file mode 100755 index 0000000..6b14b7d --- /dev/null +++ b/devices/t23_lite_lsc-3215672/general/overlay/etc/rc.local @@ -0,0 +1,20 @@ +#!/bin/sh +# +# rc.local +# +# This script is executed at the end of each multiuser runlevel. +# Make sure that the script will "exit 0" on success or any other +# value on error. +# +# In order to enable or disable this script just change the execution +# bits. +# +# By default this script does nothing. + + +(resetd.sh >/dev/null 2>&1) & +# +(while true; do sleep 30; checker=$(pidof majestic); if [[ -z $checker ]]; then /etc/init.d/S95majestic start; fi; done) & + + +exit 0 diff --git a/devices/t23_lite_lsc-3215672/general/overlay/etc/wireless/usb b/devices/t23_lite_lsc-3215672/general/overlay/etc/wireless/usb new file mode 100755 index 0000000..d3977ec --- /dev/null +++ b/devices/t23_lite_lsc-3215672/general/overlay/etc/wireless/usb @@ -0,0 +1,15 @@ +#!/bin/sh + +set_gpio() { + [ "$2" -eq 1 ] && gpio set $1 || gpio clear $1 + sleep 1 +} + +# T23 LSC 3215672 +if [ "$1" = "atbm601x-t23-lsc-3215672" ]; then + set_gpio 62 0 + modprobe atbm6012b_wifi_usb + exit 0 +fi + +exit 1 diff --git a/devices/t23_lite_lsc-3215672/general/overlay/usr/sbin/resetd.sh b/devices/t23_lite_lsc-3215672/general/overlay/usr/sbin/resetd.sh new file mode 100755 index 0000000..abe2b0e --- /dev/null +++ b/devices/t23_lite_lsc-3215672/general/overlay/usr/sbin/resetd.sh @@ -0,0 +1,37 @@ +#!/bin/sh + +if [ -e /usr/share/openipc/gpio.conf ]; then + . /usr/share/openipc/gpio.conf +fi + + +[ -z $button ] && echo "GPIO pin for resetd is not set" | logger -t resetd && exit + +# Counter for button press until reset +count=0 + +# prepare the pin +if [ ! -d /sys/class/gpio/gpio${button} ]; then + echo "${button}" > /sys/class/gpio/export + echo "in" > /sys/class/gpio/gpio${button}/direction +fi + +# continuously monitor current value of reset switch +while [ true ]; do + if [ "$(cat /sys/class/gpio/gpio${button}/value)" -eq 1 ]; then + count=0 + else + count=$((count+1)) + # 20 counts =~ 5 seconds @ 0.25 sleep intervals + if [ $count -eq 20 ]; then + #echo 'SET WIFI' | logger -t resetd + #fw_setenv wlanssid WIFI + #fw_setenv wlanpass 12345678 + for a in $(seq 10) ; do (gpio toggle ${led1} ; sleep 0.3 ; gpio toggle ${led1} ; sleep 0.3) ; done >/dev/null 2>&1 + echo 'RESETTING FIRMWARE' | logger -t resetd + firstboot + fi + fi + # This interval uses 1% CPU. Less sleep = more CPU + sleep 0.25 +done diff --git a/devices/t23_lite_lsc-3215672/general/overlay/usr/share/openipc/customizer.sh b/devices/t23_lite_lsc-3215672/general/overlay/usr/share/openipc/customizer.sh new file mode 100644 index 0000000..dce8c98 --- /dev/null +++ b/devices/t23_lite_lsc-3215672/general/overlay/usr/share/openipc/customizer.sh @@ -0,0 +1,51 @@ +#!/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/t23_lite_lsc-3215672-nor.tgz' +# +# +# Set custom majestic settings +# +cli -s .video0.codec h264 +cli -s .nightMode.irCutPin1 58 +cli -s .nightMode.irCutPin2 57 +cli -s .nightMode.backlightPin 61 +cli -s .nightMode.monitorDelay 5 +cli -s .nightMode.lightMonitor true +cli -s .nightMode.minThreshold 10 +cli -s .nightMode.maxThreshold 100 +cli -s .osd.enabled true +cli -s .osd.template "OpenIPC | %F %T %Z" +cli -s .audio.enabled true +cli -s .audio.codec aac +cli -s .audio.srate 48000 +cli -s .audio.volume 95 +cli -s .audio.gain 25 +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 atbm601x-t23-lsc-3215672 +#fw_setenv wlanssid Router +#fw_setenv wlanpass 12345678 +# +# +# Set osmem and rmem +# +fw_setenv osmem 45M@0x0 +fw_setenv rmem 19M@0x2D00000 +# +# +#adduser viewer -s /bin/false -D -H ; echo viewer:123456 | chpasswd +# +(sleep 3 ; reboot -f) & +# + +exit 0 diff --git a/devices/t23_lite_lsc-3215672/general/overlay/usr/share/openipc/gpio.conf b/devices/t23_lite_lsc-3215672/general/overlay/usr/share/openipc/gpio.conf new file mode 100644 index 0000000..290656c --- /dev/null +++ b/devices/t23_lite_lsc-3215672/general/overlay/usr/share/openipc/gpio.conf @@ -0,0 +1,13 @@ +alarm_in=-1 +alarm_out=-1 +button=6 +ircut1=57 +ircut2=58 +led1=51 +led2=-1 +light_ir=61 +light_wl=-1 +light_sensor=-1 +mmc_pwr=-1 +speaker=63 +usb=62 diff --git a/devices/t23_lite_lsc-3215672/general/overlay/usr/share/openipc/muxes.sh b/devices/t23_lite_lsc-3215672/general/overlay/usr/share/openipc/muxes.sh new file mode 100644 index 0000000..1ff2187 --- /dev/null +++ b/devices/t23_lite_lsc-3215672/general/overlay/usr/share/openipc/muxes.sh @@ -0,0 +1,4 @@ +#!/bin/sh + +### set leds to off ### +gpio set 51 diff --git a/devices/t23_lite_lsc-3215672/general/scripts/excludes/t23_lite.list b/devices/t23_lite_lsc-3215672/general/scripts/excludes/t23_lite.list new file mode 100644 index 0000000..7607787 --- /dev/null +++ b/devices/t23_lite_lsc-3215672/general/scripts/excludes/t23_lite.list @@ -0,0 +1,32 @@ +/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/i2c/algos/i2c-algo-bit.ko +/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/i2c/busses/i2c-gpio.ko +/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/net/usb/cdc_ether.ko +/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/net/usb/rndis_host.ko +/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/net/usb/usbnet.ko +/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/usb/serial/option.ko +/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/usb/serial/usb_wwan.ko +/lib/modules/3.10.14__isvp_swan_1.0__/kernel/drivers/usb/serial/usbserial.ko +/lib/modules/3.10.14__isvp_swan_1.0__/kernel/fs/f2fs/f2fs.ko +# +#/etc/sensor/gc2053-t23.bin +#/etc/sensor/gc2053.yaml +#/etc/sensor/imx327-t23.bin +#/etc/sensor/imx327.yaml +#/etc/sensor/jxf23-t23.bin +#/etc/sensor/jxf23.yaml +#/etc/sensor/jxf37pa-t23.bin +#/etc/sensor/jxf37pa.yaml +#/etc/sensor/jxh63p-t23.bin +#/etc/sensor/jxh63p.yaml +#/etc/sensor/sc1346-t23.bin +#/etc/sensor/sc1346.yaml +#/etc/sensor/sc1a4t-t23.bin +#/etc/sensor/sc1a4t.yaml +#/etc/sensor/sc200ai-t23.bin +#/etc/sensor/sc200ai.yaml +#/etc/sensor/sc2310-t23.bin +#/etc/sensor/sc2310.yaml +#/etc/sensor/sc2331-t23.bin +#/etc/sensor/sc2331.yaml +#/etc/sensor/sc301IoT-t23.bin +#/etc/sensor/sc301IoT.yaml