From c008b9baf35074a7e340b79f4a51d0aad76ef243 Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Sun, 2 Aug 2026 01:25:43 -0700 Subject: [PATCH] buildroot: add more 5GHz SoftMAC Wi-Fi drivers Includes lwfinger/rtw88 and morrownr/rtw89 --- .../board/common/linux-5ghz-softmac.config | 18 ++++++++++++++++++ .../linux-orangepi-zero3-extra.config | 2 ++ .../raspberrypi/linux-6.12-5ghz-softmac.config | 1 + .../configs/vanilla_orangepi_zero2w_defconfig | 12 +++++++++++- .../configs/vanilla_orangepi_zero3_defconfig | 12 +++++++++++- .../configs/vanilla_raspberrypi0w_defconfig | 15 +++++++++++++++ .../vanilla_raspberrypizero2w_64_defconfig | 15 +++++++++++++++ buildroot/package/Config.in | 2 ++ buildroot/package/rtw88-lwfinger/Config.in | 10 ++++++++++ .../package/rtw88-lwfinger/rtw88-lwfinger.hash | 3 +++ .../package/rtw88-lwfinger/rtw88-lwfinger.mk | 11 +++++++++++ .../0001-make-git-commit-overridable.patch | 6 ++++++ buildroot/package/rtw89-morrownr/Config.in | 10 ++++++++++ .../package/rtw89-morrownr/rtw89-morrownr.hash | 3 +++ .../package/rtw89-morrownr/rtw89-morrownr.mk | 18 ++++++++++++++++++ 15 files changed, 136 insertions(+), 2 deletions(-) create mode 100644 buildroot/board/common/linux-5ghz-softmac.config create mode 100644 buildroot/board/raspberrypi/linux-6.12-5ghz-softmac.config create mode 100644 buildroot/package/rtw88-lwfinger/Config.in create mode 100644 buildroot/package/rtw88-lwfinger/rtw88-lwfinger.hash create mode 100644 buildroot/package/rtw88-lwfinger/rtw88-lwfinger.mk create mode 100644 buildroot/package/rtw89-morrownr/0001-make-git-commit-overridable.patch create mode 100644 buildroot/package/rtw89-morrownr/Config.in create mode 100644 buildroot/package/rtw89-morrownr/rtw89-morrownr.hash create mode 100644 buildroot/package/rtw89-morrownr/rtw89-morrownr.mk diff --git a/buildroot/board/common/linux-5ghz-softmac.config b/buildroot/board/common/linux-5ghz-softmac.config new file mode 100644 index 0000000..37f2e37 --- /dev/null +++ b/buildroot/board/common/linux-5ghz-softmac.config @@ -0,0 +1,18 @@ +CONFIG_ATH10K=m +CONFIG_ATH10K_USB=m + +CONFIG_WLAN_VENDOR_INTERSIL=y +CONFIG_P54_COMMON=m +CONFIG_P54_USB=m + +CONFIG_MT7663U=m +CONFIG_RT2800USB_UNKNOWN=y + +CONFIG_WLAN_VENDOR_RSI=y +CONFIG_RSI_91X=m +CONFIG_RSI_USB=m + +# CONFIG_RTW88_8723DU is not set +# CONFIG_RTW88_8821CU is not set +# CONFIG_RTW88_8822BU is not set +# CONFIG_RTW88_8822CU is not set diff --git a/buildroot/board/orangepizero3/linux-orangepi-zero3-extra.config b/buildroot/board/orangepizero3/linux-orangepi-zero3-extra.config index 6452665..82f9bbb 100644 --- a/buildroot/board/orangepizero3/linux-orangepi-zero3-extra.config +++ b/buildroot/board/orangepizero3/linux-orangepi-zero3-extra.config @@ -7,3 +7,5 @@ # Those symbols only exist when MFD_AC200 is built, so vmlinux fails to link # without it. The stock linux_sunxi64_defconfig omits MFD_AC200. CONFIG_MFD_AC200=y + +# CONFIG_RTL8821CU is not set diff --git a/buildroot/board/raspberrypi/linux-6.12-5ghz-softmac.config b/buildroot/board/raspberrypi/linux-6.12-5ghz-softmac.config new file mode 100644 index 0000000..8f5c5e2 --- /dev/null +++ b/buildroot/board/raspberrypi/linux-6.12-5ghz-softmac.config @@ -0,0 +1 @@ +CONFIG_RTL8192DU=m diff --git a/buildroot/configs/vanilla_orangepi_zero2w_defconfig b/buildroot/configs/vanilla_orangepi_zero2w_defconfig index b962633..2463b42 100644 --- a/buildroot/configs/vanilla_orangepi_zero2w_defconfig +++ b/buildroot/configs/vanilla_orangepi_zero2w_defconfig @@ -16,7 +16,7 @@ BR2_LINUX_KERNEL_CUSTOM_GIT=y BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://github.com/orangepi-xunlong/linux-orangepi.git" BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="orange-pi-6.1-sun50iw9" BR2_LINUX_KERNEL_DEFCONFIG="linux_sunxi64" -BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_VANILLA_PATH)/board/orangepizero3/linux-orangepi-zero3-extra.config" +BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_VANILLA_PATH)/board/orangepizero3/linux-orangepi-zero3-extra.config $(BR2_EXTERNAL_VANILLA_PATH)/board/common/linux-5ghz-softmac.config" BR2_LINUX_KERNEL_DTS_SUPPORT=y BR2_LINUX_KERNEL_INTREE_DTS_NAME="allwinner/sun50i-h618-orangepi-zero2w" BR2_LINUX_KERNEL_DTB_KEEP_DIRNAME=y @@ -28,8 +28,18 @@ BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_PANFROST=y BR2_PACKAGE_MESA3D_OPENGL_EGL=y BR2_PACKAGE_MESA3D_OPENGL_ES=y BR2_PACKAGE_LINUX_FIRMWARE=y +BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_7010=y +BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_9170=y +BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_10K_QCA9377=y +BR2_PACKAGE_LINUX_FIRMWARE_MEDIATEK_MT7610E=y +BR2_PACKAGE_LINUX_FIRMWARE_MEDIATEK_MT76X2E=y +BR2_PACKAGE_LINUX_FIRMWARE_MEDIATEK_MT7921=y +BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT73=y BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT2XX=y BR2_PACKAGE_LINUX_FIRMWARE_RTL_RTW88=y +BR2_PACKAGE_LINUX_FIRMWARE_REDPINE_RS9113=y +BR2_PACKAGE_LINUX_FIRMWARE_REDPINE_RS9116=y +BR2_PACKAGE_RTW88_LWFINGER=y BR2_PACKAGE_ALSA_LIB=y BR2_TARGET_ROOTFS_EXT2=y BR2_TARGET_ROOTFS_EXT2_4=y diff --git a/buildroot/configs/vanilla_orangepi_zero3_defconfig b/buildroot/configs/vanilla_orangepi_zero3_defconfig index bbd1a59..f1b11e6 100644 --- a/buildroot/configs/vanilla_orangepi_zero3_defconfig +++ b/buildroot/configs/vanilla_orangepi_zero3_defconfig @@ -17,7 +17,7 @@ BR2_LINUX_KERNEL_CUSTOM_GIT=y BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://github.com/orangepi-xunlong/linux-orangepi.git" BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="orange-pi-6.1-sun50iw9" BR2_LINUX_KERNEL_DEFCONFIG="linux_sunxi64" -BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_VANILLA_PATH)/board/orangepizero3/linux-orangepi-zero3-extra.config" +BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_VANILLA_PATH)/board/orangepizero3/linux-orangepi-zero3-extra.config $(BR2_EXTERNAL_VANILLA_PATH)/board/common/linux-5ghz-softmac.config" BR2_LINUX_KERNEL_DTS_SUPPORT=y BR2_LINUX_KERNEL_INTREE_DTS_NAME="allwinner/sun50i-h618-orangepi-zero3" BR2_LINUX_KERNEL_DTB_KEEP_DIRNAME=y @@ -29,8 +29,18 @@ BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_PANFROST=y BR2_PACKAGE_MESA3D_OPENGL_EGL=y BR2_PACKAGE_MESA3D_OPENGL_ES=y BR2_PACKAGE_LINUX_FIRMWARE=y +BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_7010=y +BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_9170=y +BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_10K_QCA9377=y +BR2_PACKAGE_LINUX_FIRMWARE_MEDIATEK_MT7610E=y +BR2_PACKAGE_LINUX_FIRMWARE_MEDIATEK_MT76X2E=y +BR2_PACKAGE_LINUX_FIRMWARE_MEDIATEK_MT7921=y +BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT73=y BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT2XX=y BR2_PACKAGE_LINUX_FIRMWARE_RTL_RTW88=y +BR2_PACKAGE_LINUX_FIRMWARE_REDPINE_RS9113=y +BR2_PACKAGE_LINUX_FIRMWARE_REDPINE_RS9116=y +BR2_PACKAGE_RTW88_LWFINGER=y BR2_PACKAGE_ALSA_LIB=y BR2_TARGET_ROOTFS_EXT2=y BR2_TARGET_ROOTFS_EXT2_4=y diff --git a/buildroot/configs/vanilla_raspberrypi0w_defconfig b/buildroot/configs/vanilla_raspberrypi0w_defconfig index 65cbbb0..e8b98ee 100644 --- a/buildroot/configs/vanilla_raspberrypi0w_defconfig +++ b/buildroot/configs/vanilla_raspberrypi0w_defconfig @@ -12,6 +12,7 @@ BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_TARBALL=y BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,raspberrypi,linux,ac69f097e1fba94502cbd36278db204120a37943)/linux-ac69f097e1fba94502cbd36278db204120a37943.tar.gz" BR2_LINUX_KERNEL_DEFCONFIG="bcmrpi" +BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_VANILLA_PATH)/board/common/linux-5ghz-softmac.config $(BR2_EXTERNAL_VANILLA_PATH)/board/raspberrypi/linux-6.12-5ghz-softmac.config" BR2_LINUX_KERNEL_DTS_SUPPORT=y BR2_LINUX_KERNEL_INTREE_DTS_NAME="broadcom/bcm2708-rpi-zero-w" BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y @@ -26,7 +27,21 @@ BR2_PACKAGE_SDL2_OPENGLES=y BR2_PACKAGE_SDL2_IMAGE=y BR2_PACKAGE_SDL2_TTF=y BR2_PACKAGE_LINUX_FIRMWARE=y +BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_7010=y +BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_9170=y +BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_10K_QCA9377=y +BR2_PACKAGE_LINUX_FIRMWARE_MEDIATEK_MT7610E=y +BR2_PACKAGE_LINUX_FIRMWARE_MEDIATEK_MT76X2E=y +BR2_PACKAGE_LINUX_FIRMWARE_MEDIATEK_MT7921=y +BR2_PACKAGE_LINUX_FIRMWARE_MEDIATEK_MT7925=y +BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT73=y BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT2XX=y +BR2_PACKAGE_LINUX_FIRMWARE_RTL_RTW88=y +BR2_PACKAGE_LINUX_FIRMWARE_RTL_RTW89=y +BR2_PACKAGE_LINUX_FIRMWARE_REDPINE_RS9113=y +BR2_PACKAGE_LINUX_FIRMWARE_REDPINE_RS9116=y +BR2_PACKAGE_RTW88_LWFINGER=y +BR2_PACKAGE_RTW89_MORROWNR=y BR2_PACKAGE_RPI_FIRMWARE=y BR2_PACKAGE_RPI_FIRMWARE_BOOTCODE_BIN=y BR2_PACKAGE_RPI_FIRMWARE_VARIANT_PI=y diff --git a/buildroot/configs/vanilla_raspberrypizero2w_64_defconfig b/buildroot/configs/vanilla_raspberrypizero2w_64_defconfig index 38915f0..e7056b9 100644 --- a/buildroot/configs/vanilla_raspberrypizero2w_64_defconfig +++ b/buildroot/configs/vanilla_raspberrypizero2w_64_defconfig @@ -13,6 +13,7 @@ BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_TARBALL=y BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,raspberrypi,linux,ac69f097e1fba94502cbd36278db204120a37943)/linux-ac69f097e1fba94502cbd36278db204120a37943.tar.gz" BR2_LINUX_KERNEL_DEFCONFIG="bcm2711" +BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_VANILLA_PATH)/board/common/linux-5ghz-softmac.config $(BR2_EXTERNAL_VANILLA_PATH)/board/raspberrypi/linux-6.12-5ghz-softmac.config" BR2_LINUX_KERNEL_DTS_SUPPORT=y BR2_LINUX_KERNEL_INTREE_DTS_NAME="broadcom/bcm2710-rpi-zero-2-w" BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y @@ -27,7 +28,21 @@ BR2_PACKAGE_SDL2_OPENGLES=y BR2_PACKAGE_SDL2_IMAGE=y BR2_PACKAGE_SDL2_TTF=y BR2_PACKAGE_LINUX_FIRMWARE=y +BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_7010=y +BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_9170=y +BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_10K_QCA9377=y +BR2_PACKAGE_LINUX_FIRMWARE_MEDIATEK_MT7610E=y +BR2_PACKAGE_LINUX_FIRMWARE_MEDIATEK_MT76X2E=y +BR2_PACKAGE_LINUX_FIRMWARE_MEDIATEK_MT7921=y +BR2_PACKAGE_LINUX_FIRMWARE_MEDIATEK_MT7925=y +BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT73=y BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT2XX=y +BR2_PACKAGE_LINUX_FIRMWARE_RTL_RTW88=y +BR2_PACKAGE_LINUX_FIRMWARE_RTL_RTW89=y +BR2_PACKAGE_LINUX_FIRMWARE_REDPINE_RS9113=y +BR2_PACKAGE_LINUX_FIRMWARE_REDPINE_RS9116=y +BR2_PACKAGE_RTW88_LWFINGER=y +BR2_PACKAGE_RTW89_MORROWNR=y BR2_PACKAGE_RPI_FIRMWARE=y BR2_PACKAGE_RPI_FIRMWARE_BOOTCODE_BIN=y BR2_PACKAGE_RPI_FIRMWARE_VARIANT_PI=y diff --git a/buildroot/package/Config.in b/buildroot/package/Config.in index 3c28b55..c909416 100644 --- a/buildroot/package/Config.in +++ b/buildroot/package/Config.in @@ -1,6 +1,8 @@ source "$BR2_EXTERNAL_VANILLA_PATH/package/nexmon/Config.in" source "$BR2_EXTERNAL_VANILLA_PATH/package/opi-ffmpeg/Config.in" source "$BR2_EXTERNAL_VANILLA_PATH/package/rpi-ffmpeg/Config.in" +source "$BR2_EXTERNAL_VANILLA_PATH/package/rtw88-lwfinger/Config.in" +source "$BR2_EXTERNAL_VANILLA_PATH/package/rtw89-morrownr/Config.in" source "$BR2_EXTERNAL_VANILLA_PATH/package/vanilla/Config.in" source "$BR2_EXTERNAL_VANILLA_PATH/package/nvidia-tegra-bsp/Config.in" source "$BR2_EXTERNAL_VANILLA_PATH/package/joycond/Config.in" diff --git a/buildroot/package/rtw88-lwfinger/Config.in b/buildroot/package/rtw88-lwfinger/Config.in new file mode 100644 index 0000000..a8b10fe --- /dev/null +++ b/buildroot/package/rtw88-lwfinger/Config.in @@ -0,0 +1,10 @@ +comment "rtw88-lwfinger needs a Linux kernel to be built" + depends on !BR2_LINUX_KERNEL + +config BR2_PACKAGE_RTW88_LWFINGER + bool "rtw88-lwfinger" + depends on BR2_LINUX_KERNEL + help + Realtek rtw88 drivers + + https://github.com/lwfinger/rtw88 diff --git a/buildroot/package/rtw88-lwfinger/rtw88-lwfinger.hash b/buildroot/package/rtw88-lwfinger/rtw88-lwfinger.hash new file mode 100644 index 0000000..fe82ae7 --- /dev/null +++ b/buildroot/package/rtw88-lwfinger/rtw88-lwfinger.hash @@ -0,0 +1,3 @@ +# Locally calculated +sha256 d35a5169bd908ef13a06859afd0a423bc99601be41957d585e9fea3f6bedcf83 rtw88-lwfinger-a56bcd26e770257612a0803249cbd4095fc6feca.tar.gz +sha256 85f0d42a0fb2a97a96bdec2ac462e7587dac9c15d3232067dfaf8dddc4a817d7 main.c diff --git a/buildroot/package/rtw88-lwfinger/rtw88-lwfinger.mk b/buildroot/package/rtw88-lwfinger/rtw88-lwfinger.mk new file mode 100644 index 0000000..9b7c0df --- /dev/null +++ b/buildroot/package/rtw88-lwfinger/rtw88-lwfinger.mk @@ -0,0 +1,11 @@ +RTW88_LWFINGER_VERSION = a56bcd26e770257612a0803249cbd4095fc6feca +RTW88_LWFINGER_SITE = $(call github,lwfinger,rtw88,$(RTW88_LWFINGER_VERSION)) +RTW88_LWFINGER_LICENSE = GPL-2.0 or BSD-3-Clause +RTW88_LWFINGER_LICENSE_FILES = main.c + +RTW88_LWFINGER_MODULE_MAKE_OPTS = \ + CONFIG_PCI= \ + CONFIG_MMC= + +$(eval $(kernel-module)) +$(eval $(generic-package)) diff --git a/buildroot/package/rtw89-morrownr/0001-make-git-commit-overridable.patch b/buildroot/package/rtw89-morrownr/0001-make-git-commit-overridable.patch new file mode 100644 index 0000000..5437544 --- /dev/null +++ b/buildroot/package/rtw89-morrownr/0001-make-git-commit-overridable.patch @@ -0,0 +1,6 @@ +--- a/Makefile ++++ b/Makefile +@@ -121 +121,2 @@ +-ccflags-y += -DGIT_COMMIT=$(shell git --git-dir=$(src)/.git rev-parse HEAD) ++RTW89_GIT_COMMIT ?= unknown ++ccflags-y += -DGIT_COMMIT=$(RTW89_GIT_COMMIT) diff --git a/buildroot/package/rtw89-morrownr/Config.in b/buildroot/package/rtw89-morrownr/Config.in new file mode 100644 index 0000000..88f0b7d --- /dev/null +++ b/buildroot/package/rtw89-morrownr/Config.in @@ -0,0 +1,10 @@ +comment "rtw89-morrownr needs a Linux kernel to be built" + depends on !BR2_LINUX_KERNEL + +config BR2_PACKAGE_RTW89_MORROWNR + bool "rtw89-morrownr" + depends on BR2_LINUX_KERNEL + help + Realtek rtw89 drivers + + https://github.com/morrownr/rtw89 diff --git a/buildroot/package/rtw89-morrownr/rtw89-morrownr.hash b/buildroot/package/rtw89-morrownr/rtw89-morrownr.hash new file mode 100644 index 0000000..15257d3 --- /dev/null +++ b/buildroot/package/rtw89-morrownr/rtw89-morrownr.hash @@ -0,0 +1,3 @@ +# Locally calculated +sha256 1902debd5f0e102c371967c82da6f5135c073833321dbc2fa88c728acf74dab3 rtw89-morrownr-08b8d326937a200a706ec9c501374eec15835b5a.tar.gz +sha256 e83b886f883826eb97b216673d9acf34280039b8eb25d5aae0d37acc8535dbf9 core.c diff --git a/buildroot/package/rtw89-morrownr/rtw89-morrownr.mk b/buildroot/package/rtw89-morrownr/rtw89-morrownr.mk new file mode 100644 index 0000000..e365a18 --- /dev/null +++ b/buildroot/package/rtw89-morrownr/rtw89-morrownr.mk @@ -0,0 +1,18 @@ +RTW89_MORROWNR_VERSION = 08b8d326937a200a706ec9c501374eec15835b5a +RTW89_MORROWNR_SITE = $(call github,morrownr,rtw89,$(RTW89_MORROWNR_VERSION)) +RTW89_MORROWNR_LICENSE = GPL-2.0 or BSD-3-Clause +RTW89_MORROWNR_LICENSE_FILES = core.c + +RTW89_MORROWNR_MODULE_MAKE_OPTS = \ + CONFIG_PCI= \ + RTW89_GIT_COMMIT=$(RTW89_MORROWNR_VERSION) + +define RTW89_MORROWNR_INSTALL_USB_STORAGE_CONF + $(INSTALL) -D -m 0644 $(@D)/usb_storage.conf \ + $(TARGET_DIR)/etc/modprobe.d/rtw89-usb-storage.conf +endef +RTW89_MORROWNR_POST_INSTALL_TARGET_HOOKS += \ + RTW89_MORROWNR_INSTALL_USB_STORAGE_CONF + +$(eval $(kernel-module)) +$(eval $(generic-package))