Skip to content

Awesome-Embedded-Learning-Studio/rtl8733bu-linux-driver

Repository files navigation

rtl8733bu-linux-driver

Out-of-tree Linux driver for the Realtek RTL8733BU USB WiFi+BT combo chip (USB id 0bda:b733), ported to build and run on Linux 7.1.

There is no mainline driver for this chip (mainline rtw89 tops out at 8851/8922; rtl8xxxu does not cover 8733B; nothing binds 0bda:b733). This repo carries a port of the wirenboard out-of-tree driver to Linux 7.1.

Provenance

Realtek Semiconductor Corp (original vendor driver, GPL-2.0)
        │
        ▼
wirenboard/rtl8733bu  (branch v5.15.12-264_for6.18; upstream-tested to 5.10.x / 6.8.x)
        │
        ▼
this repo, branch linux-7.1-port  (rk-forge / Awesome-Embedded-Learning-Studio port to 7.1)

The linux-7.1-port branch is v5.15.12-264_for6.18 plus the port commits below. The full wirenboard history is preserved in the branch ancestry (attribution). Realtek's per-file copyright + GPL-2.0 headers are preserved in every source file. (wirenboard's README noted 5.10.x / 6.8.x fixes + WirenBoard config tuning; this fork's focus is the 6.8 → 7.1 API port.)

What the port changes (3 commits on top of the wirenboard base)

  1. build: replace multi-chip Makefile with static Kbuild — the upstream 2803-line multi-chip Makefile (whose out-of-tree M= path segfaults make on some hosts) is replaced by a static Kbuild: obj-$(CONFIG_RTL8733BU) += 8733bu.o
    • the fully-expanded 187-entry 8733bu-y list + ccflags-y (path macros \"-escaped; CONFIG_BR_EXT stripped — hits a removed 7.x API). Stable in-tree obj-$() build path.
  2. kconfig: depends on USB && CFG80211 — fixes the upstream depends on MMC copy-paste typo (it's a USB device) + adds SPDX + help text.
  3. cfg80211: wdev-ops wrappers for 6.14+ MLO drift — Linux ~6.14 changed 9 cfg80211_ops callbacks from net_device * to wireless_dev *. Rather than rewrite 9 multi-line #if-gated signatures, 9 thin _wdev forwarders (using the driver's existing wdev_to_ndev()) are added before the ops struct; the struct points at them. Plus 2 caller edits. This is the main body of the API port.

Build

In-tree, as a module:

  1. Place this tree at drivers/net/wireless/realtek/rtl8733bu/ inside a Linux 7.1 source tree.
  2. Wire it into the realtek subsystem (2 lines — the consumer repo typically carries this as a patch):
    • drivers/net/wireless/realtek/Kconfig: source "drivers/net/wireless/realtek/rtl8733bu/Kconfig"
    • drivers/net/wireless/realtek/Makefile: obj-$(CONFIG_RTL8733BU) += rtl8733bu/
  3. Kernel config: CONFIG_CFG80211=y (built-in, so the module's deps are present), CONFIG_WLAN_VENDOR_REALTEK=y, CONFIG_RTL8733BU=m. # CONFIG_WLAN is not set must NOT be set (it gates WLAN_VENDOR_REALTEK).
  4. make modulesdrivers/net/wireless/realtek/rtl8733bu/8733bu.ko.

The module must load after the rootfs is mounted (insmod post-switch_root) because the boot flow mounts the UBIFS rootfs (where firmware lives) only then. Firmware loads from a built-in C array at runtime; rtl8733bu_fw / rtl8733bu_config in /lib/firmware/ are an unused fallback.

rk-forge consumes this repo via scripts/fetch-rtl8733bu-driver.sh (clones linux-7.1-port into the kernel tree + applies the 2-line realtek wiring as a quilt patch).

Board verification

Verified on a Rockchip RK3506B board (the aes board in rk-forge) — onboard RTL8733BU (USB 0bda:b733, behind a CH334R hub):

  • insmod 8733bu.ko → probe (CHIP TYPE: RTL8733B, VID/PID 0x0BDA:0xB733)
  • firmware download from array (v1.40)
  • wlan0 + wlan1 created (concurrent mode)
  • iw dev wlan0 scan sees APs; wpa_supplicant + udhcpc connect

Full port detail + pitfalls: rk-forge document/pitfalls/07 + document/notes/29/30.

License

GPL-2.0-only (LICENSE). The code carries Realtek's per-file GPL-2.0 headers (MODULE_LICENSE("GPL")); this repo's top-level LICENSE file documents that grant (the wirenboard repo lacked a repo-level LICENSE file). Realtek Semiconductor Corp. retains copyright on the original driver; this fork's port commits are derivative and likewise GPL-2.0-only.

About

This is a repo that contains the RTL8733bu driver specially for Linux 7.1, forked from https://github.com/wirenboard/rtl8733bu

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages