Realtek IEEE 802.11 wireless network driver
To compile this driver into the kernel, place the following lines in your kernel
Alternatively, to load the driver as a module at boot time, place following
driver provides support for wireless
network devices based on the Realtek RTL8192C, RTL8188E, RTL8192E, RTL8812A
and RTL8821A programming APIs. These APIs are used by a wide variety of chips;
most chips with USB and some with PCI interface are supported.
To enable use for PCI/PCIe systems, see the rtwn_pci(4) driver; for USB devices,
use the rtwn_usb(4) driver.
The driver supports
mode operation. There are no
limitations for number of
virtual interfaces; in addition to any other virtual interface one
interface can be added (Note:
RTL8821AU supports two non-monitor mode interfaces at the same time).
All chips have hardware support for WEP, AES-CCM and TKIP encryption.
driver can be configured at runtime
rtwn firmware license
The driver (if not compiled with
) may use following firmware files, which are loaded
when an interface is brought up:
Join an existing BSS network (i.e., connect to an access point):
ifconfig wlan create wlandev rtwn0 inet 192.168.0.20 \
Join a specific BSS network with network name
ifconfig wlan create wlandev rtwn0
ssid my_net up
Join a specific BSS network with 64-bit WEP encryption:
ifconfig wlan create wlandev rtwn0 ssid my_net \
wepmode on wepkey 0x1234567890 weptxkey 1 up
Create an IBSS network with 128-bit WEP encryption on the channel 4:
ifconfig wlan create wlandev rtwn0 wlanmode adhoc ssid my_net \
wepmode on wepkey 0x01020304050607080910111213 weptxkey 1 \
Join/create an 802.11b IBSS network with network name
ifconfig wlan0 create wlandev rtwn0 wlanmode adhoc
ifconfig wlan0 inet 192.168.0.22 netmask 0xffffff00 ssid my_net \
Create a host-based access point:
ifconfig wlan0 create wlandev rtwn0 wlanmode hostap
ifconfig wlan0 inet 192.168.0.10 netmask 0xffffff00 ssid my_ap
Tunables can be set at the
prompt before booting the kernel or stored in
- This tunable controls how key slots are assigned:
0 - disable h/w crypto support. Features that require access to frame
contents (e.g., TCP/UDP/IP Rx checksum validation) will not work;
1 - use h/w crypto support for pairwise keys only;
2 - use h/w crypto support for all keys; may not work for multi-vap
By default it is set to 1.
- This tunable switches between rate control implementations:
0 - no rate control;
1 - driver sends 'tx complete' reports to net80211; algorithm is controlled
2 - firmware-based rate control.
By default it is set to 1; however driver may choose another algorithm in
case if it is not implemented
Currently selected algorithm is reported via
- (USB only) Controls size of temporary Rx buffer; smaller buffer size may
increase number of interrupts.
- rtwn%d: could not read efuse byte at address 0x%x
- rtwn%d: %s: cannot read rom, error %d
- There was an error while reading ROM; device attach will be aborted. This
should not happen.
- rtwn%d: failed loadfirmware of file %s
- For some reason, the driver was unable to read the microcode file from the
filesystem. The file might be missing or corrupted. The driver will
disable firmware-dependent features.
- rtwn%d: wrong firmware size (%zu)
- rtwn%d: %s: failed to upload firmware %s (error %d)
- rtwn%d: timeout waiting for firmware readiness
- Firmware upload failed; the file might be corrupted. The driver will
disable firmware-dependent features. This should not happen.
- rtwn%d: device timeout
- A frame dispatched to the hardware for transmission did not complete in
time. The driver will reset the hardware. This should not happen.
driver first appeared in
and FreeBSD 10.0
driver first appeared in
driver was initially written by
and ported by Kevin Lo
It was based on the
driver written by
driver currently does not implement
firmware-based rate control.