{"adoption": {"forks": 230, "observed_at": "2026-08-28T04:04:04.326465+00:00", "stars": 1231}, "canonical_url": "https://ross.abutalabs.com/products/88x2bu-20210702", "card": {"archived": false, "artifact_type": "library", "description": "Linux Driver for USB WiFi Adapters that are based on the RTL8812BU and RTL8822BU Chipsets - v5.13.1", "domain": ["operating-systems", "hardware", "networking", "embedded-systems"], "enriched": true, "function": ["networking", "security", "developer-tools"], "health_score": 80, "homepage": null, "language": "C", "license": "NOASSERTION", "license_family": "other", "maturity": "maintenance", "member_repos": ["morrownr/88x2bu-20210702"], "name": "morrownr/88x2bu-20210702", "platform": ["embedded", "cli"], "pushed_at": "2026-08-25T22:34:53+00:00", "repo": "morrownr/88x2bu-20210702", "stars": 1231, "tags": ["wifi-driver", "realtek", "rtl8812bu", "rtl8822bu", "usb-wifi", "kernel-module", "raspberry-pi", "hostapd", "monitor-mode", "out-of-tree-driver", "linux"], "topics": ["raspberry-pi", "usb", "debian", "ubuntu", "wifi", "linux-mint", "linux-driver", "realtek", "rtl88x2bu", "rtl8812bu", "hostapd"], "urls": [], "use_cases": ["get a Realtek RTL8812BU USB WiFi adapter working on Ubuntu or Debian", "install WiFi driver on Raspberry Pi for a USB dongle", "use a USB WiFi adapter in monitor mode for packet capture with Wireshark or aircrack-ng", "set up a wireless access point with hostapd using a Realtek USB adapter", "enable WPA3 on a Realtek 88x2bu USB WiFi adapter", "build a WiFi driver for kernel 6.x on Linux Mint"], "what_it_is": "An out-of-tree Linux kernel driver for USB WiFi adapters based on Realtek RTL8812BU and RTL8822BU chipsets, based on Realtek's v5.13.1 source with community updates. It supports client, AP, monitor, and P2P modes across kernels 5.10-6.14 and multiple CPU architectures including ARM and RISC-V.", "when_to_avoid": ["your distro uses kernel 6.12 or later - the in-kernel rtw88 driver is standards compliant and better", "your adapter uses a different Realtek chipset", "you need hcxdumptool compatibility, which is not supported"], "when_to_choose": ["you run a kernel between 5.10 and 6.14 and need this specific chipset working", "you need AP mode, monitor mode, or packet injection on an RTL8812BU/RTL8822BU adapter", "you use a Raspberry Pi or ARM device with a compatible USB WiFi dongle"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/88x2bu-20210702", "repo": "morrownr/88x2bu-20210702", "role": "main", "score": 77}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:04.326465+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T08:22:30.768126+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "73cd77b5ad30332e063726c7cc208934ad6f61427da7c259ea7491740c10e0c7", "fetched_at": "2026-08-28T04:04:04.326465+00:00", "kind": "readme", "missing": false, "url": "https://github.com/morrownr/88x2bu-20210702"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:04.326465+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T08:22:30.768126+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "73cd77b5ad30332e063726c7cc208934ad6f61427da7c259ea7491740c10e0c7", "fetched_at": "2026-08-28T04:04:04.326465+00:00", "kind": "readme", "missing": false, "url": "https://github.com/morrownr/88x2bu-20210702"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T08:22:30.768126+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "73cd77b5ad30332e063726c7cc208934ad6f61427da7c259ea7491740c10e0c7", "fetched_at": "2026-08-28T04:04:04.326465+00:00", "kind": "readme", "missing": false, "url": "https://github.com/morrownr/88x2bu-20210702"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:04:04.326465+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:04.326465+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:04.326465+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T08:22:30.768126+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "73cd77b5ad30332e063726c7cc208934ad6f61427da7c259ea7491740c10e0c7", "fetched_at": "2026-08-28T04:04:04.326465+00:00", "kind": "readme", "missing": false, "url": "https://github.com/morrownr/88x2bu-20210702"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:04.326465+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:04.326465+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T08:22:30.768126+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "73cd77b5ad30332e063726c7cc208934ad6f61427da7c259ea7491740c10e0c7", "fetched_at": "2026-08-28T04:04:04.326465+00:00", "kind": "readme", "missing": false, "url": "https://github.com/morrownr/88x2bu-20210702"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:04.326465+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:04.326465+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:04.326465+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T08:22:30.768126+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "73cd77b5ad30332e063726c7cc208934ad6f61427da7c259ea7491740c10e0c7", "fetched_at": "2026-08-28T04:04:04.326465+00:00", "kind": "readme", "missing": false, "url": "https://github.com/morrownr/88x2bu-20210702"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:04.326465+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:04.326465+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T08:22:30.768126+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "73cd77b5ad30332e063726c7cc208934ad6f61427da7c259ea7491740c10e0c7", "fetched_at": "2026-08-28T04:04:04.326465+00:00", "kind": "readme", "missing": false, "url": "https://github.com/morrownr/88x2bu-20210702"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T08:22:30.768126+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "73cd77b5ad30332e063726c7cc208934ad6f61427da7c259ea7491740c10e0c7", "fetched_at": "2026-08-28T04:04:04.326465+00:00", "kind": "readme", "missing": false, "url": "https://github.com/morrownr/88x2bu-20210702"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T08:22:30.768126+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "73cd77b5ad30332e063726c7cc208934ad6f61427da7c259ea7491740c10e0c7", "fetched_at": "2026-08-28T04:04:04.326465+00:00", "kind": "readme", "missing": false, "url": "https://github.com/morrownr/88x2bu-20210702"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T08:22:30.768126+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "73cd77b5ad30332e063726c7cc208934ad6f61427da7c259ea7491740c10e0c7", "fetched_at": "2026-08-28T04:04:04.326465+00:00", "kind": "readme", "missing": false, "url": "https://github.com/morrownr/88x2bu-20210702"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_releases", "no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 1771, "days_push": 8, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 77, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}