In which we enable WiFi on the Wandboard Dual and Quad.
I have come to the time in a project where my glorious BeagleBone Black is sturggling to keep up. What to do? Fire up the Wandboard Quad! As with the BeagleBone Black, I prefer to run Arch Linux Arm. And as before, WiFi does not immediately work (despite WiFi being built into the Wandboard Quad). Luckily getting WiFi running is much easier than on the BeagleBone Black.
The WiFi chip on the Wandboard Dual and Quad is a Broadcom BCM4329 connected via SDIO and requires both a firmware and nvram in order to work.
First, we will load the nvram. The command below will fetch the nvram from Freescale's github (Freescale is the maker of the processor used on the Wandboard) and place it in the proper directory.
wget -c https://raw.github.com/Freescale/meta-fsl-arm-extra/master/recipes-bsp/broadcom-nvram-config/files/wandboard/nvram.txt
sudo mv -v nvram.txt /lib/firmware/brcm/brcmfmac-sdio.txt
Next we need to rename the firmware already present in Arch Linux Arm. This is required because the kernel Arch uses for the Wanboard is v3.0.35-3 and for kernels older than v3.13, the SDIO driver used generic firmware names.
cp -v /lib/firmware/brcm/brcmfmac4329-sdio.bin /lib/firmware/brcm/brcmfmac-sdio.bin
Now reboot the Wandboard. When it comes back up, the output of ip link should list wlan0 as an option.
With the WiFi adapter recognized, we can connect to the router.
pacman -S wpa_actiond
Create a base config file
cp -v /etc/netctl/examples/wireless-wpa-configsection /etc/netctl/wireless_wpa_configsection
Generate the required wpa_supplicant config data
wpa_passphrase SSID PASSWORD
Insert the config section into your config file
Now test out the connection
netctl start wireless_wpa_configsection
Assuming no errors, set WiFi to load at boot
systemctl enable email@example.com
Note 1: Loading the firmware and nvram is not necessarily specific to Arch Linux Arm. If your flavor of Linux does not recognize the WiFi adapter, give it a go.
Note 2: Since the adapter is connected using SDIO, it will not show up in the output of lspci -k or lsusb -v
 Broadcom Linux drivers