logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

rtwn — Realtek IEEE 802.11 wireless network driver

Authors

       The  rtwn  driver  was  initially  written  by  Stefan Sperling <stsp@openbsd.org> and ported by Kevin Lo
       <kevlo@freebsd.org>.    It   was   based   on   the   urtwn   driver   written   by   Damien    Bergamini
       <damien.bergamini@free.fr>.

Bugs

       The rtwn driver currently does not implement firmware-based rate control.

Debian                                           January 7, 2019                                         RTWN(4)

Description

       The  rtwn  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 station, adhoc, hostap and monitor mode operation.   There  are  no  limitations  for
       number  of  monitor  mode  virtual  interfaces;  in  addition  to any other virtual interface one station
       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.

       The rtwn driver can be configured at runtime with ifconfig(8).

Diagnostics

rtwn%d:couldnotreadefusebyteataddress0x%xrtwn%d:%s:cannotreadrom,error%d   There was an error while reading ROM; device attach will be
       aborted.  This should not happen.

       rtwn%d:failedloadfirmwareoffile%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:wrongfirmwaresize(%zu)rtwn%d:%s:failedtouploadfirmware%s(error%d)rtwn%d:timeoutwaitingforfirmwarereadiness  Firmware upload failed; the file might be corrupted.  The
       driver will disable firmware-dependent features.  This should not happen.

       rtwn%d:devicetimeout  A frame dispatched to the hardware for transmission did  not  complete  in  time.
       The driver will reset the hardware.  This should not happen.

Examples

       Join an existing BSS network (i.e., connect to an access point):

             ifconfig wlan create wlandev rtwn0 inet 192.168.0.20 \
                 netmask 0xffffff00

       Join a specific BSS network with network name “my_net”:

             ifconfigwlancreatewlandevrtwn0ssidmy_netup

       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 \
                     channel 4

       Join/create an 802.11b IBSS network with network name “my_net”:

             ifconfig wlan0 create wlandev rtwn0 wlanmode adhoc
             ifconfig wlan0 inet 192.168.0.22 netmask 0xffffff00 ssid my_net \
                     mode 11b

       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

Files

/usr/share/doc/legal/realtek.LICENSErtwn firmware license

       The driver (if not compiled with optionsRTWN_WITHOUT_UCODE ) may use following firmware files, which are
       loaded when an interface is brought up:
             /boot/kernel/rtwn-rtl8188eefw.ko/boot/kernel/rtwn-rtl8188eufw.ko/boot/kernel/rtwn-rtl8192cfwE_B.ko/boot/kernel/rtwn-rtl8192cfwE.ko/boot/kernel/rtwn-rtl8192cfwT.ko/boot/kernel/rtwn-rtl8192cfwU.ko/boot/kernel/rtwn-rtl8192eufw.ko/boot/kernel/rtwn-rtl8812aufw.ko/boot/kernel/rtwn-rtl8821aufw.ko

History

       The urtwn driver first appeared in OpenBSD 4.9 and FreeBSD  10.0;  the  rtwn  driver  first  appeared  in
       OpenBSD 5.8.

Loader Tunables

       Tunables can be set at the loader(8) prompt before booting the kernel or stored in loader.conf(5).

       dev.rtwn.%d.hwcrypto
               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 configurations.
               By default it is set to 1.

       dev.rtwn.%d.ratectl
               This tunable switches between rate control implementations:
               0 - no rate control;
               1 - driver sends 'tx complete' reports to net80211; algorithm is controlled via net80211;
               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 dev.rtwn.%d.ratectl_selected read-only OID.

       dev.rtwn.%d.rx_buf_size
               (USB only) Controls size of temporary Rx buffer; smaller  buffer  size  may  increase  number  of
               interrupts.

Name

       rtwn — Realtek IEEE 802.11 wireless network driver

See Also

intro(4),   netintro(4),   rtwn_pci(4),  rtwn_usb(4),  rtwnfw(4),  wlan(4),  wlan_amrr(4),  wlan_ccmp(4),
       wlan_tkip(4), wlan_wep(4), wlan_xauth(4), hostapd(8), ifconfig(8), wpa_supplicant(8)

Synopsis

optionsRTWN_DEBUGoptionsRTWN_WITHOUT_UCODE

       To compile this driver into the kernel, place the following lines in your kernel configuration file:

             devicertwndevicertwnfwdevicertwn_usbdevicertwn_pcidevicewlandevicefirmware

       Alternatively, to load the driver as a module at boot time, place following lines in loader.conf(5):

             if_rtwn_pci_load="YES"
             if_rtwn_usb_load="YES"

See Also