From 33ce34fc98724e80e89aecc52fa7dfc87bd2e21e Mon Sep 17 00:00:00 2001 From: AI Dev Date: Thu, 27 Aug 2026 18:02:08 +0000 Subject: [PATCH] fpv: give the 8812eu its own gk7205v200 build #61 asks for 8812eu support on gk7205v200 FPV. #70 and the first version of this PR both tried to satisfy it by adding BR2_PACKAGE_RTL88X2EU_OPENIPC=y next to the existing BR2_PACKAGE_RTL8812AU_OPENIPC=y. CI built that and it does not fit: - uImage: [1988KB/2048KB] - rootfs.squashfs: [5504KB/5120KB] -- size exceeded by: 384KB headroom: kernel=59KB rootfs=-384KB Two heavy kernel Wi-Fi drivers do not go in one 8M image. The driver itself is fine -- 8812eu.ko links and installs -- it is purely flash budget, and there is no 384KB of slack to find in a 5MB rootfs that was already at its cap. The tree had already said so and I misread it. Every defconfig here that ships both drivers is 16M: all the ssc338q, ssc30kq, ssc377qe and ssc378qe fpv/apfpv/rubyfpv targets. Every 8M one ships 8812au alone: gk7205v200/v210/v300 fpv and venc, hi3516ev200_fpv, hi3516ev300_fpv. The "missing" 8812eu on the Goke configs was never an oversight; it is what 8M allows. So this is a separate build instead of a fatter one. gk7205v200_fpv_8812eu is gk7205v200_fpv with one line changed, the driver swapped rather than added. The existing gk7205v200_fpv is untouched, so nobody using an 8812au adapter is affected. Nothing else needs to move for it: - Registration is automatic; the defconfig is the registration. - The excludes list is resolved as ${SOC_MODEL}_${VARIANT}.list by firmware's rootfs_script.sh, and VARIANT stays "fpv", so it reuses gk7205v200_fpv.list. That list strips neither driver. - Release assets do not collide. master.yml keys on the underscore count: gk7205v200_fpv has COMMON=1 and uploads the canonical openipc.gk7205v200-nor-fpv.tgz, while this one has COMMON=2 and is renamed to gk7205v200_fpv_8812eu-nor.tgz. Same for its sizes.json. Only gk7205v200, which is what #61 asked for. The other four 8M FPV targets have the same constraint and could take the same treatment if anyone asks for it. --- .../configs/gk7205v200_fpv_8812eu_defconfig | 63 +++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 devices/common/br-ext-chip-goke/configs/gk7205v200_fpv_8812eu_defconfig diff --git a/devices/common/br-ext-chip-goke/configs/gk7205v200_fpv_8812eu_defconfig b/devices/common/br-ext-chip-goke/configs/gk7205v200_fpv_8812eu_defconfig new file mode 100644 index 000000000..07972ac6f --- /dev/null +++ b/devices/common/br-ext-chip-goke/configs/gk7205v200_fpv_8812eu_defconfig @@ -0,0 +1,63 @@ +# 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)/gk7205v200.generic-fpv.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_LIBZIP=y +BR2_PACKAGE_JSON_C=y +# BR2_PACKAGE_IFUPDOWN_SCRIPTS is not set +BR2_PACKAGE_WIRELESS_TOOLS=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="gk7205v200" +BR2_OPENIPC_SOC_FAMILY="gk7205v200" +BR2_OPENIPC_VARIANT="fpv" +BR2_OPENIPC_FLASH_SIZE="8" +BR2_OPENIPC_MAJESTIC="fpv" + +# 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_LINUX_FIRMWARE_OPENIPC=y +BR2_PACKAGE_MAJESTIC=y +BR2_PACKAGE_MAVFWD=y +BR2_PACKAGE_MAVLINK_ROUTER=y +BR2_PACKAGE_MBEDTLS_OPENIPC=y +BR2_PACKAGE_RTL88X2EU_OPENIPC=y +BR2_PACKAGE_VTUND_OPENIPC=y +BR2_PACKAGE_WIFIBROADCAST=y +BR2_PACKAGE_YAML_CLI=y