iw is a new nl80211 (802.11 netlink interface) based CLI configuration utility for wireless devices.
iw requires the Netlink Protocol Library Suite (libnl)
Download, cross compile and install the Netlink Protocol libraries:
wget http://www.infradead.org/~tgr/libnl/files/libnl-3.2.24.tar.gz tar -xzf libnl-3.2.24.tar.gz cd libnl-3.2.24 ./configure --host=arm-linux-gnueabi --prefix=/usr/arm-linux-gnueabi make make install cd include make install
With the Netlink Protocol Library Suite prerequisite installed, download and build the iw nl80211 based CLI configuration utility:
wget https://www.kernel.org/pub/software/network/iw/iw-3.15.tar.gz tar -xzf iw-3.15.tar.gz cd iw-3.15/ export PKG_CONFIG_PATH=/usr/arm-linux-gnueabi/lib/pkgconfig export CC=arm-linux-gnueabi-gcc make
Manually install iw and required libraries on your target root-fs:
cp iw /home/export/rootfs/sbin/ cp /usr/arm-linux-gnueabi/lib/libnl-genl-3.so.200 /home/export/rootfs/lib/ cp /usr/arm-linux-gnueabi/lib/libnl-3.so.200 /home/export/rootfs/lib/
And update the dynamic linker run-time bindings on your target:
ldconfig -v
wpa_supplicant is a WPA Supplicant for linux offering support for WPA and WPA2.
wpa_supplicant requires the Netlink Protocol Library Suite (libnl) version 1.x.
Download, build and install libnl-1.x:
wget http://www.infradead.org/~tgr/libnl/files/libnl-1.1.4.tar.gz tar -xzf libnl-1.1.4.tar.gz cd libnl-1.1.4 ./configure --host=arm-linux-gnueabi --prefix=/usr/arm-linux-gnueabi make make install
OpenSSL is a library for Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS v1).
Download, build and install OpenSSL:
wget https://www.openssl.org/source/openssl-1.0.1h.tar.gz tar -xzf openssl-1.0.1h.tar.gz cd openssl-1.0.1h export ARCH=arm export CROSS_COMPILE=arm-linux-gnueabi- ./Configure linux-generic32 --prefix=/usr/arm-linux-gnueabi make make install
With all the prerequisites installed, finally download, build and install the wpa_supplicant:
wget http://hostap.epitest.fi/releases/wpa_supplicant-2.2.tar.gz tar -xzf wpa_supplicant-2.2.tar.gz cd wpa_supplicant-2.2/wpa_supplicant cp defconfig .config make CC=arm-linux-gnueabi-gcc make install DESTDIR=/home/export/rootfs
To be able to use wpa_supplicant on your target, it requires the following libraries to be installed:
cp /usr/arm-linux-gnueabi/lib/libnl.so.1.1.4 /home/export/rootfs/lib/ cp /usr/arm-linux-gnueabi/lib/libcrypto.so.1.0.0 /home/export/rootfs/lib/ cp /usr/arm-linux-gnueabi/lib/libssl.so.1.0.0 /home/export/rootfs/lib/
wpa_supplicant runs as a daemon and requires a configuration file. Create a file called /etc/wpa_supplicant.conf with the following contents:
network={ ssid="MySSID" key_mgmt=WPA-PSK proto=RSN pairwise=CCMP TKIP psk="MyPassPhrase" }
The above file works with both WPA (TKIP) and WPA2 (CCMP/AES). Please insert your access point name at MySSID and your pass phrase at MyPassPhase.
Once configured, wpa_supplicant can be started using:
wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant.conf
hostapd is an 802.11 Access Point and IEEE 802.1X/WPA/WPA2/EAP/RADIUS Authenticator daemon.
Download, extract and build hostapd:
wget http://hostap.epitest.fi/releases/hostapd-2.2.tar.gz tar -xzf hostapd-2.2.tar.gz cd hostapd-2.2/hostapd cp defconfig .config make CC=arm-linux-gnueabi-gcc make install DESTDIR=/home/export/rootfs
rfkill is a userspace tool to query the state of the rfkill switches.
Download, extract and build rfkill:
wget https://www.kernel.org/pub/software/network/rfkill/rfkill-0.5.tar.gz tar -xzf rfkill-0.5.tar.gz cd rfkill-0.5/ make CC=arm-linux-gnueabi-gcc