From 293e86eda93c60e6d0713ee674074b9206b89580 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Josef=20S=C3=B6ntgen?= Date: Mon, 17 Sep 2018 16:37:48 +0200 Subject: [PATCH] wifi_drv: update README to reflect current state Issue #2988. --- repos/dde_linux/README | 122 ++++++++++++++++++++++------------------- 1 file changed, 65 insertions(+), 57 deletions(-) diff --git a/repos/dde_linux/README b/repos/dde_linux/README index a2228aa5d7..1802740759 100644 --- a/repos/dde_linux/README +++ b/repos/dde_linux/README @@ -185,21 +185,19 @@ WIFI The wifi_drv component is a port of the Linux mac802.11 stack, including the iwlwifi driver as well as libnl and wpa_supplicant, to Genode. -Configuration snippet: +To start the component the following configuration snippet can be used: -! -! +! +! ! ! -! -! -! -! -! -! -! -! -! +! +! +! +! +! +! +! ! ! ! @@ -207,27 +205,54 @@ Configuration snippet: ! ! +! +! + +To temporarily prevent any radio activity, the 'rfkill' attribute +can be set to 'true'. + +If the network is protected by, e.g., WPA/WPA2, the protection type, either +'WPA' or 'WPA2' as well as the the passphrase have to be specified. +The 'bssid' attribute can be used to select a specifc accesspoint within a +network. Of all attributes only the 'ssid' attribute is mandatory, all others +are optional and should only be used when needed. + +The configuration may contain more than one network. In This case the driver +will try to select the best one it gets a response from. To prevent it +from automatically joining the network the 'auto_connect' attribute must be +set to 'false'; the default value is 'true'. If the 'explicit_scan' attribute +is set, the driver will pro-actively scan for a hidden network with the given +SSID: + +! +! +! +! + +By default, the driver scans for available networks only when not connected. This can be changed with the 'connected_scan_interval' -config attribute, which specifies the interval for connected scans in -seconds, e.g. +attribute, which specifies the interval for connected scans in +seconds and directly influences any roaming decision, i.e., select +a better fit accesspoint for the configured network. -!... - -Also, the driver can be switched to verbose logging with - -!... +Also, the driver can be switched to verbose logging during runtime +by setting the 'verbose' or 'verbose_state' attribute to 'true'. The wifi_drv creates two distinct reports to communicate its state and information about the wireless infrastructure to other components. The first one is a list of all available accesspoints. The following examplary -report shows its structure: +report shows its general structure: -! +! ! -! -! -! +! +! +! Each accesspoint node has attributes that contain the SSID and the BSSID of the accesspoint as well as the link quality (signal strength). These @@ -237,44 +262,27 @@ have an attribute describing the type of protection in addition. The second report provides information about the state of the connection to the currently connected accesspoint: -! -! -! +! +! +! -Valid state values are 'connected', 'disconnected', 'connecting' and -'disconnecting'. +Valid state values are 'connected', 'disconnected', 'connecting'. Depending +on the state, there are additional attributes that can be checked. In case +of an authentication error, e.g. the passphrase is wrong, the 'auth_failure' +attribute will be set to 'true'. The 'rfkilled' attribute is set to 'true' +if a disconnect was triggered by disabling the radio activity via setting +the 'rfkill' attribute. -In return, the wifi_drv get its configuration via a ROM module. This ROM -module contains the configuration for the selected accesspoint. -To connect to an open accesspoint a configuration like the following is used: +By subscribing to both reports and providing the required 'wifi_config' ROM +module, a component is able control the wireless driver. -! - -If the network is protected by, e.g., WPA/WPA2, the protection type as well -as the the pre-shared key have to be specified: - -! - -If a network consists of several different access points and a particular one -should be used it can be selected by specifing its BSSID in a 'bssid' -attribute. - -Of all attributes only the 'ssid' attribute is mandatory, all others are -optional and should only be used when needed. - -To disconnect from an accesspoint, a empty configuration is sent: - -! - -By subscribing to both reports and providing the required ROM module, a -component can control the wireless driver. An example therefore is the Qt -based component in 'src/app/qt_wifi_connect'. - -Currently only WPA/WPA2 protection using a pre-shared key is supported. +Currently only WPA/WPA2 protection using a passphrase is supported and the the +SSID is copied verbatim. At the moment, there is no way to express or escape +non alphanumeric characters. On certain cards, e.g. Intel Wireless 6200 ABG, it may be necessary to disable the 11n mode. This can be achieved by setting the 'use_11n' attribute in -the config node to 'no'. +the 'wifi_config' node to 'no'. lx_kit