---
name: "rtw88"
section: "4"
platform: "freebsd"
package: "base"
version: "16.0-CURRENT-20261027-61c70dc16a79"
release: "FreeBSD 16.0-CURRENT (2026-10-27)"
platforms: ["freebsd"]
url: "https://new.carta.tech/if_rtw88"
---

# rtw88(4)

Realtek IEEE 802.11n/ac wireless network driver

Part of [if\_rtw88(4)](/if_rtw88/4.md).

## NAME

**rtw88** – Realtek IEEE 802.11n/ac wireless network driver

## SYNOPSIS

The driver will auto-load without any user interaction using [devmatch(8)](/devmatch/8.md) if enabled in [rc.conf(5)](/rc.conf/5.md).

Only if auto-loading is explicitly disabled, place the following lines in [rc.conf(5)](/rc.conf/5.md) to manually load the driver as a module at boot time:

```
kld_list="${kld_list} if_rtw88"
```

It is not possible to load the driver from [loader(8)](/loader/8.md).

## DESCRIPTION

The **rtw88** driver is derived from Realtek's Linux rtw88 driver based on Linux version 7.0.

This driver requires firmware to be loaded before it will work. The package *wifi-firmware-rtw88-kmod* from the *ports/net/wifi-firmware-rtw88-kmod* port needs to be installed before the driver is loaded. Otherwise no [wlan(4)](/wlan/4.md) interface can be created using [ifconfig(8)](/ifconfig/8.md). One can use [fwget(8)](/fwget/8.md) to install the correct firmware package.

The driver uses the [linuxkpi\_wlan(4)](/linuxkpi_wlan/4.md) and [linuxkpi(4)](/linuxkpi/4.md) compat framework to bridge between the Linux and native FreeBSD driver code as well as to the native [net80211(4)](/net80211/4.md) wireless stack.

## HARDWARE

The **rtw88** driver supports PCIe devices with the following chipsets:

- Realtek 802.11n  wireless 8723de (RTL8723DE)

- Realtek 802.11ac wireless 8814ae (RTL8814AE)

- Realtek 802.11ac wireless 8821ce (RTL8821CE)

- Realtek 802.11ac wireless 8822be (RTL8822BE)

- Realtek 802.11ac wireless 8822ce (RTL8822CE)

## LOADER TUNABLES

- *compat.linuxkpi.skb.mem\_limit*

  If you are running a 64bit system with more than 4GB of main memory you need to set this tunable to **1** in [loader.conf(5)](/loader.conf/5.md) and reboot once to make it effective. This tunable will work around a problem with DMA and limit allocations for network buffer memory to the lower 32bit of physical memory and make the driver work.

## SEE ALSO

[linuxkpi(4)](/linuxkpi/4.md), [linuxkpi\_wlan(4)](/linuxkpi_wlan/4.md), [wlan(4)](/wlan/4.md), [networking(7)](/networking/7.md), [fwget(8)](/fwget/8.md), [ifconfig(8)](/ifconfig/8.md), [wpa\_supplicant(8)](/wpa_supplicant/8.md)

## HISTORY

The **rtw88** driver first appeared in FreeBSD 13.2.

## BUGS

Does not seem to work (reliably) on machines with more than 4GB of main memory. See in the LOADER TUNABLES section above.

At least the 8821CE and 8822BE chipsets have trouble associating, which seems to be due to the software scan fallback, the chandef emulation, and net80211 interactions, along with a 6s timeout observed in the driver.

While **rtw88** supports 802.11a/b/g/n/ac modes, the compatibility code currently only supports 802.11a/b/g modes. Support for 802.11n/ac is yet to come.
