From 765afdf71902bdf94d0db1516c416ef40d63b85c Mon Sep 17 00:00:00 2001 From: ArthurKoba <61914203+ArthurKoba@users.noreply.github.com> Date: Mon, 21 Sep 2026 02:36:30 +0300 Subject: [PATCH] t31: add XVI ISI-2010C device profile Add the T31N/GC2053 profile with the board's daylight-sensor and bistable IR-cut GPIOs. Use H.264 by default while retaining the normal T31 encoder support, including hardware-tested H.265. Disable hardware absent from this board, remove unused motor/PWM modules, and keep the working T31 audio path. --- README.md | 1 + .../board/t31/xvi-isi-2010c.fragment | 7 +++ .../configs/t31_lite_xvi-isi-2010c_defconfig | 63 +++++++++++++++++++ .../general/overlay/etc/modules | 1 + .../overlay/usr/share/openipc/customizer.sh | 15 +++++ .../general/scripts/excludes/t31_lite.list | 4 ++ 6 files changed, 91 insertions(+) create mode 100644 devices/t31_lite_xvi-isi-2010c/br-ext-chip-ingenic/board/t31/xvi-isi-2010c.fragment create mode 100644 devices/t31_lite_xvi-isi-2010c/br-ext-chip-ingenic/configs/t31_lite_xvi-isi-2010c_defconfig create mode 100644 devices/t31_lite_xvi-isi-2010c/general/overlay/etc/modules create mode 100644 devices/t31_lite_xvi-isi-2010c/general/overlay/usr/share/openipc/customizer.sh create mode 100644 devices/t31_lite_xvi-isi-2010c/general/scripts/excludes/t31_lite.list diff --git a/README.md b/README.md index 588a4ea1b..192ac2385 100644 --- a/README.md +++ b/README.md @@ -102,6 +102,7 @@ Xiaomi MJSXJ02HL HI3518EV300 JXF22 RTL8189FS_SDIO NOR_16M prepa Xiaomi MJSXJ03HL T31N JXQ03 RTL8189FS_SDIO NOR_16M done Xiaomi MJSXJ03HL T31N JXQ03P RTL8189FS_SDIO NOR_16M done Xiaomi MJSXJ05HL T31L GC2053 ATBM6031_SDIO NOR_16M preparation +XVI ISI-2010C T31N GC2053 - NOR_8M done YuanCam DGK-423403 HI3518EV300 JXH62 RTL8188FU_USB NOR_8M research ZTE K540 T31X SC4336 ATBM6012B_USB NOR_16M done ZTE K543 SSC337DE SC401AI MT7601U_USB NOR_16M done diff --git a/devices/t31_lite_xvi-isi-2010c/br-ext-chip-ingenic/board/t31/xvi-isi-2010c.fragment b/devices/t31_lite_xvi-isi-2010c/br-ext-chip-ingenic/board/t31/xvi-isi-2010c.fragment new file mode 100644 index 000000000..31ab894bd --- /dev/null +++ b/devices/t31_lite_xvi-isi-2010c/br-ext-chip-ingenic/board/t31/xvi-isi-2010c.fragment @@ -0,0 +1,7 @@ +# XVI ISI-2010C has no SD/MMC, Wi-Fi, USB path or removable FAT storage. +# CONFIG_MMC is not set +# CONFIG_WLAN is not set +# CONFIG_WIRELESS is not set +# CONFIG_USB_SUPPORT is not set +# CONFIG_VFAT_FS is not set +# CONFIG_FAT_FS is not set diff --git a/devices/t31_lite_xvi-isi-2010c/br-ext-chip-ingenic/configs/t31_lite_xvi-isi-2010c_defconfig b/devices/t31_lite_xvi-isi-2010c/br-ext-chip-ingenic/configs/t31_lite_xvi-isi-2010c_defconfig new file mode 100644 index 000000000..221667aff --- /dev/null +++ b/devices/t31_lite_xvi-isi-2010c/br-ext-chip-ingenic/configs/t31_lite_xvi-isi-2010c_defconfig @@ -0,0 +1,63 @@ +# 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_CONFIG_FRAGMENT_FILES="$(EXTERNAL_VENDOR)/board/$(OPENIPC_SOC_FAMILY)/xvi-isi-2010c.fragment" +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_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="gc2053" +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_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_VTUND_OPENIPC=y +BR2_PACKAGE_YAML_CLI=y diff --git a/devices/t31_lite_xvi-isi-2010c/general/overlay/etc/modules b/devices/t31_lite_xvi-isi-2010c/general/overlay/etc/modules new file mode 100644 index 000000000..8c0dc0b7d --- /dev/null +++ b/devices/t31_lite_xvi-isi-2010c/general/overlay/etc/modules @@ -0,0 +1 @@ +# XVI ISI-2010C has no removable storage. diff --git a/devices/t31_lite_xvi-isi-2010c/general/overlay/usr/share/openipc/customizer.sh b/devices/t31_lite_xvi-isi-2010c/general/overlay/usr/share/openipc/customizer.sh new file mode 100644 index 000000000..787c85623 --- /dev/null +++ b/devices/t31_lite_xvi-isi-2010c/general/overlay/usr/share/openipc/customizer.sh @@ -0,0 +1,15 @@ +#!/bin/sh +# XVI ISI-2010C: T31N + GC2053 + +fw_setenv upgrade 'https://github.com/OpenIPC/builder/releases/download/latest/t31_lite_xvi-isi-2010c-nor.tgz' +fw_setenv sensor gc2053 + +# PA16 / GPIO16: daylight sensor +# PB26 / GPIO58, PB25 / GPIO57: bistable IR-cut +cli -s .nightMode.lightMonitor true +cli -s .nightMode.lightSensorPin 16 +cli -s .nightMode.irCutPin1 58 +cli -s .nightMode.irCutPin2 57 +cli -s .video0.codec h264 + +exit 0 diff --git a/devices/t31_lite_xvi-isi-2010c/general/scripts/excludes/t31_lite.list b/devices/t31_lite_xvi-isi-2010c/general/scripts/excludes/t31_lite.list new file mode 100644 index 000000000..747a2fa51 --- /dev/null +++ b/devices/t31_lite_xvi-isi-2010c/general/scripts/excludes/t31_lite.list @@ -0,0 +1,4 @@ +# No pan/tilt motor or PWM peripheral is populated on XVI ISI-2010C. +/lib/modules/3.10.14__isvp_swan_1.0__/ingenic/motor.ko +/lib/modules/3.10.14__isvp_swan_1.0__/ingenic/sample_pwm_core.ko +/lib/modules/3.10.14__isvp_swan_1.0__/ingenic/sample_pwm_hal.ko