From 1e914990f11b405b59348aa9f807eaae323bec89 Mon Sep 17 00:00:00 2001 From: john doe <47976944+johndi3@users.noreply.github.com> Date: Mon, 5 Feb 2024 03:12:38 +0800 Subject: [PATCH] add zte k540 (#9) --- .github/workflows/master.yml | 1 + README.md | 1 + .../configs/t31_lite_zte-k540_defconfig | 137 ++++++++++++++++++ .../general/overlay/etc/builder.msg | 3 + .../general/overlay/etc/wireless/usb | 12 ++ .../overlay/usr/share/openipc/customizer.sh | 33 +++++ .../ingenic-opensdk/0001-add-sc4336.patch | 9 ++ .../0001-change-mmc-detect-gpio-to-50.patch | 13 ++ .../ingenic-osdrv-t31/ingenic-osdrv-t31.mk | 30 ++++ .../general/scripts/excludes/t31_lite.list | 70 +++++++++ 10 files changed, 309 insertions(+) create mode 100644 devices/t31_lite_zte-k540/br-ext-chip-ingenic/configs/t31_lite_zte-k540_defconfig create mode 100644 devices/t31_lite_zte-k540/general/overlay/etc/builder.msg create mode 100755 devices/t31_lite_zte-k540/general/overlay/etc/wireless/usb create mode 100644 devices/t31_lite_zte-k540/general/overlay/usr/share/openipc/customizer.sh create mode 100644 devices/t31_lite_zte-k540/general/package/all-patches/ingenic-opensdk/0001-add-sc4336.patch create mode 100644 devices/t31_lite_zte-k540/general/package/all-patches/linux/0001-change-mmc-detect-gpio-to-50.patch create mode 100644 devices/t31_lite_zte-k540/general/package/ingenic-osdrv-t31/ingenic-osdrv-t31.mk create mode 100644 devices/t31_lite_zte-k540/general/scripts/excludes/t31_lite.list diff --git a/.github/workflows/master.yml b/.github/workflows/master.yml index 3b73203..c9e3cb8 100644 --- a/.github/workflows/master.yml +++ b/.github/workflows/master.yml @@ -41,6 +41,7 @@ jobs: - t31_lite_xiaomi-mjsxj03hl - t31_lite_tuya-gv7630-t31-ptz - t31_ultimate_azarton-c1-t31x + - t31_lite_zte-k540 - t10_lite_jvs-ingt10-gqs60ep steps: diff --git a/README.md b/README.md index 0dbc45d..64efd4e 100644 --- a/README.md +++ b/README.md @@ -50,6 +50,7 @@ CMCC HDC-51 A6-V11 T31L SC2332 RTL8188FU_USB NOR_16M done Azarton C1 T20X JXF23 RTL8189FS_SDIO NOR_16M done Azarton C1 T31X GC2053 RTL8189FS_SDIO NOR_16M done JVS INGT10 GQS60EP T10A OV9750 - NOR_8M done +ZTE K540 T31X SC4336 ATBM6012B_USB NOR_16M done ``` diff --git a/devices/t31_lite_zte-k540/br-ext-chip-ingenic/configs/t31_lite_zte-k540_defconfig b/devices/t31_lite_zte-k540/br-ext-chip-ingenic/configs/t31_lite_zte-k540_defconfig new file mode 100644 index 0000000..cb82284 --- /dev/null +++ b/devices/t31_lite_zte-k540/br-ext-chip-ingenic/configs/t31_lite_zte-k540_defconfig @@ -0,0 +1,137 @@ +# Architecture +BR2_mipsel=y +BR2_mips_xburst=y +# BR2_MIPS_SOFT_FLOAT is not set +BR2_MIPS_FP32_MODE_32=y +# BR2_MIPS_FP32_MODE_XX is not set +BR2_MIPS_NAN_LEGACY=y +BR2_MIPS_OABI32=y +BR2_KERNEL_HEADERS_VERSION=y +BR2_DEFAULT_KERNEL_VERSION="3.10.14" +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_10=y + +# Toolchain +BR2_PER_PACKAGE_DIRECTORIES=y +BR2_GCC_VERSION_12_X=y +# BR2_TOOLCHAIN_USES_UCLIBC is not set +# BR2_TOOLCHAIN_BUILDROOT_UCLIBC is not set +# BR2_TOOLCHAIN_BUILDROOT_LIBC="uclibc" +BR2_EXTRA_GCC_CONFIG_OPTIONS="--with-float=hard" +BR2_TOOLCHAIN_USES_MUSL=y +BR2_TOOLCHAIN_BUILDROOT_MUSL=y +BR2_TOOLCHAIN_BUILDROOT_LIBC="musl" +BR2_TOOLCHAIN_BUILDROOT_CXX=y +BR2_TOOLCHAIN_BUILDROOT_LOCALE=y +BR2_TOOLCHAIN_BUILDROOT_USE_SSP=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)/kernel/t31.generic.config" +BR2_LINUX_KERNEL_UIMAGE=y +BR2_LINUX_KERNEL_LZMA=y + +# OpenIPC +BR2_OPENIPC_SOC_VENDOR="ingenic" +BR2_OPENIPC_SOC_MODEL="t31" +BR2_OPENIPC_SOC_FAMILY="t31" +BR2_OPENIPC_FLAVOR="lite" +BR2_OPENIPC_FLASH_SIZE="8" + +# Filesystem +# BR2_TARGET_TZ_INFO is not set +BR2_TARGET_ROOTFS_CPIO=y +BR2_TARGET_ROOTFS_SQUASHFS=y +BR2_TARGET_ROOTFS_SQUASHFS4_XZ=y +BR2_ROOTFS_OVERLAY="$(BR2_EXTERNAL)/overlay" +BR2_ROOTFS_POST_BUILD_SCRIPT="$(BR2_EXTERNAL)/scripts/rootfs_script.sh" + +# OpenIPC configuration +BR2_TOOLCHAIN_BUILDROOT_VENDOR="openipc" +BR2_TARGET_GENERIC_ISSUE="Welcome to OpenIPC" +BR2_TARGET_GENERIC_HOSTNAME="openipc-t31" +BR2_GLOBAL_PATCH_DIR="$(BR2_EXTERNAL)/package/all-patches" + +# OpenIPC packages +BR2_PACKAGE_BUSYBOX_CONFIG="$(BR2_EXTERNAL)/package/busybox/busybox.config" +BR2_PACKAGE_DROPBEAR_OPENIPC=y +# BR2_PACKAGE_IFUPDOWN_SCRIPTS is not set +# BR2_PACKAGE_FDK_AAC_OPENIPC is not set +BR2_PACKAGE_UBOOT_TOOLS=y +BR2_PACKAGE_INGENIC_OSDRV_T31=y +BR2_PACKAGE_IPCTOOL=y +BR2_PACKAGE_JSON_C=y +BR2_PACKAGE_JSONFILTER=y +BR2_PACKAGE_LIBCURL_OPENIPC=y +BR2_PACKAGE_LIBCURL_OPENIPC_CURL=y +# BR2_PACKAGE_LIBCURL_OPENIPC_VERBOSE is not set +# 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_LIBCURL_OPENIPC_MBEDTLS=y +BR2_PACKAGE_LIBEVENT_OPENIPC=y +BR2_PACKAGE_LIBEVENT_OPENIPC_REMOVE_PYSCRIPT=y +BR2_PACKAGE_LIBOGG_OPENIPC=y +BR2_PACKAGE_LIBYAML=y +BR2_PACKAGE_MAJESTIC_FONTS=y +BR2_PACKAGE_MAJESTIC=y +BR2_PACKAGE_MBEDTLS_OPENIPC=y +# BR2_PACKAGE_MBEDTLS_OPENIPC_PROGRAMS is not set +# BR2_PACKAGE_MBEDTLS_OPENIPC_COMPRESSION is not set +BR2_PACKAGE_WEBUI=y +# BR2_PACKAGE_MINI_SNMPD is not set +BR2_PACKAGE_MOTORS=y +BR2_PACKAGE_OPUS_OPENIPC=y +BR2_PACKAGE_OPUS_OPENIPC_FIXED_POINT=y +# BR2_PACKAGE_SSHPASS is not set +# BR2_PACKAGE_UACME_OPENIPC is not set +BR2_PACKAGE_VTUND_OPENIPC=y +BR2_PACKAGE_YAML_CLI=y +BR2_PACKAGE_QUIRC_OPENIPC=y +# BR2_PACKAGE_AUTONIGHT is not set + +# WiFi +BR2_PACKAGE_WIRELESS_TOOLS=y +BR2_PACKAGE_WPA_SUPPLICANT=y +BR2_PACKAGE_WPA_SUPPLICANT_CLI=y +BR2_PACKAGE_WPA_SUPPLICANT_NL80211=y +BR2_PACKAGE_WPA_SUPPLICANT_PASSPHRASE=y +BR2_PACKAGE_LINUX_FIRMWARE_OPENIPC=y +#BR2_PACKAGE_LINUX_FIRMWARE_OPENIPC_MEDIATEK_MT7601U=y +# BR2_PACKAGE_RTL8188EU is not set +BR2_PACKAGE_ATBM60XX=y +BR2_PACKAGE_ATBM60XX_MODEL_603X=y +BR2_PACKAGE_ATBM60XX_INTERFACE_USB=y + +# WIREGUARD +BR2_PACKAGE_WIREGUARD_LINUX_COMPAT=y +BR2_PACKAGE_WIREGUARD_TOOLS=y + +# EXPERIMENTAL +# BR2_PACKAGE_ONVIF_SIMPLE_SERVER is not set + +# DEBUG +BR2_PACKAGE_INGENIC_PWM=y +BR2_PACKAGE_LOGCAT_OPENIPC=y +BR2_PACKAGE_INGENIC_DIAG_TOOLS=y +# BR2_PACKAGE_HOST_GDB is not set +# BR2_PACKAGE_GDB is not set + +# CCACHE +BR2_CCACHE=y +BR2_CCACHE_DIR="$(HOME)/.ccache" + +# Compression +BR2_PACKAGE_ZLIB=y + +# External +BR2_TOOLCHAIN_EXTERNAL=y +BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y +BR2_TOOLCHAIN_EXTERNAL_CUSTOM_MUSL=y +BR2_TOOLCHAIN_EXTERNAL_CUSTOM_PREFIX="mipsel-openipc-linux-musl" +BR2_TOOLCHAIN_EXTERNAL_CXX=y +BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y +BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_10=y +BR2_TOOLCHAIN_EXTERNAL_URL="https://github.com/openipc/firmware/releases/download/$(OPENIPC_TOOLCHAIN).tgz" diff --git a/devices/t31_lite_zte-k540/general/overlay/etc/builder.msg b/devices/t31_lite_zte-k540/general/overlay/etc/builder.msg new file mode 100644 index 0000000..ecd21de --- /dev/null +++ b/devices/t31_lite_zte-k540/general/overlay/etc/builder.msg @@ -0,0 +1,3 @@ +# +Experimental system for building OpenIPC firmware for known devices +# diff --git a/devices/t31_lite_zte-k540/general/overlay/etc/wireless/usb b/devices/t31_lite_zte-k540/general/overlay/etc/wireless/usb new file mode 100755 index 0000000..99d30e8 --- /dev/null +++ b/devices/t31_lite_zte-k540/general/overlay/etc/wireless/usb @@ -0,0 +1,12 @@ +#!/bin/sh + +set_gpio() { + [ "$2" -eq 1 ] && gpio set $1 || gpio clear $1 + sleep 1 +} + +if [ "$1" = "atbm603x_wifi_usb" ]; then + set_gpio 51 0 + modprobe atbm603x_wifi_usb + exit 0 +fi diff --git a/devices/t31_lite_zte-k540/general/overlay/usr/share/openipc/customizer.sh b/devices/t31_lite_zte-k540/general/overlay/usr/share/openipc/customizer.sh new file mode 100644 index 0000000..5d2a869 --- /dev/null +++ b/devices/t31_lite_zte-k540/general/overlay/usr/share/openipc/customizer.sh @@ -0,0 +1,33 @@ +#!/bin/sh +# +# Perform basic settings on a known IP camera +# +# +# Set custom upgrade url +# +fw_setenv upgrade 'https://github.com/OpenIPC/builder/releases/download/latest/t31_lite_zte-k540-nor.tgz' +# +# +# Set custom majestic settings +# +cli -s .nightMode.enabled true +cli -s .nightMode.irCutPin1 57 +cli -s .nightMode.irCutPin2 58 +cli -s .nightMode.backlightPin 11 +cli -s .video0.codec h264 +cli -s .audio.speakerPin 64 +# +# +# Set wlan device and credentials if need +# +fw_setenv wlandev atbm603x_wifi_usb +#fw_setenv wlanssid Router +#fw_setenv wlanpass 12345678 +# +# +# Set osmem and rmem +# +fw_setenv osmem 64M +fw_setenv rmem 64M@0x4000000 +# +exit 0 diff --git a/devices/t31_lite_zte-k540/general/package/all-patches/ingenic-opensdk/0001-add-sc4336.patch b/devices/t31_lite_zte-k540/general/package/all-patches/ingenic-opensdk/0001-add-sc4336.patch new file mode 100644 index 0000000..fe96460 --- /dev/null +++ b/devices/t31_lite_zte-k540/general/package/all-patches/ingenic-opensdk/0001-add-sc4336.patch @@ -0,0 +1,9 @@ +diff --git a/kernel/sensors/t31/Kbuild b/kernel/sensors/t31/Kbuild +index caf668b..07367bb 100644 +--- a/kernel/sensors/t31/Kbuild ++++ b/kernel/sensors/t31/Kbuild +@@ -18,3 +18,4 @@ include $(src)/sensors/$(SOC)/sc2336/Kbuild + include $(src)/sensors/$(SOC)/sc3338/Kbuild + include $(src)/sensors/$(SOC)/sc5235/Kbuild + include $(src)/sensors/$(SOC)/sc4236/Kbuild ++include $(src)/sensors/$(SOC)/sc4336/Kbuild diff --git a/devices/t31_lite_zte-k540/general/package/all-patches/linux/0001-change-mmc-detect-gpio-to-50.patch b/devices/t31_lite_zte-k540/general/package/all-patches/linux/0001-change-mmc-detect-gpio-to-50.patch new file mode 100644 index 0000000..e169775 --- /dev/null +++ b/devices/t31_lite_zte-k540/general/package/all-patches/linux/0001-change-mmc-detect-gpio-to-50.patch @@ -0,0 +1,13 @@ +diff --git a/arch/mips/xburst/soc-t31/chip-t31/isvp/Swan/board.h b/arch/mips/xburst/soc-t31/chip-t31/isvp/Swan/board.h +index d9058e1271..b53c252c64 100644 +--- a/arch/mips/xburst/soc-t31/chip-t31/isvp/Swan/board.h ++++ b/arch/mips/xburst/soc-t31/chip-t31/isvp/Swan/board.h +@@ -32,7 +32,7 @@ + /* ****************************GPIO MMC START******************************** */ + #define GPIO_MMC_RST_N -1 + #define GPIO_MMC_RST_N_LEVEL LOW_ENABLE +-#define GPIO_MMC_CD_N GPIO_PB(27) ++#define GPIO_MMC_CD_N GPIO_PB(18) + #define GPIO_MMC_CD_N_LEVEL LOW_ENABLE + #define GPIO_MMC_PWR -1 + #define GPIO_MMC_PWR_LEVEL HIGH_ENABLE diff --git a/devices/t31_lite_zte-k540/general/package/ingenic-osdrv-t31/ingenic-osdrv-t31.mk b/devices/t31_lite_zte-k540/general/package/ingenic-osdrv-t31/ingenic-osdrv-t31.mk new file mode 100644 index 0000000..4860454 --- /dev/null +++ b/devices/t31_lite_zte-k540/general/package/ingenic-osdrv-t31/ingenic-osdrv-t31.mk @@ -0,0 +1,30 @@ +################################################################################ +# +# ingenic-osdrv-t31 +# +################################################################################ + +INGENIC_OSDRV_T31_VERSION = +INGENIC_OSDRV_T31_SITE = +INGENIC_OSDRV_T31_LICENSE = MIT +INGENIC_OSDRV_T31_LICENSE_FILES = LICENSE + +define INGENIC_OSDRV_T31_INSTALL_TARGET_CMDS + $(INSTALL) -m 755 -d $(TARGET_DIR)/etc/sensor + $(INSTALL) -m 644 -t $(TARGET_DIR)/etc/sensor $(INGENIC_OSDRV_T31_PKGDIR)/files/sensor/*.yaml + # $(INSTALL) -m 644 -t $(TARGET_DIR)/etc/sensor $(INGENIC_OSDRV_T31_PKGDIR)/files/sensor/params/*.bin + + $(INSTALL) -m 644 -t $(TARGET_DIR)/etc/sensor $(INGENIC_OSDRV_T31_PKGDIR)/files/sensor/params/sc4336-t31.bin + + # Modules for T31 are built from the openingenic repository sources, so we don't need to copy them. + # $(INSTALL) -m 755 -d $(TARGET_DIR)/lib/modules/3.10.14__isvp_swan_1.0__/ingenic + # $(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/3.10.14__isvp_swan_1.0__/ingenic $(INGENIC_OSDRV_T31_PKGDIR)/files/kmod/*.ko + + $(INSTALL) -m 755 -d $(TARGET_DIR)/usr/bin + $(INSTALL) -m 755 -t $(TARGET_DIR)/usr/bin $(INGENIC_OSDRV_T31_PKGDIR)/files/script/load* + + $(INSTALL) -m 755 -d $(TARGET_DIR)/usr/lib + $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(INGENIC_OSDRV_T31_PKGDIR)/files/lib/*.so +endef + +$(eval $(generic-package)) diff --git a/devices/t31_lite_zte-k540/general/scripts/excludes/t31_lite.list b/devices/t31_lite_zte-k540/general/scripts/excludes/t31_lite.list new file mode 100644 index 0000000..ccde890 --- /dev/null +++ b/devices/t31_lite_zte-k540/general/scripts/excludes/t31_lite.list @@ -0,0 +1,70 @@ +/etc/sensor/gc2053-t31.bin +/etc/sensor/gc2083-t31.bin +/etc/sensor/gc4023-t31.bin +/etc/sensor/gc4653-t31.bin +/etc/sensor/imx307-t31.bin +/etc/sensor/imx327-t31.bin +/etc/sensor/jxf37-t31.bin +/etc/sensor/jxh62-t31.bin +/etc/sensor/jxq03-t31.bin +/etc/sensor/jxq03p-t31.bin +/etc/sensor/os03b10-t31.bin +/etc/sensor/sc200ai-t31.bin +/etc/sensor/sc2232h-t31.bin +/etc/sensor/sc2335-t31.bin +/etc/sensor/sc2336-t31.bin +/etc/sensor/sc3335-t31.bin +/etc/sensor/sc3338-t31.bin +/etc/sensor/sc4236-t31.bin +/etc/sensor/sc5235-t31.bin +# +/etc/sensor/gc2053.yaml +/etc/sensor/gc2083.yaml +/etc/sensor/gc4023.yaml +/etc/sensor/gc4653.yaml +/etc/sensor/imx307.yaml +/etc/sensor/imx327.yaml +/etc/sensor/imx335.yaml +/etc/sensor/jxf22.yaml +/etc/sensor/jxf23.yaml +/etc/sensor/jxf37.yaml +/etc/sensor/jxh42.yaml +/etc/sensor/jxh62.yaml +/etc/sensor/jxh63.yaml +/etc/sensor/jxk04.yaml +/etc/sensor/jxq03.yaml +/etc/sensor/jxq03p.yaml +/etc/sensor/os03b10.yaml +/etc/sensor/ov2735.yaml +/etc/sensor/ov2735b.yaml +/etc/sensor/ov4689.yaml +/etc/sensor/ps5260.yaml +/etc/sensor/sc200ai.yaml +/etc/sensor/sc2232.yaml +/etc/sensor/sc2232h.yaml +/etc/sensor/sc2335.yaml +/etc/sensor/sc2336.yaml +/etc/sensor/sc3335.yaml +/etc/sensor/sc3338.yaml +/etc/sensor/sc4236.yaml +/etc/sensor/sc5235.yaml +# +/lib/modules/3.10.14__isvp_swan_1.0__/ingenic/sensor_gc2053_t31.ko +/lib/modules/3.10.14__isvp_swan_1.0__/ingenic/sensor_gc2083_t31.ko +/lib/modules/3.10.14__isvp_swan_1.0__/ingenic/sensor_gc4023_t31.ko +/lib/modules/3.10.14__isvp_swan_1.0__/ingenic/sensor_gc4653_t31.ko +/lib/modules/3.10.14__isvp_swan_1.0__/ingenic/sensor_imx307_t31.ko +/lib/modules/3.10.14__isvp_swan_1.0__/ingenic/sensor_imx327_t31.ko +/lib/modules/3.10.14__isvp_swan_1.0__/ingenic/sensor_jxf37_t31.ko +/lib/modules/3.10.14__isvp_swan_1.0__/ingenic/sensor_jxh62_t31.ko +/lib/modules/3.10.14__isvp_swan_1.0__/ingenic/sensor_jxh63_t31.ko +/lib/modules/3.10.14__isvp_swan_1.0__/ingenic/sensor_jxq03_t31.ko +/lib/modules/3.10.14__isvp_swan_1.0__/ingenic/sensor_jxq03p_t31.ko +/lib/modules/3.10.14__isvp_swan_1.0__/ingenic/sensor_os03b10_t31.ko +/lib/modules/3.10.14__isvp_swan_1.0__/ingenic/sensor_sc200ai_t31.ko +/lib/modules/3.10.14__isvp_swan_1.0__/ingenic/sensor_sc2232h_t31.ko +/lib/modules/3.10.14__isvp_swan_1.0__/ingenic/sensor_sc2335_t31.ko +/lib/modules/3.10.14__isvp_swan_1.0__/ingenic/sensor_sc2336_t31.ko +/lib/modules/3.10.14__isvp_swan_1.0__/ingenic/sensor_sc3338_t31.ko +/lib/modules/3.10.14__isvp_swan_1.0__/ingenic/sensor_sc4236_t31.ko +/lib/modules/3.10.14__isvp_swan_1.0__/ingenic/sensor_sc5235_t31.ko