| Both sides previous revision Previous revision Next revision | Previous revisionLast revisionBoth sides next revision |
| docs:guide-user:network:wifi:wireless.utilities [2018/03/03 20:13] – ↷ Page moved from docs:user-guide:network:wifi:wireless.utilities to docs:guide-user:network:wifi:wireless.utilities bobafetthotmail | docs:guide-user:network:wifi:wireless-tool:wireless.utilities [2023/04/09 23:09] – [iw] Mention statistics for congestion troubleshooting wayfarer |
|---|
| ====== Wireless Utilities ====== | ====== Wireless Utilities ====== |
| As already explained at [[docs:user-guide:network:wifi:wireless.overview]] the Linux IEEE 802.11 subsystem is fragmented. The available tools depend entirely on your [[http://linuxwireless.org/en/users/Drivers|driver]]. Wireless devices have an API different from that of Ethernet devices because the specifications of IEEE 802.11 regulate quite precisely the whole communications process, so it makes sense to NOT implement this requirements in each driver but only once for all drivers and also because there is the problem of the diverging frequency regulations world wide. | As already explained at [[docs:guide-user:network:wifi:wireless.overview]] the Linux IEEE 802.11 subsystem is fragmented. The available tools depend entirely on your [[https://wireless.wiki.kernel.org/en/users/drivers|driver]]. Wireless devices have an API different from that of Ethernet devices because the specifications of IEEE 802.11 regulate quite precisely the whole communications process, so it makes sense to NOT implement this requirements in each driver but only once for all drivers and also because there is the problem of the diverging frequency regulations world wide. |
| |
| ===== mac80211-based drivers (ath9k, b43, brcmfmac, etc.) ===== | ===== mac80211-based drivers (ath9k, b43, brcmfmac, etc.) ===== |
| |
| ==== iwconfig ==== | ==== iwconfig ==== |
| ''[[man>iwconfig]]'' (and ''/proc/net/wireless'') is the configuration utility for the now <color red>obsolete</color> [[http://linuxwireless.org/en/developers/Documentation/Wireless-Extensions|WEXT]] API, which is scheduled for removal. Use ''iw'' or ''iwinfo''. | ''[[https://manpages.debian.org/man/8/iwconfig|iwconfig]]'' (and ''/proc/net/wireless'') is the configuration utility for the now <color red>obsolete</color> [[https://wireless.wiki.kernel.org/en/developers/documentation/wireless-extensions|Wext]] API, which is scheduled for removal. Use ''iw'' or ''iwinfo''. |
| |
| |
| |
| ==== iw ==== | ==== iw ==== |
| ''[[man>iw]]'' is the configuration utility for the [[http://linuxwireless.org/en/developers/Documentation/nl80211/|nl80211]] API. | ''[[https://manpages.debian.org/man/8/iw|iw]]'' is the configuration utility for the [[https://wireless.wiki.kernel.org/en/developers/documentation/nl80211|nl80211]] API. |
| * Add a new virtual interface with the given configuration:<code> | * Add a new virtual interface with the given configuration:<code> |
| iw dev <devname> interface add <name> type <type> [mesh_id <meshid>] [4addr on|off] [flags <flag>*]</code> Valid interface types are: managed, ibss, monitor, mesh, wds. See ->[[http://www.linuxwireless.org/en/users/Documentation/modes|wireless modes]]\\ The flags are only used for monitor interfaces, valid flags are: none, fcsfail, control, otherbss, cook | iw dev <devname> interface add <name> type <type> [mesh_id <meshid>] [4addr on|off] [flags <flag>*]</code> Valid interface types are: managed, ibss, monitor, mesh, wds. See ->[[https://wireless.wiki.kernel.org/en/users/documentation/modes|wireless modes]]\\ The flags are only used for monitor interfaces, valid flags are: none, fcsfail, control, otherbss, cook |
| * Add a new virtual interface with the given configuration:<code> | * Add a new virtual interface with the given configuration:<code> |
| iw phy <phyname> interface add <name> type <type> [flags <flag>*]</code> | iw phy <phyname> interface add <name> type <type> [flags <flag>*]</code> |
| * When in AP-mode, obtain a list of connected clients in STA-mode:<code> | * When in AP-mode, obtain a list of connected clients in STA-mode:<code> |
| iw dev wlan0 station dump | iw dev wlan0 station dump |
| </code> | </code> The above also lists retry and fail packet counts, which are helpful in determining if wireless congestion (e.g. from many nearby 2.4GHz networks on the same channel in an apartment complex) is the source of throughput issues. |
| * Setting regulatory domain. Set your country [[wp>ISO 3166-1 alpha-2]] in capital letters:<code> | * Setting regulatory domain. Set your country [[wp>ISO 3166-1 alpha-2]] in capital letters:<code> |
| iw reg set XX | iw reg set XX |
| * Question: Is there any way to get/set these raw settings (like, whatever it has in EEPROM)? | * Question: Is there any way to get/set these raw settings (like, whatever it has in EEPROM)? |
| * Answer: Your "expectation" of having the freedom to modify the EEPROM is valid as I agree with it too but current (US) legislation does not allow for it. So to support upstream drivers we just cannot allow for those type of changes. You won't get any support if you try to mess with that stuff unless we get a change in legislation that says otherwise. Please refer to: | * Answer: Your "expectation" of having the freedom to modify the EEPROM is valid as I agree with it too but current (US) legislation does not allow for it. So to support upstream drivers we just cannot allow for those type of changes. You won't get any support if you try to mess with that stuff unless we get a change in legislation that says otherwise. Please refer to: |
| * http://wireless.kernel.org/en/vendors/VendorSupport | * https://wireless.wiki.kernel.org/en/vendors/VendorSupport |
| * http://wireless.kernel.org/en/developers/Regulatory/statement | * https://wireless.wiki.kernel.org/en/developers/Regulatory/statement |
| * http://wireless.kernel.org/en/developers/Regulatory | * https://wireless.wiki.kernel.org/en/developers/Regulatory |
| * [[https://git.kernel.org/cgit/linux/kernel/git/linville/wireless-regdb.git/tree/db.txt|Regulations per country]] | * [[https://git.kernel.org/pub/scm/linux/kernel/git/sforshee/wireless-regdb.git/tree/db.txt|Regulations per country]] |
| |
| ==== Hostapd ==== | ==== Hostapd ==== |
| |{{:meta:icons:tango:dialog-information.png?nolink}}| **''wpad''** package is a full featured IEEE 802.1x authenticator/supplicant ([[wp>Wi-Fi Protected Access|WPA]]/[[wp>Extensible Authentication Protocol|EAP]]/[[wp>Remote Authentication Dial In User Service|RADIUS]]), while **''wpad-mini''** only supports WPA-PSK (Pre-shared key). **''wpad''** obsoletes **''hostapd''** and ''[[doc:howto:wireless.utilities_wpa-supplicant|wpa_supplicant]]'' as it offers both authentication service for the access point mode and supplicant services for the wireless client mode in one package. | | |{{:meta:icons:tango:dialog-information.png?nolink}}| **''wpad''** package is a full featured IEEE 802.1x authenticator/supplicant ([[wp>Wi-Fi Protected Access|WPA]]/[[wp>Extensible Authentication Protocol|EAP]]/[[wp>Remote Authentication Dial In User Service|RADIUS]]), while **''wpad-mini''** only supports WPA-PSK (Pre-shared key). **''wpad''** obsoletes **''hostapd''** and ''[[doc:howto:wireless.utilities_wpa-supplicant|wpa_supplicant]]'' as it offers both authentication service for the access point mode and supplicant services for the wireless client mode in one package. | |
| |
| Also see [[docs:user-guide:network:wifi:encryption#atheros.and.generic.mac80211.wifi]] | Also see [[docs:guide-user:network:wifi:encryption#atheros.and.generic.mac80211.wifi]] |
| |
| FIXME: | FIXME: |
| * The ''hostapd-utils'' just adds a small hostapd_cli command line tool for messaging with the daemon. | * The ''hostapd-utils'' just adds a small hostapd_cli command line tool for messaging with the daemon. |
| |
| * [[docs:user-guide:network:wifi:encryption#atheros.and.generic.mac80211.wifi]] | * [[docs:guide-user:network:wifi:encryption#atheros.and.generic.mac80211.wifi]] |
| |
| * Actually, it's the other way around: hostapd is symlink to wpad, cf. ''/usr/sbin/hostapd -> wpad''. | * Actually, it's the other way around: hostapd is symlink to wpad, cf. ''/usr/sbin/hostapd -> wpad''. |