hi3516ev200: add GARUS GSL-5030X-30AP-NM device profile (SC2315E, 8M NOR, Ethernet only)
Device profile for GARUS GSL-5030X-30AP-NM on PCB BLK16EV2-4339P-38X38: Hi3516EV200, 8 MiB SPI NOR, wired Ethernet, fixed lens, no radio. Sensor path is SC2315E-compatible MIPI at 1920x1080. The stock firmware's 2304x1296 "3M" mode is an output scaling path; no native 3MP sensor mode was confirmed, so the profile keeps the proven 1080p mode. The physical die is unidentified — XM documentation points at SC4239H, which has no OpenIPC driver path — so the README row carries SC2315E? deliberately. Day/night uses GPIO15 as the hardware status input with a bistable IR-cut filter on GPIO8/GPIO9. GPIO15 needs its EV200 pinmux reasserted on every boot, so that read-modify-write lives in muxes.sh, which S30customizer runs each boot, rather than in the once-only customizer.sh. transitionDelayMs is 150, measured on this camera: an immediate transition showed a purple cast while the filter was still moving. The exclude list prunes 33 of the 34 sensor drivers the Hi3516EV200 packages install, leaving libsns_sc2315e.so, and keeps iq/imx307.ini so the default.ini symlink still resolves. Codec and fps are left unset because h264 at 20 fps are already the shipped majestic defaults for this SoC and variant. Built, flashed and booted on hardware: 1080p video and RTSP, H.264 and H.265, Ethernet, microphone capture and speaker output, and automatic day/night switching with IR-cut operation.
This commit is contained in:
@@ -30,6 +30,7 @@ Cootli CAMV0103 GK7202V300 SC223A SSV6355_USB NOR_8M in pr
|
|||||||
CP Plus CP-UNC-TA21L2C GK7205V200 SC223A - NOR_16M video-ok, ir-cut-no, audio-no
|
CP Plus CP-UNC-TA21L2C GK7205V200 SC223A - NOR_16M video-ok, ir-cut-no, audio-no
|
||||||
Emax Wyvern Link SSC338Q IMX415 NOR_16M done
|
Emax Wyvern Link SSC338Q IMX415 NOR_16M done
|
||||||
Foscam X5 SSC337DE GC4653 RTL8188FU_USB NOR_16M done
|
Foscam X5 SSC337DE GC4653 RTL8188FU_USB NOR_16M done
|
||||||
|
GARUS GSL-5030X-30AP-NM HI3516EV200 SC2315E? - NOR_8M done
|
||||||
G.Craftsman GCA50 T31ZX GC4653 - NOR_16M done
|
G.Craftsman GCA50 T31ZX GC4653 - NOR_16M done
|
||||||
EC37-T11 T20L SC2232 RTL8188FU_USB MOR_16M in progress
|
EC37-T11 T20L SC2232 RTL8188FU_USB MOR_16M in progress
|
||||||
H3C TC2101 SSC337 JXQ03 RTL8188FU_USB NOR_16M done
|
H3C TC2101 SSC337 JXQ03 RTL8188FU_USB NOR_16M done
|
||||||
|
|||||||
+28
@@ -0,0 +1,28 @@
|
|||||||
|
# GARUS: wired, fixed-lens, NOR-only 1080p camera; no USB/SD peripherals.
|
||||||
|
# Merge into hi3516ev200.generic.config, never replace the common config.
|
||||||
|
# Keep the NOR/FMC controller, MIPI/I2C, GPIO, UART, MMZ/CMA and recovery stack.
|
||||||
|
|
||||||
|
# No wireless adapter, USB devices/gadgets, modem or SD card in this target.
|
||||||
|
# CONFIG_WIRELESS is not set
|
||||||
|
# CONFIG_WLAN is not set
|
||||||
|
# CONFIG_CFG80211 is not set
|
||||||
|
# CONFIG_MAC80211 is not set
|
||||||
|
# CONFIG_MT7601U is not set
|
||||||
|
# CONFIG_USB_SUPPORT is not set
|
||||||
|
# CONFIG_USB is not set
|
||||||
|
# CONFIG_USB_GADGET is not set
|
||||||
|
# CONFIG_PHY_HISI_XVP_USB2 is not set
|
||||||
|
# CONFIG_MMC is not set
|
||||||
|
# CONFIG_VFAT_FS is not set
|
||||||
|
# CONFIG_FAT_FS is not set
|
||||||
|
|
||||||
|
# This image boots SquashFS on SPI NOR with a JFFS2 writable overlay.
|
||||||
|
# CONFIG_MTD_NAND is not set
|
||||||
|
# CONFIG_MTD_SPI_NAND_HISI_BVT is not set
|
||||||
|
# CONFIG_MTD_SPI_NAND_HIFMC100 is not set
|
||||||
|
# CONFIG_MTD_UBI is not set
|
||||||
|
# CONFIG_UBIFS_FS is not set
|
||||||
|
# CONFIG_YAFFS_FS is not set
|
||||||
|
|
||||||
|
# No bundled VPN client on this 8 MiB profile.
|
||||||
|
# CONFIG_TUN is not set
|
||||||
+66
@@ -0,0 +1,66 @@
|
|||||||
|
# Architecture
|
||||||
|
BR2_arm=y
|
||||||
|
BR2_cortex_a7=y
|
||||||
|
BR2_ARM_EABI=y
|
||||||
|
BR2_ARM_FPU_NEON_VFPV4=y
|
||||||
|
BR2_ARM_INSTRUCTIONS_THUMB2=y
|
||||||
|
|
||||||
|
# Toolchain
|
||||||
|
BR2_TOOLCHAIN_EXTERNAL=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="arm-openipc-linux-musleabi"
|
||||||
|
BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_9=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)/hi3516ev200.generic.config"
|
||||||
|
BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(EXTERNAL_VENDOR)/board/$(OPENIPC_SOC_FAMILY)/garus-gsl-5030x-30ap-nm.fragment"
|
||||||
|
BR2_LINUX_KERNEL_UIMAGE=y
|
||||||
|
BR2_LINUX_KERNEL_XZ=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 is not set
|
||||||
|
# BR2_PACKAGE_WIREGUARD_TOOLS is not set
|
||||||
|
BR2_TARGET_ROOTFS_CPIO=y
|
||||||
|
BR2_TARGET_ROOTFS_SQUASHFS=y
|
||||||
|
BR2_TARGET_ROOTFS_SQUASHFS4_XZ=y
|
||||||
|
|
||||||
|
# OpenIPC
|
||||||
|
BR2_OPENIPC_SOC_VENDOR="hisilicon"
|
||||||
|
BR2_OPENIPC_SOC_MODEL="hi3516ev200"
|
||||||
|
BR2_OPENIPC_SOC_FAMILY="hi3516ev200"
|
||||||
|
BR2_OPENIPC_VARIANT="lite"
|
||||||
|
BR2_OPENIPC_FLASH_SIZE="8"
|
||||||
|
|
||||||
|
# Packages
|
||||||
|
BR2_PACKAGE_DROPBEAR_OPENIPC=y
|
||||||
|
BR2_PACKAGE_HISILICON_OPENSDK=y
|
||||||
|
BR2_PACKAGE_HISILICON_OSDRV_HI3516EV200=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_MAJESTIC_AF is not set
|
||||||
|
BR2_PACKAGE_MBEDTLS_OPENIPC=y
|
||||||
|
# BR2_PACKAGE_MOTORS is not set
|
||||||
|
BR2_PACKAGE_OPUS_OPENIPC=y
|
||||||
|
BR2_PACKAGE_OPUS_OPENIPC_FIXED_POINT=y
|
||||||
|
# BR2_PACKAGE_VTUND_OPENIPC is not set
|
||||||
|
BR2_PACKAGE_YAML_CLI=y
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
# GARUS GSL-5030X-30AP-NM has no removable storage.
|
||||||
|
# Override the common vfat/exfat module list; load nothing here.
|
||||||
+24
@@ -0,0 +1,24 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# OpenIPC profile for GARUS GSL-5030X-30AP-NM
|
||||||
|
# Board: BLK16EV2-4339P-38X38
|
||||||
|
# SoC: HiSilicon Hi3516EV200
|
||||||
|
# Sensor path: SC2315E, MIPI 1080p
|
||||||
|
#
|
||||||
|
# GPIO15 is the external day/night status input. GPIO8/9 drive the bistable
|
||||||
|
# IR-cut filter. The IR illuminator board is autonomous, so no backlight GPIO
|
||||||
|
# is configured here.
|
||||||
|
#
|
||||||
|
|
||||||
|
fw_setenv upgrade 'https://github.com/OpenIPC/builder/releases/download/latest/hi3516ev200_lite_garus-gsl-5030x-30ap-nm-nor.tgz'
|
||||||
|
fw_setenv sensor sc2315e
|
||||||
|
|
||||||
|
cli -s .isp.sensorConfig /etc/sensors/sc2315e_i2c_1080p.ini
|
||||||
|
cli -s .nightMode.lightMonitor true
|
||||||
|
cli -s .nightMode.lightSensorPin 15
|
||||||
|
cli -s .nightMode.irCutPin1 8
|
||||||
|
cli -s .nightMode.irCutPin2 9
|
||||||
|
# The filter needs a short mechanical settle time to avoid a purple cast.
|
||||||
|
cli -s .nightMode.transitionDelayMs 150
|
||||||
|
|
||||||
|
exit 0
|
||||||
+14
@@ -0,0 +1,14 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# GARUS GSL-5030X-30AP-NM: GPIO15 is GPIO1_7.
|
||||||
|
# Make it an input before switching the pad to GPIO mode. Preserve all
|
||||||
|
# unrelated direction and pad-control bits.
|
||||||
|
#
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
direction=$(devmem 0x120B1400 32)
|
||||||
|
devmem 0x120B1400 32 $((direction & 0xffffff7f))
|
||||||
|
|
||||||
|
pinmux=$(devmem 0x120C001C 32)
|
||||||
|
devmem 0x120C001C 32 $(((pinmux & 0xfffffff0) | 0x2))
|
||||||
+67
@@ -0,0 +1,67 @@
|
|||||||
|
# GARUS GSL-5030X-30AP-NM: keep the SC2315E 1080p path.
|
||||||
|
# Keep iq/default.ini and its imx307.ini target.
|
||||||
|
/etc/sensors/5M_imx335.ini
|
||||||
|
/etc/sensors/WDR/5M_imx335.ini
|
||||||
|
/etc/sensors/WDR/imx335_i2c_4M.ini
|
||||||
|
/etc/sensors/camhi_imx307_i2c_4l_1080p.ini
|
||||||
|
/etc/sensors/gc2053_i2c_1080p.ini
|
||||||
|
/etc/sensors/gc4653_i2c_4M.ini
|
||||||
|
/etc/sensors/high-fps/imx307_1280x720_60fps.ini
|
||||||
|
/etc/sensors/high-fps/imx307_1920x1080_60fps.ini
|
||||||
|
/etc/sensors/high-fps/imx307_368x304_200fps.ini
|
||||||
|
/etc/sensors/high-fps/imx307_640x480_130fps.ini
|
||||||
|
/etc/sensors/high-fps/imx335_1280x720_120fps.ini
|
||||||
|
/etc/sensors/high-fps/imx335_1296x972_64fps.ini
|
||||||
|
/etc/sensors/high-fps/imx335_1920x1080_55fps.ini
|
||||||
|
/etc/sensors/high-fps/imx335_2592x1944_45fps.ini
|
||||||
|
/etc/sensors/high-fps/imx335_800x480_240fps.ini
|
||||||
|
/etc/sensors/imx307_i2c_2l_1080p.ini
|
||||||
|
/etc/sensors/imx335_i2c_4M.ini
|
||||||
|
/etc/sensors/iq/f23.ini
|
||||||
|
/etc/sensors/iq/imx335.ini
|
||||||
|
/etc/sensors/jxf22_i2c_1080p.ini
|
||||||
|
/etc/sensors/jxf23_i2c_1080p.ini
|
||||||
|
/etc/sensors/jxf37_i2c_1080p.ini
|
||||||
|
/etc/sensors/sc2231_i2c_1080p.ini
|
||||||
|
/etc/sensors/sc2232h_i2c_1080p.ini
|
||||||
|
/etc/sensors/sc2239_i2c_1080p.ini
|
||||||
|
/etc/sensors/sc3235_i2c_3M.ini
|
||||||
|
/etc/sensors/sc3335_i2c_3M.ini
|
||||||
|
/etc/sensors/sc4236_i2c_3M.ini
|
||||||
|
/etc/sensors/sp2305_i2c_1080p.ini
|
||||||
|
/etc/sensors/sp2308_i2c_1080p.ini
|
||||||
|
/lib/modules/4.9.37/hisilicon/camhi-motor.ko
|
||||||
|
/usr/bin/ircut_demo
|
||||||
|
/usr/lib/sensors/libsns_ar0237.so
|
||||||
|
/usr/lib/sensors/libsns_bt656.so
|
||||||
|
/usr/lib/sensors/libsns_f22.so
|
||||||
|
/usr/lib/sensors/libsns_f23.so
|
||||||
|
/usr/lib/sensors/libsns_f37.so
|
||||||
|
/usr/lib/sensors/libsns_gc2053.so
|
||||||
|
/usr/lib/sensors/libsns_gc2053_forcar.so
|
||||||
|
/usr/lib/sensors/libsns_gc4023.so
|
||||||
|
/usr/lib/sensors/libsns_gc4653_2l.so
|
||||||
|
/usr/lib/sensors/libsns_gc5603.so
|
||||||
|
/usr/lib/sensors/libsns_imx290.so
|
||||||
|
/usr/lib/sensors/libsns_imx307.so
|
||||||
|
/usr/lib/sensors/libsns_imx307_2l.so
|
||||||
|
/usr/lib/sensors/libsns_imx327.so
|
||||||
|
/usr/lib/sensors/libsns_imx327_2l.so
|
||||||
|
/usr/lib/sensors/libsns_imx335.so
|
||||||
|
/usr/lib/sensors/libsns_imx335_2l.so
|
||||||
|
/usr/lib/sensors/libsns_mis2008.so
|
||||||
|
/usr/lib/sensors/libsns_os02g10.so
|
||||||
|
/usr/lib/sensors/libsns_os05a.so
|
||||||
|
/usr/lib/sensors/libsns_ov2718.so
|
||||||
|
/usr/lib/sensors/libsns_sc2231.so
|
||||||
|
/usr/lib/sensors/libsns_sc2232h.so
|
||||||
|
/usr/lib/sensors/libsns_sc2235.so
|
||||||
|
/usr/lib/sensors/libsns_sc2239.so
|
||||||
|
/usr/lib/sensors/libsns_sc223a.so
|
||||||
|
/usr/lib/sensors/libsns_sc3235.so
|
||||||
|
/usr/lib/sensors/libsns_sc3335.so
|
||||||
|
/usr/lib/sensors/libsns_sc3336.so
|
||||||
|
/usr/lib/sensors/libsns_sc4236.so
|
||||||
|
/usr/lib/sensors/libsns_sc500ai.so
|
||||||
|
/usr/lib/sensors/libsns_sp2305.so
|
||||||
|
/usr/lib/sensors/libsns_sp2308.so
|
||||||
Reference in New Issue
Block a user