diff --git a/README.md b/README.md index 6983732..b59746a 100644 --- a/README.md +++ b/README.md @@ -44,6 +44,7 @@ Wansview Q5 2K T31L SC2336 ATBM6031_SDIO NOR_8M done Xiaomi MJSXJ02HL HI3518EV300 JXF22 RTL8189FS_SDIO NOR_16M preparation Xiaomi MJSXJ03HL T31N JXQ03P RTL8189FS_SDIO NOR_16M done Xiaomi MJSXJ05HL T31L GC2053 ATBM6031_SDIO NOR_16M preparation +CMCC HDC-51 A6-V11 T31L SC2332 RTL8188FU_USB NOR_16M done ``` diff --git a/devices/t31_lite_chinamobile-hdc-51-a6-v11/br-ext-chip-ingenic/configs/t31_lite_t31_lite_chinamobile-hdc-51-a6-v11_defconfig b/devices/t31_lite_chinamobile-hdc-51-a6-v11/br-ext-chip-ingenic/configs/t31_lite_t31_lite_chinamobile-hdc-51-a6-v11_defconfig new file mode 100644 index 0000000..fcbb9f6 --- /dev/null +++ b/devices/t31_lite_chinamobile-hdc-51-a6-v11/br-ext-chip-ingenic/configs/t31_lite_t31_lite_chinamobile-hdc-51-a6-v11_defconfig @@ -0,0 +1,134 @@ +# Architecture +BR2_mipsel=y +BR2_mips_xburst=y +# BR2_MIPS_SOFT_FLOAT is not set +BR2_MIPS_FP32_MODE_32=y +# BR2_MIPS_FP32_MODE_XX is not set +BR2_MIPS_NAN_LEGACY=y +BR2_MIPS_OABI32=y +BR2_KERNEL_HEADERS_VERSION=y +BR2_DEFAULT_KERNEL_VERSION="3.10.14" +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_10=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_EXTRA_GCC_CONFIG_OPTIONS="--with-float=hard" +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/t31/kernel/t31.generic.config" +BR2_LINUX_KERNEL_UIMAGE=y +BR2_LINUX_KERNEL_LZMA=y + +# OpenIPC +BR2_OPENIPC_SOC_VENDOR="ingenic" +BR2_OPENIPC_SOC_MODEL="t31" +BR2_OPENIPC_SOC_FAMILY="t31" +BR2_OPENIPC_FLAVOR="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-t31" +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_INGENIC_OSDRV_T31=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_FONTS=y +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=y +# BR2_PACKAGE_MINI_SNMPD is not set +BR2_PACKAGE_MOTORS=y +BR2_PACKAGE_OPUS_OPENIPC=y +BR2_PACKAGE_OPUS_OPENIPC_FIXED_POINT=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_QUIRC_OPENIPC=y +# BR2_PACKAGE_AUTONIGHT is not set +BR2_PACKAGE_INGENIC_LIBIMP_CONTROL=y + +# WiFi +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_LINUX_FIRMWARE_OPENIPC=y +BR2_PACKAGE_RTL8188FU_OPENIPC=y + +# WIREGUARD +BR2_PACKAGE_WIREGUARD_LINUX_COMPAT=y +BR2_PACKAGE_WIREGUARD_TOOLS=y + +# EXPERIMENTAL +# BR2_PACKAGE_ONVIF_SIMPLE_SERVER is not set + +# DEBUG +BR2_PACKAGE_INGENIC_PWM=y +BR2_PACKAGE_LOGCAT_OPENIPC=y +BR2_PACKAGE_INGENIC_DIAG_TOOLS=y +# 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_ZLIB=y + +# External +BR2_TOOLCHAIN_EXTERNAL=y +BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y +BR2_TOOLCHAIN_EXTERNAL_CUSTOM_MUSL=y +BR2_TOOLCHAIN_EXTERNAL_CUSTOM_PREFIX="mipsel-openipc-linux-musl" +BR2_TOOLCHAIN_EXTERNAL_CXX=y +BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y +BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_10=y +BR2_TOOLCHAIN_EXTERNAL_URL="https://github.com/openipc/firmware/releases/download/$(OPENIPC_TOOLCHAIN).tgz" diff --git a/devices/t31_lite_chinamobile-hdc-51-a6-v11/general/overlay/etc/builder.msg b/devices/t31_lite_chinamobile-hdc-51-a6-v11/general/overlay/etc/builder.msg new file mode 100644 index 0000000..ecd21de --- /dev/null +++ b/devices/t31_lite_chinamobile-hdc-51-a6-v11/general/overlay/etc/builder.msg @@ -0,0 +1,3 @@ +# +Experimental system for building OpenIPC firmware for known devices +# diff --git a/devices/t31_lite_chinamobile-hdc-51-a6-v11/general/overlay/etc/sensor/sc2332.yaml b/devices/t31_lite_chinamobile-hdc-51-a6-v11/general/overlay/etc/sensor/sc2332.yaml new file mode 100644 index 0000000..4360b25 --- /dev/null +++ b/devices/t31_lite_chinamobile-hdc-51-a6-v11/general/overlay/etc/sensor/sc2332.yaml @@ -0,0 +1,6 @@ +sensor: + name: sc2332 + address: 0x30 + width: 1920 + height: 1080 + bus: i2c diff --git a/devices/t31_lite_chinamobile-hdc-51-a6-v11/general/overlay/etc/wireless/usb b/devices/t31_lite_chinamobile-hdc-51-a6-v11/general/overlay/etc/wireless/usb new file mode 100755 index 0000000..e0838bf --- /dev/null +++ b/devices/t31_lite_chinamobile-hdc-51-a6-v11/general/overlay/etc/wireless/usb @@ -0,0 +1,14 @@ +#!/bin/sh + +set_gpio() { + [ "$2" -eq 1 ] && gpio set $1 || gpio clear $1 + sleep 1 +} + +# Generic RTL8188FU +if [ "$1" = "rtl8188fu-generic" ]; then + modprobe 8188fu + exit 0 +fi + +exit 1 diff --git a/devices/t31_lite_chinamobile-hdc-51-a6-v11/general/overlay/usr/share/openipc/customizer.sh b/devices/t31_lite_chinamobile-hdc-51-a6-v11/general/overlay/usr/share/openipc/customizer.sh new file mode 100644 index 0000000..8ad774f --- /dev/null +++ b/devices/t31_lite_chinamobile-hdc-51-a6-v11/general/overlay/usr/share/openipc/customizer.sh @@ -0,0 +1,33 @@ +#!/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-v11-nor.tgz' +# +# +# Set custom majestic settings +# +cli -s .audio.speakerPin 63 +cli -s .nightMode.enabled true +cli -s .nightMode.irSensorPin 7 +cli -s .nightMode.irCutPin1 58 +cli -s .nightMode.irCutPin2 57 +cli -s .video0.codec h264 +# +# +# 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 diff --git a/devices/t31_lite_chinamobile-hdc-51-a6-v11/general/package/ingenic-opensdk/0001-add-sc2332-driver.patch b/devices/t31_lite_chinamobile-hdc-51-a6-v11/general/package/ingenic-opensdk/0001-add-sc2332-driver.patch new file mode 100644 index 0000000..ca4500e --- /dev/null +++ b/devices/t31_lite_chinamobile-hdc-51-a6-v11/general/package/ingenic-opensdk/0001-add-sc2332-driver.patch @@ -0,0 +1,38 @@ +diff --git a/kernel/sensors/t31/Kbuild b/kernel/sensors/t31/Kbuild +index 5f96204..30b34f5 100644 +--- a/kernel/sensors/t31/Kbuild ++++ b/kernel/sensors/t31/Kbuild +@@ -1,19 +1 @@ +-include $(src)/sensors/$(SOC)/gc2053/Kbuild +-include $(src)/sensors/$(SOC)/gc2083/Kbuild +-include $(src)/sensors/$(SOC)/gc4023/Kbuild +-include $(src)/sensors/$(SOC)/gc4653/Kbuild +-include $(src)/sensors/$(SOC)/imx307/Kbuild +-include $(src)/sensors/$(SOC)/imx327/Kbuild +-include $(src)/sensors/$(SOC)/jxf37/Kbuild +-include $(src)/sensors/$(SOC)/jxh62/Kbuild +-include $(src)/sensors/$(SOC)/jxh63/Kbuild +-include $(src)/sensors/$(SOC)/jxq03/Kbuild +-include $(src)/sensors/$(SOC)/jxq03p/Kbuild +-include $(src)/sensors/$(SOC)/os03b10/Kbuild +-include $(src)/sensors/$(SOC)/sc200ai/Kbuild +-include $(src)/sensors/$(SOC)/sc2232h/Kbuild +-include $(src)/sensors/$(SOC)/sc2335/Kbuild +-include $(src)/sensors/$(SOC)/sc2336/Kbuild +-include $(src)/sensors/$(SOC)/sc3338/Kbuild +-include $(src)/sensors/$(SOC)/sc5235/Kbuild +-include $(src)/sensors/$(SOC)/sc4236/Kbuild ++include $(src)/sensors/$(SOC)/sc2332/Kbuild +diff --git a/kernel/sensors/t31/sc2332/Kbuild b/kernel/sensors/t31/sc2332/Kbuild +index 12cef4b..9e9672c 100644 +--- a/kernel/sensors/t31/sc2332/Kbuild ++++ b/kernel/sensors/t31/sc2332/Kbuild +@@ -1,7 +1,7 @@ + MODULE_NAME := sensor_sc2332_t31 + OUT := $(MODULE_NAME) + +-DIR=sensors/$(SOC)/sc2332 ++DIR=sensors/$(SOC) + + SRCS := $(DIR)/sc2332/sc2332.c + diff --git a/devices/t31_lite_chinamobile-hdc-51-a6-v11/general/package/ingenic-osdrv-t31/ingenic-osdrv-t31.mk b/devices/t31_lite_chinamobile-hdc-51-a6-v11/general/package/ingenic-osdrv-t31/ingenic-osdrv-t31.mk new file mode 100644 index 0000000..772488a --- /dev/null +++ b/devices/t31_lite_chinamobile-hdc-51-a6-v11/general/package/ingenic-osdrv-t31/ingenic-osdrv-t31.mk @@ -0,0 +1,30 @@ +################################################################################ +# +# ingenic-osdrv-t31 +# +################################################################################ + +INGENIC_OSDRV_T31_VERSION = +INGENIC_OSDRV_T31_SITE = +INGENIC_OSDRV_T31_LICENSE = MIT +INGENIC_OSDRV_T31_LICENSE_FILES = LICENSE + +define INGENIC_OSDRV_T31_INSTALL_TARGET_CMDS + $(INSTALL) -m 755 -d $(TARGET_DIR)/etc/sensor + $(INSTALL) -m 644 -t $(TARGET_DIR)/etc/sensor $(INGENIC_OSDRV_T31_PKGDIR)/files/sensor/*.yaml + # $(INSTALL) -m 644 -t $(TARGET_DIR)/etc/sensor $(INGENIC_OSDRV_T31_PKGDIR)/files/sensor/params/*.bin + + $(INSTALL) -m 644 -t $(TARGET_DIR)/etc/sensor $(INGENIC_OSDRV_T31_PKGDIR)/files/sensor/params/sc2332-t31.bin + + # Modules for T31 are built from the openingenic repository sources, so we don't need to copy them. + # $(INSTALL) -m 755 -d $(TARGET_DIR)/lib/modules/3.10.14__isvp_swan_1.0__/ingenic + # $(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/3.10.14__isvp_swan_1.0__/ingenic $(INGENIC_OSDRV_T31_PKGDIR)/files/kmod/*.ko + + $(INSTALL) -m 755 -d $(TARGET_DIR)/usr/bin + $(INSTALL) -m 755 -t $(TARGET_DIR)/usr/bin $(INGENIC_OSDRV_T31_PKGDIR)/files/script/load* + + $(INSTALL) -m 755 -d $(TARGET_DIR)/usr/lib + $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(INGENIC_OSDRV_T31_PKGDIR)/files/lib/*.so +endef + +$(eval $(generic-package)) diff --git a/devices/t31_lite_chinamobile-hdc-51-a6-v11/general/scripts/excludes/t31_lite.list b/devices/t31_lite_chinamobile-hdc-51-a6-v11/general/scripts/excludes/t31_lite.list new file mode 100644 index 0000000..1884e1c --- /dev/null +++ b/devices/t31_lite_chinamobile-hdc-51-a6-v11/general/scripts/excludes/t31_lite.list @@ -0,0 +1,68 @@ +etc/sensor/gc2053-t31.bin +etc/sensor/gc2083-t31.bin +etc/sensor/gc4023-t31.bin +etc/sensor/gc4653-t31.bin +etc/sensor/imx307-t31.bin +etc/sensor/imx327-t31.bin +etc/sensor/jxf37-t31.bin +etc/sensor/jxh62-t31.bin +etc/sensor/jxq03-t31.bin +etc/sensor/jxq03p-t31.bin +etc/sensor/os03b10-t31.bin +etc/sensor/sc200ai-t31.bin +etc/sensor/sc2232h-t31.bin +etc/sensor/sc2335-t31.bin +etc/sensor/sc3335-t31.bin +etc/sensor/sc3338-t31.bin +etc/sensor/sc4236-t31.bin +etc/sensor/sc5235-t31.bin +# +etc/sensor/gc2053.yaml +etc/sensor/gc2083.yaml +etc/sensor/gc4023.yaml +etc/sensor/gc4653.yaml +etc/sensor/imx307.yaml +etc/sensor/imx327.yaml +etc/sensor/imx335.yaml +etc/sensor/jxf22.yaml +etc/sensor/jxf23.yaml +etc/sensor/jxf37.yaml +etc/sensor/jxh42.yaml +etc/sensor/jxh62.yaml +etc/sensor/jxh63.yaml +etc/sensor/jxk04.yaml +etc/sensor/jxq03.yaml +etc/sensor/jxq03p.yaml +etc/sensor/os03b10.yaml +etc/sensor/ov2735.yaml +etc/sensor/ov2735b.yaml +etc/sensor/ov4689.yaml +etc/sensor/ps5260.yaml +etc/sensor/sc200ai.yaml +etc/sensor/sc2232.yaml +etc/sensor/sc2232h.yaml +etc/sensor/sc2335.yaml +etc/sensor/sc3335.yaml +etc/sensor/sc3338.yaml +etc/sensor/sc4236.yaml +etc/sensor/sc5235.yaml +etc/sensor/sc2236.yaml +# +lib/modules/3.10.14__isvp_swan_1.0__/ingenic/sensor_gc2053_t31.ko +lib/modules/3.10.14__isvp_swan_1.0__/ingenic/sensor_gc2083_t31.ko +lib/modules/3.10.14__isvp_swan_1.0__/ingenic/sensor_gc4023_t31.ko +lib/modules/3.10.14__isvp_swan_1.0__/ingenic/sensor_gc4653_t31.ko +lib/modules/3.10.14__isvp_swan_1.0__/ingenic/sensor_imx307_t31.ko +lib/modules/3.10.14__isvp_swan_1.0__/ingenic/sensor_imx327_t31.ko +lib/modules/3.10.14__isvp_swan_1.0__/ingenic/sensor_jxf37_t31.ko +lib/modules/3.10.14__isvp_swan_1.0__/ingenic/sensor_jxh62_t31.ko +lib/modules/3.10.14__isvp_swan_1.0__/ingenic/sensor_jxh63_t31.ko +lib/modules/3.10.14__isvp_swan_1.0__/ingenic/sensor_jxq03_t31.ko +lib/modules/3.10.14__isvp_swan_1.0__/ingenic/sensor_jxq03p_t31.ko +lib/modules/3.10.14__isvp_swan_1.0__/ingenic/sensor_os03b10_t31.ko +lib/modules/3.10.14__isvp_swan_1.0__/ingenic/sensor_sc200ai_t31.ko +lib/modules/3.10.14__isvp_swan_1.0__/ingenic/sensor_sc2232h_t31.ko +lib/modules/3.10.14__isvp_swan_1.0__/ingenic/sensor_sc2335_t31.ko +lib/modules/3.10.14__isvp_swan_1.0__/ingenic/sensor_sc3338_t31.ko +lib/modules/3.10.14__isvp_swan_1.0__/ingenic/sensor_sc4236_t31.ko +lib/modules/3.10.14__isvp_swan_1.0__/ingenic/sensor_sc5235_t31.ko