Trying to get wireless (WL1271) driver working on Beaglebone


I’ve made a lot of progress toward getting WLAN working with the TiWi-R2 wireless chip on my custom cape board. I’ve made updates to arch/arm/mach-omap2/board-am335xevm.c for my wireless chip, based on the wireless support already in this file for the EVM board. Now when the kernel boots, my code executes and the proper kernel modules are automatically loading (wl12xx_sdio.ko, wl12xx.ko, mac80211.ko, cfg80211.ko, rfkill.ko.). This is good news,

However, I see this error in the dmesg output:
[ 36.471130] wl1271: ERROR could not get nvs file: -2
[ 36.519317] ieee80211 phy0: Failed to initialize wep: -2

I’m not sure what is causing the “Failed to initialize wep” error.

I did some googling on the “could not get nvs file” message. It seems I have to copy the contents of the “ti-connectivity” folder to /lib/firmware on the beaglebone. However, I can’t find this folder among the Angstrom source code, nor does it seem to be built when I build the kernel.

I’ve built the kernel with this command: bitbake virtual/kernel

I’ve built the entire systemd-image with this command: bitbake systemd-image

Where can I get, or how do I build, the missing wl1271 firmware? Is there a bitbake command to build it?

I did find this among the stuff I built: am335x-pm-firmware.bin. Is this what I need?

Any help on what I’m doing wrong, or what I should be doing, would be greatly appreciated.

Tim M;a=tree;f=ti-connectivity;hb=HEAD

Just copy the files into that folder...


On the Angstrom distribution, you can also do:

opkg install linux-firmware-wl12xx