Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Action required

2. The clone inventory omits this board 📘 Rule violation ⚙ Maintainability

The README adds the XM IPC-RM1 board to the device table but does not map it in the compatibility
and clones table to the existing Cootli board it was cloned from. Readers using the published
inventory cannot discover that this rebrand shares the supported Cootli implementation.
Agent Prompt
## Issue description
The new board is documented in the main device table, but its rebrand relationship to `gk7202v300_lite_cootli_camv0103` is absent from the README compatibility and clones table.

## Fix Focus Areas
- README.md[120-120]
- README.md[124-142]

## Recommended Fix
Add a compatibility-table row mapping the XM IPC-RM1-BLK7202V3-M43A-WIFI board to the existing Cootli CAMV0103 firmware/device entry, using the repository's established clone-table format.

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools

```


Expand Down
Original file line number Diff line number Diff line change
@@ -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
Original file line number Diff line number Diff line change
@@ -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
Original file line number Diff line number Diff line change
@@ -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
13 changes: 13 additions & 0 deletions devices/gk7202v300_lite_xm-rm1/general/overlay/etc/wireless/usb
Original file line number Diff line number Diff line change
@@ -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
Original file line number Diff line number Diff line change
@@ -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
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
/etc/sensors/4l_sc223a_i2c_1080p.ini

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Action required

1. Camera loses its sc223a driver 📘 Rule violation ≡ Correctness

The new exclude list removes both the SC223A four-lane sensor configuration and
libsns_sc223a_4l.so even though the device uses an SC223A sensor and the selected Goke driver
package installs that library. Any build using this list reaches the camera without the sensor files
needed for SC223A detection and streaming.
Agent Prompt
## Issue description
The device-specific exclude list removes the SC223A four-lane configuration and shared library required by this board's SC223A sensor.

## Fix Focus Areas
- devices/gk7202v300_lite_xm-rm1/general/scripts/excludes/gk7202v300_lite.list[1-1]
- devices/gk7202v300_lite_xm-rm1/general/scripts/excludes/gk7202v300_lite.list[35-35]

## Recommended Fix
Remove the `/etc/sensors/4l_sc223a_i2c_1080p.ini` and `/usr/lib/sensors/libsns_sc223a_4l.so` entries from the exclude list, then verify that the resulting image still fits within the 8 MB flash layout.

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools

/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
Loading