UPDATE: The HubPiWi Blue includes this chipset and the instructions for that also work with the USB dongle. I've provided an updated set of instructions here that are a bit simpler and are targetted at Raspbian Jessie. You should use those, instead.
I recently started getting my second RPi setup, only on this one I wanted to use a dual WiFi/Bluetooth USB dongle. I picked a device based on the Realtek RTL8723BU after reading a few posts indicating success. Unfortunately, it doesn’t work “out-of-the-box” with Raspbian Wheezy on Kernel 4.1.13.
Before we Proceed
I’ve been tinkering with RPi’s for a little bit, but I’m by no means an expert. If there are obvious problems with the steps I’m doing here, kick me a comment and I’ll correct them. This worked for me. It might not work for you. I’m assuming you’re on 4.1.13+ installed via NOOBS and you haven’t added/changed much up to this point. If you have, some of the steps (like removing the build/src folder) might already have things in them that you don’t want to lose, so exercise some discretion before running each command. And, of course, this comes with NO WARRANTY expressed or implied – use at your own risk, my friend.
What You’ll Need
Besides the hardware, you’ll need a wired or working wireless connection (using a device other than the one we’re building a module for).
If you’ve done the Raspbian install from NOOBS, you should have all of the necessary packages required to build the driver. If you haven’t, you might need to apt-get build-essential and others that I’m not entirely sure of.
We’ll update the system, clone the git repo for the driver, download the kernel source, set up the build environment, and build the driver.
I’ll also provide the steps I took to get the miserable thing to actually work!
Let’s Get To It
To get this going, you’ll need the kernel source and it’s probably a good idea to make sure you’re all up to date.
apt-get update apt-get upgrade dist-upgrade reboot
You can go run some errands during the dist-upgrade, it took over an hour for me.
To start, get the latest drivers
cd ~/ git clone https://github.com/lwfinger/rtl8723bu.git
If you’ve installed from NOOBS (as I did), at this point, you’re not going to be able to make the driver. You need the kernel headers for the kernel you’re running. Normally, apt-get install linux-headers or something along those lines would do the trick. Not this time.
Unfortunately, when I wrote this, the linux headers for the version of the kernel used by Raspbian, 4.1.13+, were not available from aptitude. After some searching, I found a downloadable debian package that works.
wget https://www.niksula.hut.fi/~mhiienka/Rpi/linux-headers-rpi/linux-headers-4.1.13%2B_4.1.13%2B-2_armhf.deb sudo dpkg –i ./linux-headers-4.1.13+-2_armhf.deb
If you lack one or more of the dependencies, install them with apt-get install <dependency>, then apt-get –f install which will finish up the installation of the headers.
Modifying the Makefile for Raspbian
We’ll need to tweak the Makefile for the driver to build properly. I’m not sure that all of this needs to be added – I grabbed it from several google searches. But, hey, it worked, so here’s what I changed.
Hit CTRL+W and type “CONFIG_PLATFORM_I386_PC =” and hit Enter. Set it to “n”. Add a line below it and type “CONFIG_RASPBIAN = y”.
Hit CTRL+W and type “ifeq ($(CONFIG_BT_COEXIST)” and hit Enter. Insert the following text above that line.
ifeq ($(CONFIG_RASPBIAN), y) EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 EXTRA_CFLAGS += -DRTW_USE_CFG80211_STA_EVENT # only enable when kernel >= 3.2 EXTRA_CFLAGS += -DCONFIG_P2P_IPS ARCH := arm CROSS_COMPILE := arm-linux-gnueabihf- KVER := $(shell uname -r) KSRC ?= /lib/modules/$(KVER)/build MODULE_NAME := 8723bu MODDESTDIR := /lib/modules/$(KVER)/kernel/drivers/net/wireless/ endif
Hit CTRL+X then “Y” to save the file.
sudo –i cd /home/pi/rtl8723bu make && make install
That part took almost an hour on my RPi Model B.
Making It Work
Well, at this point, you can just reboot. But if you want to test prior to rebooting, run the following:
insmod 8723bu.ko ifconfig
You should now see “wlan0” among the network adapters!