Skip to content

rtl8188fu-openipc: drop unused firmware blob (driver embeds it)#2159

Merged
widgetii merged 2 commits into
masterfrom
rtl8188fu-drop-unused-blob
May 29, 2026
Merged

rtl8188fu-openipc: drop unused firmware blob (driver embeds it)#2159
widgetii merged 2 commits into
masterfrom
rtl8188fu-drop-unused-blob

Conversation

@widgetii
Copy link
Copy Markdown
Member

Summary

Follow-up cleanup to #2157, per @flyrouter's catch in #2157 (comment).

The openipc/realtek-wlan rtl8188fu branch already carries the firmware compiled into the .ko:

  • include/autoconf.h defines LOAD_FW_HEADER_FROM_DRIVER unconditionally
  • hal/rtl8188f/hal8188f_fw.c (~372 KB source) emits u8 array_mp_8188f_fw_*[] byte arrays that the driver consumes directly — no request_firmware() call

So the rtl8188fufw.bin file I shipped to /lib/firmware/rtlwifi/ in #2157 was dead weight on every board that builds 8188fu.ko. This PR drops:

  1. general/package/rtl8188fu-openipc/rtl8188fufw.bin (the orphaned blob, ~21 KB)
  2. The RTL8188FU_OPENIPC_INSTALL_FIRMWARE POST_INSTALL hook + the proprietary (rtl8188fufw.bin firmware blob) LICENSE note in rtl8188fu-openipc.mk
  3. BR2_PACKAGE_LINUX_FIRMWARE_OPENIPC_RTL_8188EU=y from gk7202v300_ultimate_defconfig — I'd added this in gk7202v300: add ultimate variant + ship rtl8188fufw blob from the FU package #2157 by mistake; the gk7205v200_ultimate template never had it, and r8188eu from the kernel staging tree on this platform doesn't load rtl8188eufw.bin either

Local verification (make BOARD=gk7202v300_ultimate)

- uImage:         1890 KB / 2048 KB   (unchanged)
- rootfs.squashfs:7040 KB / 8192 KB   (was 7064 KB, -24 KB)

unsquashfs -l rootfs.squashfs.gk7202v300 | grep -E 'rtl8188|8188fu|rtlwifi|wpa_sup':

squashfs-root/etc/wpa_supplicant.conf
squashfs-root/lib/modules/4.9.37/extra/8188fu.ko
squashfs-root/lib/modules/4.9.37/kernel/drivers/staging/rtl8188eu/r8188eu.ko
squashfs-root/usr/sbin/wpa_supplicant

/lib/firmware/rtlwifi/ is gone (no consumers). FU and EU kernel modules both still ship — only the unused blobs leave.

Test plan

  • CI matrix builds gk7202v300_ultimate cleanly
  • CI matrix hi3518ev200_ultimate continues to pass (regression check — that board's image also stops shipping the dead blob)
  • On-device: same flash recipe (fw_setenv wlandev rtl8188fu-generic → reboot → wlan0 up) should still work, because the FU driver's firmware is in the .ko

🤖 Generated with Claude Code

The openipc/realtek-wlan rtl8188fu fork defines LOAD_FW_HEADER_FROM_DRIVER
unconditionally in include/autoconf.h, and hal/rtl8188f/hal8188f_fw.c
ships the firmware as u8 array_mp_8188f_fw_*[] byte arrays compiled into
the .ko. The driver never calls request_firmware() for the FU blob, so
the rtl8188fufw.bin file PR #2157 placed at /lib/firmware/rtlwifi/ was
dead weight (~21 KB on every board that builds 8188fu.ko).

Drop the blob and the POST_INSTALL hook that installed it; revert the
LICENSE field to plain GPL-2.0. Also drop BR2_PACKAGE_LINUX_FIRMWARE_OPENIPC_RTL_8188EU=y
from gk7202v300_ultimate (I added it in #2157 by mistake; the gk7205v200
ultimate template never had it, and r8188eu kernel module on this
platform doesn't need a userspace blob either).

Verified locally: gk7202v300_ultimate rebuild produces a squashfs with
8188fu.ko present, /lib/firmware/rtlwifi/ no longer created, rootfs
7040 KB (was 7064 KB).

Spotted by @flyrouter on #2157.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@widgetii widgetii merged commit 5b49df1 into master May 29, 2026
102 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant