diff --git a/README.md b/README.md index 5be467957..cf7408d8e 100644 --- a/README.md +++ b/README.md @@ -117,6 +117,7 @@ ZTE K543 SSC337DE SC401AI MT7601U_USB NOR_16M done ZTE K545 T31X SC4336 ATBM6012B_USB NOR_16M done 4G Camera XG521 V1.2 GK7202V300 GC1054 EC800E-CN_USB NOR_8M done XM IPG-G3-WR GK7202V300 JXH63 ATBM60321S_USB NOR_8M done +XM IPC-RM1-BLK7202V3 GK7202V300 SC223A SV6115C_USB NOR_8M video-yes, wifi-yes (ssv6x5x#1), pan/tilt+ir+audio untested ``` diff --git a/devices/gk7202v300_lite_xm-rm1/br-ext-chip-goke/configs/gk7202v300_lite_xm-rm1_defconfig b/devices/gk7202v300_lite_xm-rm1/br-ext-chip-goke/configs/gk7202v300_lite_xm-rm1_defconfig new file mode 100644 index 000000000..a77563d81 --- /dev/null +++ b/devices/gk7202v300_lite_xm-rm1/br-ext-chip-goke/configs/gk7202v300_lite_xm-rm1_defconfig @@ -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)/gk7202v300.generic.config" +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_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="goke" +BR2_OPENIPC_SOC_MODEL="gk7202v300" +BR2_OPENIPC_SOC_FAMILY="gk7205v200" +BR2_OPENIPC_VARIANT="lite" +BR2_OPENIPC_FLASH_SIZE="8" + +# Packages +BR2_PACKAGE_DROPBEAR_OPENIPC=y +BR2_PACKAGE_GOKE_OSDRV_GK7205V200=y +BR2_PACKAGE_HISILICON_OPENSDK=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_SSV635X_OPENIPC=y +BR2_PACKAGE_YAML_CLI=y +BR2_PACKAGE_GPIO_MOTORS=y diff --git a/devices/gk7202v300_lite_xm-rm1/general/overlay/etc/init.d/S35pinworks b/devices/gk7202v300_lite_xm-rm1/general/overlay/etc/init.d/S35pinworks new file mode 100755 index 000000000..6c681999a --- /dev/null +++ b/devices/gk7202v300_lite_xm-rm1/general/overlay/etc/init.d/S35pinworks @@ -0,0 +1,20 @@ +#!/bin/sh + +case "$1" in + start) + + # Bring power to SD CARD (GPIO70) + gpio clear 70 + gpio unexport 70 + + # same thru devmem + #devmem 0x120B8400 32 0x40 # set GPIO8_6 to output + #devmem 0x120B8100 32 0x00 # set GPIO8_6 to LO + + # bumping SDHCI driver + echo 10010000.sdhci > /sys/bus/platform/drivers/sdhci-goke/unbind + echo 10010000.sdhci > /sys/bus/platform/drivers/sdhci-goke/bind + +esac + +exit 0 diff --git a/devices/gk7202v300_lite_xm-rm1/general/overlay/etc/init.d/S80pinworks b/devices/gk7202v300_lite_xm-rm1/general/overlay/etc/init.d/S80pinworks new file mode 100755 index 000000000..2f191312d --- /dev/null +++ b/devices/gk7202v300_lite_xm-rm1/general/overlay/etc/init.d/S80pinworks @@ -0,0 +1,17 @@ +#!/bin/sh + +case "$1" in + start) + + # Unmuxing GPIO12, GPIO14, GPIO15 (motor H connector. pins 5, 4, 3) + devmem 0x120c0010 32 0x1e02 + devmem 0x120c0018 32 0x1d02 + devmem 0x120c001c 32 0x1402 + + # Unpower motors winding (GPIO13 is HI after kernel modules load) + gpio clear 13 + gpio unexport 13 + +esac + +exit 0 diff --git a/devices/gk7202v300_lite_xm-rm1/general/overlay/etc/wireless/usb b/devices/gk7202v300_lite_xm-rm1/general/overlay/etc/wireless/usb new file mode 100755 index 000000000..c70159fd8 --- /dev/null +++ b/devices/gk7202v300_lite_xm-rm1/general/overlay/etc/wireless/usb @@ -0,0 +1,13 @@ +#!/bin/sh + +set_gpio() { + [ "$2" -eq 1 ] && gpio set $1 || gpio clear $1 + sleep 1 +} + +if [ "$1" = "ssv6x5x-generic" ]; then + modprobe ssv6x5x + exit 0 +fi + +exit 1 diff --git a/devices/gk7202v300_lite_xm-rm1/general/overlay/usr/share/openipc/customizer.sh b/devices/gk7202v300_lite_xm-rm1/general/overlay/usr/share/openipc/customizer.sh new file mode 100644 index 000000000..b109ef3c8 --- /dev/null +++ b/devices/gk7202v300_lite_xm-rm1/general/overlay/usr/share/openipc/customizer.sh @@ -0,0 +1,37 @@ +#!/bin/sh +# +# Perform basic settings on a known IP camera +# +# +# XM board IPC-RM1-BLK7202V3-M43A-WIFI (GK7202V300 + SC223A, Wi-Fi SV6115C on USB), +# pan/tilt dome. GPIOs taken from the stock firmware (loadpublic gpio_pin=, LIBXMVIDEO.json). +# +# Set custom upgrade url +# +fw_setenv upgrade 'https://github.com/OpenIPC/builder/releases/download/latest/gk7202v300_lite_xm-rm1-nor.tgz' +# +# +# Set wlan device and credentials if need +# +fw_setenv wlandev ssv6x5x-generic +#fw_setenv wlanssid Router +#fw_setenv wlanpass 12345678 +# +# Pan/tilt: two unipolar steppers driven straight from GPIO (gpio-motors) +# +fw_setenv ptz_control gpio +fw_setenv ptz_gpio '13 15 14 12 55 54 53 52' +fw_setenv ptz_caps 'pan tilt' +# +# Set majestic settings +# +cli -s .nightMode.irCutPin1 56 +cli -s .nightMode.irCutPin2 58 +cli -s .nightMode.backlightPin 16 +cli -s .nightMode.lightMonitor true +cli -s .nightMode.lightSensorPin 57 +cli -s .audio.enabled true +cli -s .audio.outputEnabled true +cli -s .audio.speakerPin 51 + +exit 0 diff --git a/devices/gk7202v300_lite_xm-rm1/general/scripts/excludes/gk7202v300_lite.list b/devices/gk7202v300_lite_xm-rm1/general/scripts/excludes/gk7202v300_lite.list new file mode 100644 index 000000000..6310cbf89 --- /dev/null +++ b/devices/gk7202v300_lite_xm-rm1/general/scripts/excludes/gk7202v300_lite.list @@ -0,0 +1,73 @@ +/etc/sensors/4l_sc223a_i2c_1080p.ini +/etc/sensors/bt656_720p.ini +/etc/sensors/gc1054_i2c_720p.ini +/etc/sensors/gc2053_i2c_1080p.ini +/etc/sensors/gc4023_i2c_4M.ini +/etc/sensors/gc4653_i2c_4M.ini +/etc/sensors/gc5603_i2c_5M.ini +/etc/sensors/imx307_i2c_2l_1080p.ini +/etc/sensors/imx327_i2c_1080p.ini +/etc/sensors/4M_imx335_i2c.ini +/etc/sensors/imx335_i2c_4M.ini +/etc/sensors/imx335_i2c_5M.ini +/etc/sensors/5M_imx335.ini +/etc/sensors/jxf23_i2c_1080p.ini +/etc/sensors/jxf23_i2c_dc_1080p.ini +/etc/sensors/jxh63_i2c_720p.ini +/etc/sensors/mis2008_i2c_1080p.ini +/etc/sensors/os02g10_i2c_1080p.ini +/etc/sensors/sc200ai_i2c_1080p.ini +/etc/sensors/sc2232h_i2c_1080p.ini +/etc/sensors/sc2239_i2c_1080p.ini +/etc/sensors/sc2335_i2c_1080p.ini +/etc/sensors/smtsec_imx307_i2c_4l_1080p.ini +/etc/sensors/sp2308_i2c_1080p.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/iq/imx335.ini +/etc/sensors/iq/ov2735.ini +/etc/sensors/iq/sc2232.ini +/etc/sensors/iq/sc2239.ini +# +/usr/lib/sensors/libsns_ar0237.so +/usr/lib/sensors/libsns_bt656.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_sc200ai.so +/usr/lib/sensors/libsns_sc2231.so +/usr/lib/sensors/libsns_sc2232h.so +/usr/lib/sensors/libsns_sc2235.so +/usr/lib/sensors/libsns_sc223a_4l.so +/usr/lib/sensors/libsns_sc2239.so +/usr/lib/sensors/libsns_sc2335.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