Soc ninja title

RTK8723bu and Raspbian 8

Making RTK8723bu work with Raspbian 8

For my Tobor project i needed a Wifi dongle and a Bluetooth dongle with enough range to make fun of the car without losing signal. I opted for trying a really cheap and interesting product that uses a "combo" chip for both WiFi and BT which even has an external antenna. I bought it in ebay for $ 10.95 http://www.ebay.com/itm/401059129692.

After a lot of frustration, trying several versions of the drivers for WiFi and Bluetooth of this chip, in more than 6 kernel versions, I found a combination that works. The Bluetooth driver creates the hci0 interface, scans and connects. The WiFi driver creates the wlan0 device and it even works in master mode with hostapd !

My device is shown as:

# lsusb
Bus 001 Device 004: ID 0bda:b720 Realtek Semiconductor Corp.

Note: according to https://sites.google.com/site/easylinuxtipsproject/reserve-7, that output could be from either the RTK8723bu or the RTK8723au, so be careful, you might need the drivers from https://github.com/lwfinger/rtl8723au.git instead the ones i mention later (haven't tested). The rest of the instructions should be the same. Please report if it works or not for you :-).


Below are the steps i followed, if i recall correctly. Execute everything as root.

Download the Ubuntu 4.2 version of the kernel for RPI 2 and the kernel headers and install them.

# wget http://ports.ubuntu.com/ubuntu-ports/pool/universe/l/linux-raspi2/linux-raspi2-headers-4.2.0-1025_4.2.0-1025.32_armhf.deb
# wget http://ports.ubuntu.com/ubuntu-ports/pool/universe/l/linux-raspi2/linux-headers-4.2.0-1025-raspi2_4.2.0-1025.32_armhf.deb
# wget http://ports.ubuntu.com/ubuntu-ports/pool/universe/l/linux-raspi2/linux-image-4.2.0-1025-raspi2_4.2.0-1025.32_armhf.deb
# dpkg -i *.deb
# apt-get -f install

Make it boot adding kernel=vmlinuz-4.2.0-1025-raspi2 and initramfs initrd.img-4.2.0-1025-raspi2 followkernel to /boot/config.txt. Reboot.

# echo -e "kernel=vmlinuz-4.2.0-1025-raspi2\ninitramfs initrd.img-4.2.0-1025-raspi2 followkernel" | tee -a /boot/config.txt
# reboot

Get the Bluetooth driver, kernel branch:

# git clone https://github.com/lwfinger/rtl8723au_bt.git
# cd rtl8723au_bt
# git checkout kernel
# git pull

Try to compile it. For maximum speed, use the 4 cores with the -j 4 flag. Install and load the module.

# make -j 4
# make install
# modprobe -r btusb
# modprobe -v btusb
# echo btusb >> /etc/modules

Check that it works.

# hciconfig hci0 up
# hcitool scan # Should display any discoverable device around. Try it with your phone's bluetooth activated and discoverable.


Now we do the same with the WiFi driver.

# git clone https://github.com/lwfinger/rtl8723bu.git
# cd rtl8723bu
# make -j 4
# make install
# modprobe -v 8723bu
# echo 8723bu >> /etc/modules

Check that it works.

# iwconfig
# iwlist scan

Master mode with hostapd

The following instructions are to be followed only if you're interested in using the card as an Access Point.

After reading, I found out that, in theory, a patched version of the hostapd daemon is required in order to make this card work, with an special driver called rtl871xdrv instead of the standard one nl80211. This proved not to be true! I patched, compiled and configured and it never worked. For curiosity i tried with the standard driver...and it worked ! So here is the /etc/hostapd/hostapd.conf i used. I left all the comments just for you to know what i tried (it really almost made me get crazy).

#driver=rtl871xdrv
#ieee80211n=1
#device_name=RTL8192CU
#manufacturer=Realtek


driver=nl80211
interface=wlan0
ssid=I_AM_COOL
hw_mode=g
channel=6
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=ReallyCool
#wpa_key_mgmt=WPA-PSK
#wpa_pairwise=TKIP
#rsn_pairwise=CCMP

#driver=rtl871xdrv
beacon_int=100
#hw_mode=g
#ieee80211n=1
#wme_enabled=1
# ht_capab=[SHORT-GI-20][SHORT-GI-40][HT40+]
ht_capab=[SHORT-GI-20][SHORT-GI-40]
wpa_key_mgmt=WPA-PSK
wpa_pairwise=CCMP
max_num_sta=8
wpa_group_rekey=86400

It works with both Debian's hostapd-2.3-1+deb8u3 or the current 2.5 version patched with rtlxdrv.patch.

The rest of the config is pretty standard: a fixed IP address for wlan0 configured in /etc/network/interfaces

allow-hotplug wlan0
iface wlan0 inet static
    address 10.0.0.1
    netmask 255.0.0.0

And a properly configured isc-dhcp-server. I followed the Adafruit's tutorial on setting it up as an Access Point in Master Mode: Setting up a Raspberry Pi as a WiFi access point.

I hope it helps you !




If you found anything useful enough and you want to thank us for that, please consider donating to people who need it, like the NGO OXFAM. Thank you !


Comments

Comments are manually approved. Just be a bit patient :-)

WillB 1 year, 2 months ago

Hi, Just wanted to thank you for writing this up. I have spent ages trying to get this chip working on my RPi and its great that you have taken the time to help people out.

I noticed a couple of things you may want to change. Firstly, most of these commands need to run as root which may not be obvious for some people. Also, you download 4.2.0-1025 headers but added 4.2.0-1013 to the config.txt which then wont boot.

BT works great. No WIFI so far but I'm working on it!

Thanks Again.

Link | Reply
Currently unrated

soc 1 year, 2 months ago

Hi WillB,

Thanks for your comment. I already noted about the root user and changed the kernel and initram minor versions - thanks again, i tried several configurations so i messed it a bit with the documentation.

BTW, what's your problem with the WiFi? In my experience i had more problems with the BT thant with WiFi, like showing the device but never connecting or scaning, etc.

Link | Reply
Currently unrated

WillB 1 year, 2 months ago

Hey,

Sorry, just saw the root comment!

I found that I had to install both the *au and *bu WLAN drivers to make it work. Not sure why.

All working great now.

Thanks again for your hard work.

Will

Link | Reply
Current rating: 5

soc 1 year, 1 month ago

Uhm, it's strange, they should work with different versions of the chipset.
Anyway, it's great you made it work. thanks for commenting.

Link | Reply
Currently unrated

AJB2K3 10 months ago

Thank you, this help me get my device working.

Link | Reply
Currently unrated

New Comment

required

required (not published)

optional

Recent Tweets