iw is a new nl80211 (802.11 netlink interface) based CLI configuration utility for wireless devices.

Netlink Protocol Library Suite

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 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

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.

Netlink Protocol Library Suite libnl-1.x

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 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 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:

 pairwise=CCMP TKIP 

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