From 86f96101b3dd3ed385b8731e01bad3100507dea7 Mon Sep 17 00:00:00 2001 From: Dmitry Ilyin <6576495+widgetii@users.noreply.github.com> Date: Thu, 28 May 2026 20:57:28 +0300 Subject: [PATCH 1/2] rtl8188fu-openipc: ship rtl8188fufw.bin from the FU package (#1906) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The Realtek 8188FTV firmware blob was sitting inside the rtl8188eus-openipc package and was only installed when BR2_PACKAGE_RTL8188EUS_OPENIPC=y — which no production defconfig sets. As a result, every board that enabled BR2_PACKAGE_RTL8188FU_OPENIPC=y (e.g. hi3518ev200_ultimate) built the kernel module but never shipped /lib/firmware/rtlwifi/rtl8188fufw.bin, so the 8188fu driver could not bring up the dongle. Move the blob into the FU package and install it from a POST_INSTALL hook there, mirroring the install idiom that previously lived in the EUS .mk. Drop the matching hook + license note from rtl8188eus-openipc. Co-Authored-By: Claude Opus 4.7 (1M context) --- .../rtl8188eus-openipc/rtl8188eus-openipc.mk | 8 +------- .../package/rtl8188fu-openipc/rtl8188fu-openipc.mk | 8 +++++++- .../rtl8188fufw.bin | Bin 3 files changed, 8 insertions(+), 8 deletions(-) rename general/package/{rtl8188eus-openipc => rtl8188fu-openipc}/rtl8188fufw.bin (100%) diff --git a/general/package/rtl8188eus-openipc/rtl8188eus-openipc.mk b/general/package/rtl8188eus-openipc/rtl8188eus-openipc.mk index f268e8aca3..ee183e931e 100644 --- a/general/package/rtl8188eus-openipc/rtl8188eus-openipc.mk +++ b/general/package/rtl8188eus-openipc/rtl8188eus-openipc.mk @@ -8,15 +8,9 @@ RTL8188EUS_OPENIPC_SITE_METHOD = git RTL8188EUS_OPENIPC_SITE = https://github.com/aircrack-ng/rtl8188eus RTL8188EUS_OPENIPC_VERSION = 6146193406b62e942d13d4d43580ed94ac70c218 -RTL8188EUS_OPENIPC_LICENSE = GPL-2.0, proprietary (rtl8188fufw.bin firmware blob) +RTL8188EUS_OPENIPC_LICENSE = GPL-2.0 RTL8188EUS_OPENIPC_LICENSE_FILES = COPYING RTL8188EUS_OPENIPC_MODULE_MAKE_OPTS = CONFIG_RTL8188EU=m CONFIG_CALIBRATE_TX_POWER_TO_MAX=y -define RTL8188EUS_OPENIPC_INSTALL_FIRMWARE - $(INSTALL) -D -m 644 $(RTL8188EUS_OPENIPC_PKGDIR)/rtl8188fufw.bin \ - $(TARGET_DIR)/lib/firmware/rtlwifi/rtl8188fufw.bin -endef -RTL8188EUS_OPENIPC_POST_INSTALL_TARGET_HOOKS += RTL8188EUS_OPENIPC_INSTALL_FIRMWARE - $(eval $(kernel-module)) $(eval $(generic-package)) diff --git a/general/package/rtl8188fu-openipc/rtl8188fu-openipc.mk b/general/package/rtl8188fu-openipc/rtl8188fu-openipc.mk index b832616061..dc2545a86c 100644 --- a/general/package/rtl8188fu-openipc/rtl8188fu-openipc.mk +++ b/general/package/rtl8188fu-openipc/rtl8188fu-openipc.mk @@ -7,7 +7,7 @@ RTL8188FU_OPENIPC_SITE = $(call github,openipc,realtek-wlan,$(RTL8188FU_OPENIPC_VERSION)) RTL8188FU_OPENIPC_VERSION = rtl8188fu -RTL8188FU_OPENIPC_LICENSE = GPL-2.0 +RTL8188FU_OPENIPC_LICENSE = GPL-2.0, proprietary (rtl8188fufw.bin firmware blob) RTL8188FU_OPENIPC_LICENSE_FILES = COPYING RTL8188FU_OPENIPC_MODULE_MAKE_OPTS = \ @@ -15,5 +15,11 @@ RTL8188FU_OPENIPC_MODULE_MAKE_OPTS = \ KVER=$(LINUX_VERSION_PROBED) \ KSRC=$(LINUX_DIR) +define RTL8188FU_OPENIPC_INSTALL_FIRMWARE + $(INSTALL) -D -m 644 $(RTL8188FU_OPENIPC_PKGDIR)/rtl8188fufw.bin \ + $(TARGET_DIR)/lib/firmware/rtlwifi/rtl8188fufw.bin +endef +RTL8188FU_OPENIPC_POST_INSTALL_TARGET_HOOKS += RTL8188FU_OPENIPC_INSTALL_FIRMWARE + $(eval $(kernel-module)) $(eval $(generic-package)) diff --git a/general/package/rtl8188eus-openipc/rtl8188fufw.bin b/general/package/rtl8188fu-openipc/rtl8188fufw.bin similarity index 100% rename from general/package/rtl8188eus-openipc/rtl8188fufw.bin rename to general/package/rtl8188fu-openipc/rtl8188fufw.bin From 12901ae04c070e1ea688ba5d1166768fc5b93eaf Mon Sep 17 00:00:00 2001 From: Dmitry Ilyin <6576495+widgetii@users.noreply.github.com> Date: Thu, 28 May 2026 20:57:43 +0300 Subject: [PATCH 2/2] gk7202v300: add ultimate variant with RTL8188FU support (#2153) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The OpenIPC Installation Guide already advertises a gk7202v300-nor-ultimate firmware but no such image has ever been built — only the lite defconfig existed. Add the ultimate defconfig, modelled on gk7205v200_ultimate (same SoC family) with the gk7202v300 kernel config and SOC_MODEL, and wire it into the CI matrix. Enable BR2_PACKAGE_RTL8188FU_OPENIPC=y plus the linux-firmware RTL_8188EU set so the 16 MB image natively drives an RTL8188FTV USB dongle (0bda:f179, /etc/wireless/usb rtl8188fu-generic), which is what the reporter of #2153 has wired to the BM002-IPC-GK7202-PCB-V10 board. Local build verified: uImage 1890/2048 KB, rootfs.squashfs 7064/8192 KB, 8188fu.ko and /lib/firmware/rtlwifi/rtl8188fufw.bin both present in the squashfs. Co-Authored-By: Claude Opus 4.7 (1M context) --- .github/workflows/build.yml | 1 + .../configs/gk7202v300_ultimate_defconfig | 85 +++++++++++++++++++ 2 files changed, 86 insertions(+) create mode 100644 br-ext-chip-goke/configs/gk7202v300_ultimate_defconfig diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 611160aa5a..e8cc1cd112 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -202,6 +202,7 @@ jobs: - hi3516ev300_ultimate - hi3518ev300_ultimate - hi3516av200_ultimate + - gk7202v300_ultimate - gk7205v200_ultimate - gk7205v300_ultimate diff --git a/br-ext-chip-goke/configs/gk7202v300_ultimate_defconfig b/br-ext-chip-goke/configs/gk7202v300_ultimate_defconfig new file mode 100644 index 0000000000..e597d00429 --- /dev/null +++ b/br-ext-chip-goke/configs/gk7202v300_ultimate_defconfig @@ -0,0 +1,85 @@ +# 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 + +# Legacy +BR2_TOOLCHAIN_EXTERNAL_GCC_8=y +BR2_GCC_VERSION_LEGACY=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_IFUPDOWN_SCRIPTS is not set +BR2_PACKAGE_IPTABLES=y +BR2_PACKAGE_MOSQUITTO=y +# BR2_PACKAGE_MOSQUITTO_BROKER is not set +BR2_PACKAGE_WIREGUARD_LINUX_COMPAT=y +BR2_PACKAGE_WIREGUARD_TOOLS=y +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="ultimate" +BR2_OPENIPC_FLASH_SIZE="16" +BR2_OPENIPC_MAJESTIC="ultimate" + +# Packages +BR2_PACKAGE_DIVINUS=y +BR2_PACKAGE_DROPBEAR_OPENIPC=y +BR2_PACKAGE_GOKE_OSDRV_GK7205V200=y +BR2_PACKAGE_HISILICON_OPENSDK=y +BR2_PACKAGE_IPCTOOL=y +BR2_PACKAGE_JSONFILTER=y +BR2_PACKAGE_LAME_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_LIBWEBSOCKETS_OPENIPC=y +BR2_PACKAGE_LINUX_FIRMWARE_OPENIPC=y +BR2_PACKAGE_LINUX_FIRMWARE_OPENIPC_MEDIATEK_MT7601U=y +BR2_PACKAGE_LINUX_FIRMWARE_OPENIPC_RTL_8188EU=y +BR2_PACKAGE_AWS_WEBRTC=y +BR2_PACKAGE_MAJESTIC_FONTS=y +BR2_PACKAGE_MAJESTIC_WEBUI=y +BR2_PACKAGE_MAJESTIC=y +BR2_PACKAGE_MOTORS=y +BR2_PACKAGE_OPUS_OPENIPC=y +BR2_PACKAGE_OPUS_OPENIPC_FIXED_POINT=y +BR2_PACKAGE_QUIRC_OPENIPC=y +BR2_PACKAGE_RTL8188FU_OPENIPC=y +BR2_PACKAGE_UACME_OPENIPC=y +BR2_PACKAGE_VTUND_OPENIPC=y +BR2_PACKAGE_YAML_CLI=y +BR2_PACKAGE_ZEROTIER_ONE=y