t31: add XVI ISI-2010C device profile (T31N, GC2053, Ethernet only) (#166)

Ingenic T31N with a GalaxyCore GC2053, 64 MiB RAM, 8 MiB SPI NOR and wired
Ethernet. Tested on the physical camera: builds, flashes and boots, with
Ethernet, GC2053 video, H.264/H.265 streaming, automatic day/night switching,
IR-cut control and audio capture/playback all working.

The board has no radio, so the defconfig drops wireless-tools, wpa_supplicant
and the Realtek driver that the nearest sibling carries, along with the QR
onboarding helper that only exists to join a network.

The kernel fragment turns off MMC, the wireless stack, USB and FAT rather than
forking the generic T31 config. Because FAT goes with it, the profile also
overrides /etc/modules: the stock list asks for vfat and exfat, which would no
longer exist.

The exclude list prunes motor.ko and the two sample_pwm modules. Those are
built for every T31 board by ingenic-opensdk regardless of the pinned sensor,
since they sit outside the sensor tree in the openingenic Kbuild, and no board
in the tree had pruned them until now. There is no Kconfig symbol to disable
them, so the exclude list is the only lever.
This commit is contained in:
ArthurKoba
2026-09-21 12:27:03 +03:00
committed by GitHub
parent 9ea182a026
commit 3924343c43
6 changed files with 91 additions and 0 deletions
+1
View File
@@ -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
@@ -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
@@ -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
@@ -0,0 +1 @@
# XVI ISI-2010C has no removable storage.
@@ -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
@@ -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