lwfinger / rtl8723au_bt

Bluetooth driver for RTL8723AE and RTL8723AU
122 stars 64 forks source link

Note:

This repository has multiple branches with different implementations for Realtek bluetooth usb drivers. Depending on your kernel version and your hardware model different branches may or may not work. If you are unsure which branch to use you and you are on a modern kernel you should probably start with the 'kernel' branch. If that doesn't work you are encouraged to try the other branches and to check the github issues.

===========================================================================================================

In this document, we introduce how to support rtk 8723AE/AU BT driver in Linux system. Support kernel version 2.6.32~3.13.0

===========================================================================================================

  1. Install

(1) Change to the directory containing the source files.

make
sudo make install

(2) Insert RTK8723AE/AU dongle

Now RTK8723AE/AU can be recognized by the system and bluetooth function can be used.

===========================================================================================================

  1. Uninstall

(1) unplug RTK8723AE/AU dongle

(2) Uninstall

sudo make uninstall

===========================================================================================================

  1. Install BlueZ

The default BlueZ in Ubuntu maybe out of date New versions can be downloaded from http://www.bluez.org/
If you do not want to install blueZ,skip this step

Here we take Ubuntu 11.10 (linux 3.0.0-12-generic) for example. Make sure system is connected to the internet.

(1) Setting up a Linux build environment

Install dbus
$sudo apt-get install libdbus-1-dev
Install glib
$sudo apt-get install libglib2.0-dev

(2) Decompress and install BlueZ follow Readme file in blueZ-4.96 directory

$sudo tar -zxvf bluez-4.96.tar.gz
$sudo cd bluez-4.96
$sudo ./configure --prefix=/usr --mandir=/usr/share/man --sysconfdir=/etc --localstatedir=/var --libexecdir=/lib
$sudo make && make install

===========================================================================================================

  1. Set Up A2DP Sink

(1) Enable a2dp sink support

Edit /etc/bluetooth/audio.conf by adding this line underneath the [General] 
section:
# This section contains options which are not specific to any
# particular interface
[General]
Enable=Source

After making this change, you will need to restart bluetoothd by running
$sudo service bluetooth restart

(2) Pair your source device and connect to a2dp sink at the source side Once you've done this, the source device should show up as an input device under pulseaudio. Then you need to tell pulseaudio to route this audio input to your output (such as your speakers, or a bluetooth headset). You can do this from the commandline using the pactl command:

$pactl load-module module-loopback source=$BTSOURCE sink=$SINK

for example: 
pactl load-module module-loopback source=bluez_source.14_DA_E9_2A_D7_57 sink=alsa_output.pci-0000_00_14.2.analog-stereo
You can find your own values for source and sink with 
$pacmd list-sources 
$pacmd list-sinks

Be careful however to remove this loopback connection before you drop this audio connection! 
pulseaudio appears to re-connect the loopback connection to the next available audio input when
the connection drops, so if for instance your laptop microphone is unmuted, you may get some
very bad feedback. To drop this loopback connection when you're done, run:

$pactl unload-module $(pactl list short modules | grep "loopback.*$BTSOURCE" | cut -f1)

Again, replace "$BTSOURCE" with the name for the pulseaudio source that refers to your bluetooth device.

(3) You can use BLuetooth management applications such as blueman Search and Connect to your Audio source in blueman instead of step(2)

===========================================================================================================

  1. Configure Remote Wakeup Function

(1) Check your vendor and product id of bluetooth device with lsusb

$lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 002: ID 0bda:1724 Realtek Semiconductor Corp. 
Bus 002 Device 002: ID 0e0f:0003 VMware, Inc. Virtual Mouse
Bus 002 Device 003: ID 0e0f:0002 VMware, Inc. Virtual USB Hub
Bus 002 Device 004: ID 0e0f:0008 VMware, Inc.

(2) Create a new rule in /etc/udev/rules.d/ with the name "90-bluetoothwakeup.rules" for example, by the way the name is not important,

$sudo gedit /etc/udev/rules.d/90-bluetoothwakeup.rules

insert the following codes in the file:
    SUBSYSTEM=="usb", ATTRS{idVendor}=="0bda", ATTRS{idProduct}=="1724" RUN+="/bin/sh -c 'echo enabled > /sys$env{DEVPATH}/../power/wakeup'"

In my case, the idVendor="0bda" and idProduct="1724". echo "enabled" or "disabled" to enable or disable bluetooth remote wakeup ability.
    then save and close the file .

(3) Reinsert the RTK8723AE/AU dongle,now you can wakeup your suspend system by bluetooth device.