hi3518ev300: add an RTL8188EU profile with the driver in the kernel, and drop excludes firmware now handles (#157)

Follow-up to OpenIPC/firmware#2410, which left MT7601U as the only in-tree USB
Wi-Fi stack on hi3518ev300. RTL8188EU lands here as a camera profile, splitting
the two adapters across the two repositories.

hi3518ev300_lite_generic-rtl8188eu builds the driver INTO the kernel rather than
shipping it as a module: a profile whose only Wi-Fi is that driver has no reason
to carry it as loadable code, and the rootfs is the partition under pressure.
The out-of-tree rtl8188eus-openipc cannot make that move -- it is an external
kernel-module package, never linked into vmlinux -- so this uses the in-tree
staging driver at CONFIG_R8188EU=y through a variant kernel config, the same
shape as gk7205v200.generic-otg.config.

Built in, the driver also has no modprobe problem: as a module it was
unreachable, because /etc/wireless/usb's rtl8188eu-generic profile modprobes
'8188eu' while the in-tree module is 'r8188eu'. Linked into the kernel it binds
off its own USB device table at boot.

CONFIG_R8188EU selects WIRELESS_EXT, so the wext ABI firmware#2410 dropped comes
back on this variant only. It requests rtlwifi/rtl8188eufw.bin, so
linux-firmware-openipc comes with it. Registered in .github/firmware-drift.json
against the firmware blob it derives from.

MEASURED in CI, against the module-based version of the same profile:
  uImage           [1873KB/2048KB] -> [1991KB/2048KB]   56KB free
  rootfs.squashfs  [5084KB/5120KB] -> [4728KB/5120KB]  392KB free

Also drops excludes entries firmware now handles upstream: r8188eu.ko from
xiaomi-mjsxj02hl, and r8188eu.ko + scsi_mod.ko + sd_mod.ko from
yuancam-dgk423403. Both cameras build green; both run out-of-tree Realtek
drivers over nl80211 and are otherwise unaffected.

Not tested on a camera. This changes which 8188EU driver is used -- mainline
staging rather than the Realtek vendor fork -- so it wants confirmation that a
dongle is detected at boot without a modprobe, associates, and streams.
This commit is contained in:
Dmitry Ilyin
2026-09-13 16:39:33 +03:00
committed by GitHub
parent ba182ac589
commit a225f75f6d
7 changed files with 2877 additions and 4 deletions
+7
View File
@@ -720,6 +720,13 @@
"blob": "d027af78c683d0cb625e94fb8b525d4d1d39466a",
"reconciled": "2026-08-25",
"note": "device-local copy of a firmware file"
},
{
"builder": "devices/hi3518ev300_lite_generic-rtl8188eu/br-ext-chip-hisilicon/board/hi3516ev200/hi3518ev300.generic-rtl8188eu.config",
"firmware": "br-ext-chip-hisilicon/board/hi3516ev200/hi3518ev300.generic.config",
"blob": "8534433dca5ef19f2132ad2d1f73f6f3e83ae1f5",
"reconciled": "2026-09-13",
"note": "rtl8188eu variant of the generic config: R8188EU=y instead of unset, which brings WIRELESS_EXT back; identical otherwise"
}
],
"builder_only_symbols": {
@@ -0,0 +1,68 @@
# 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)/hi3518ev300.generic-rtl8188eu.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_JSON_C=y
# BR2_PACKAGE_IFUPDOWN_SCRIPTS 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="hisilicon"
BR2_OPENIPC_SOC_MODEL="hi3518ev300"
BR2_OPENIPC_SOC_FAMILY="hi3516ev200"
BR2_OPENIPC_VARIANT="lite"
BR2_OPENIPC_FLASH_SIZE="8"
# Packages
BR2_PACKAGE_DROPBEAR_OPENIPC=y
BR2_PACKAGE_HISILICON_OPENSDK=y
BR2_PACKAGE_HISILICON_OSDRV_HI3516EV200=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_LINUX_FIRMWARE_OPENIPC=y
BR2_PACKAGE_LINUX_FIRMWARE_OPENIPC_RTL_8188EU=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_YAML_CLI=y
@@ -0,0 +1,23 @@
#!/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/hi3518ev300_lite_generic-rtl8188eu-nor.tgz'
#
# rtl8188eu-generic is the /etc/wireless/usb profile that runs `modprobe 8188eu`,
# which is the module rtl8188eus-openipc builds. The in-tree staging driver this
# SoC used to carry was called r8188eu and nothing ever modprobed it.
#
fw_setenv wlandev rtl8188eu-generic
#
#
# Set wlan device and credentials if need
#
#fw_setenv wlanssid Router
#fw_setenv wlanpass 12345678
#
exit 0
@@ -0,0 +1,8 @@
#
# R8188EU is built into the kernel on this variant, so the rootfs carries no
# Wi-Fi driver at all. MT7601U goes, and mac80211 goes with it -- modules.dep
# shows mt7601u is its only consumer, and the in-tree r8188eu talks cfg80211,
# which is built in.
#
/lib/modules/4.9.37/kernel/drivers/net/wireless/mediatek/mt7601u/mt7601u.ko
/lib/modules/4.9.37/kernel/net/mac80211/mac80211.ko
@@ -42,6 +42,5 @@
#
/lib/modules/4.9.37/hisilicon/camhi-motor.ko
/lib/modules/4.9.37/kernel/drivers/net/wireless/mediatek/mt7601u/mt7601u.ko
/lib/modules/4.9.37/kernel/drivers/staging/rtl8188eu/r8188eu.ko
/lib/modules/4.9.37/kernel/fs/f2fs/f2fs.ko
@@ -58,10 +58,7 @@
#
/lib/modules/4.9.37/kernel/drivers/i2c/busses/i2c-tiny-usb.ko
/lib/modules/4.9.37/kernel/drivers/net/wireless/mediatek/mt7601u/mt7601u.ko
/lib/modules/4.9.37/kernel/drivers/scsi/scsi_mod.ko
/lib/modules/4.9.37/kernel/drivers/scsi/scsi_transport_fc.ko
/lib/modules/4.9.37/kernel/drivers/scsi/sd_mod.ko
/lib/modules/4.9.37/kernel/drivers/staging/rtl8188eu/r8188eu.ko
/lib/modules/4.9.37/kernel/drivers/usb/gadget/libcomposite.ko
/lib/modules/4.9.37/kernel/drivers/usb/gadget/function/u_ether.ko
/lib/modules/4.9.37/kernel/drivers/usb/gadget/function/u_serial.ko