summaryrefslogtreecommitdiffstats
path: root/README.rst
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2022-05-23 15:27:48 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2022-05-23 16:26:30 +0200
commit47281722c4686c01461e016af73e6e78d449faae (patch)
treeee1f3496a8d065531f19d8d8efc942ac2eb30e45 /README.rst
parentlibbsd.txt: Move PF description (diff)
downloadrtems-libbsd-47281722c4686c01461e016af73e6e78d449faae.tar.bz2
libbsd.txt: Move WLAN description
Diffstat (limited to 'README.rst')
-rw-r--r--README.rst65
1 files changed, 65 insertions, 0 deletions
diff --git a/README.rst b/README.rst
index 257c9603..48adcb20 100644
--- a/README.rst
+++ b/README.rst
@@ -448,6 +448,71 @@ Currently, PF on RTEMS always uses the configuration for memory restricted
systems (on FreeBSD that means systems with less than 100 MB RAM). This is
fixed in ``pfctl_init_options()``.
+Wireless Network (WLAN)
+=======================
+
+The LibBSD provides a basic support for WLAN. Note that currently this support
+is still in an early state. The WLAN support is _not_ enabled in the default
+buildset. You have to configure LibBSD with the
+``--buildset=buildset/everything.ini`` to enable that feature.
+
+Configuration
+-------------
+
+The following gives a rough overview over the necessary steps to connect to an
+encrypted network with an RTL8188EU based WiFi dongle:
+
+* Reference all necessary module for your BSP. For some BSPs this is already
+ done in the ``nexus-devices.h``:
+
+ .. code-block:: none
+
+ SYSINIT_MODULE_REFERENCE(wlan_ratectl_none);
+ SYSINIT_MODULE_REFERENCE(wlan_sta);
+ SYSINIT_MODULE_REFERENCE(wlan_amrr);
+ SYSINIT_MODULE_REFERENCE(wlan_wep);
+ SYSINIT_MODULE_REFERENCE(wlan_tkip);
+ SYSINIT_MODULE_REFERENCE(wlan_ccmp);
+ SYSINIT_DRIVER_REFERENCE(rtwn_usb, uhub);
+
+* Create your wlan device using ifconfig:
+
+ .. code-block:: none
+
+ ifconfig wlan0 create wlandev rtwn0 up
+
+* Start a ``wpa_supplicant`` instance for that device:
+
+ .. code-block:: none
+
+ wpa_supplicant_fork -Dbsd -iwlan0 -c/media/mmcsd-0-0/wpa_supplicant.conf
+
+Note that the wpa_supplicant will only be active till the device goes down. A
+workaround is to just restart it every time it exits.
+
+Known Restrictions
+------------------
+
+* The network interface (e.g. wlan0) is currently not automatically created. It
+ would be nice, if some service would create it as soon as for example a USB
+ device is connected. In FreeBSD the names are assigned via rc.conf with lines
+ like ``wlans_rtwn0="wlan0"``.
+
+* ``wpa_supplicant`` hast to be started after the device is created. It has to be
+ restarted every time the connection goes down. Instead of this behaviour,
+ there should be some service that starts and restarts ``wpa_supplicant``
+ automatically if a interface is ready. Probably the dhcpcd hooks could be used
+ for that.
+
+* The current ``wpa_supplicant`` implementation is protected with a lock so it can't
+ be started more than one time. If multiple interface should be used, all have
+ to be handled by that single instance. That makes it hard to add interfaces
+ dynamically. ``wpa_supplicant`` should be reviewed thoroughly whether multiple
+ instances could be started in parallel.
+
+* The control interface of ``wpa_supplicant`` most likely doesn't work. The wpa_cli
+ application is not ported.
+
Updating RTEMS Waf Support
==========================