iw

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 
make install
cd include
make install

iw

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

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

OpenSSL

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

wpa_supplicant

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

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

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