rtl8723au_bt
rtl8723au_bt copied to clipboard
3.17.6-1-ARCH There is no controller in bluetoothctl
Hello. I am using ArchLinux now with 3.17.6-1 kernel and Lenovo yoga 13 ideapad. My bluetooth is not working. As I explained here https://github.com/lwfinger/rtl8723au/issues/53 about wifi, I have blacklisted r8723au, and then probed 8723au. My /etc/modprobe.d/mywifi.conf is the following
#blacklisting kernel's wifi
blacklist r8723au
#probing aur's wifi
8723au
Now I am trying to get bluetooth work. I have git cloned this repo, made it and installed. By the way, it says
[root@yoga ~]# modprobe btusb
libkmod: kmod_config_parse: /etc/modprobe.d/mywifi.conf line 5: ignoring bad line starting with '8723au'
for some reason... If I run #bluetoothctl there are not any controllers shown. Please, help me.
You need to run 'sudo make install' in the repo for 8723au, and delete that line of mywifi.conf. Blacklisting r8723au is needed, but that is enough. When the kernel scans the USB system, it will find the USB ID and load 8723au.
For the BT, I suggest you use the "new" branch, rather than "master", and again make and sudo make install. After I do that and reboot,bluetoothctl finds the controller, and entering "scan on" shows my cell phone, which has BT enabled for use in the car.
Thanks for quick reply. I have already installed AUR package https://aur.archlinux.org/packages/dkms-8723au-git/ which I believe is the same as make, sudo make install 8723au. Thanks for advice, I deleted probing line. In rtl8723au_bt directory I run
make clean
git checkout new
make
And here what I got:
yoga% LANG=en_US.UTF-8 make
make -C /lib/modules/3.17.6-1-ARCH/build M=/home/ndr/builds/rtl8723au_bt modules
make[1]: Entering directory '/usr/lib/modules/3.17.6-1-ARCH/build'
CC [M] /home/ndr/builds/rtl8723au_bt/btusb.o
/home/ndr/builds/rtl8723au_bt/btusb.c:478:12: error: static declaration of ‘hci_recv_fragment’ follows non-static declaration
static int hci_recv_fragment(struct hci_dev *hdev, int type, void *data,
^
In file included from /home/ndr/builds/rtl8723au_bt/btusb.c:29:0:
include/net/bluetooth/hci_core.h:928:5: note: previous declaration of ‘hci_recv_fragment’ was here
int hci_recv_fragment(struct hci_dev *hdev, int type, void *data, int count);
^
scripts/Makefile.build:263: recipe for target '/home/ndr/builds/rtl8723au_bt/btusb.o' failed
make[2]: *** [/home/ndr/builds/rtl8723au_bt/btusb.o] Error 1
Makefile:1373: recipe for target '_module_/home/ndr/builds/rtl8723au_bt' failed
make[1]: *** [_module_/home/ndr/builds/rtl8723au_bt] Error 2
make[1]: Leaving directory '/usr/lib/modules/3.17.6-1-ARCH/build'
Makefile:15: recipe for target 'all' failed
make: *** [all] Error 2
yoga%
I cannot make it. Is it my mistake or code error? You got 8723au hardware?
By the way, when I am running sudo wifi-menu
Scanning for networks... ioctl[SIOCSIWAP]: Operation not permitted
ioctl[SIOCSIWENCODEEXT]: Invalid argument
ioctl[SIOCSIWENCODEEXT]: Invalid argument
done
Maybe this is the problem? I just do not know, but want to provide full information.
I had failed to push my latest changes. It should build now after a git pul.
I have no idea what the AUR package does.
I have completely remove my local repo folder, than I git cloned this repo again (rtl8723au_bt). Nothing changed, as I can see. While I run make I got the same error as desribed above. Are you talking about this https://github.com/lwfinger/rtl8723au_bt/pull/8 pull? Maybe I can do such changes in rtk_btusb.c manually in cloned repo? But there are several candidates to change in branch 'new' and I do not know what file to change:
rtl8723au_bt/btusb.c
rtl8723au_bt/Linux_BT_USB_2.11.20140423_8723BE/btusb.c
rtl8723au_bt/Linux_BT_USB_2.11.20140423_8723BE/rtk_btusb.c
rtl8723au_bt/Linux_BT_USB_2.11.20140423_8723BE/bluetooth_usb_driver/rtk_btusb.c
Please, help. What exactly should I do?
Here is my sequence of steps:
finger@linux:~> git clone http://github.com/lwfinger/rtl8723au_bt.git temp Cloning into 'temp'... remote: Counting objects: 143, done. remote: Total 143 (delta 0), reused 0 (delta 0) Receiving objects: 100% (143/143), 324.46 KiB | 475.00 KiB/s, done. Resolving deltas: 100% (67/67), done. Checking connectivity... done. finger@linux:~> cd temp finger@linux:~/temp> git checkout new Branch new set up to track remote branch new from origin. Switched to a new branch 'new' finger@linux:~/temp> make make -C /lib/modules/3.18.0-wd+/build M=/home/finger/temp modules make[1]: Entering directory '/home/finger/wireless-drivers' CC [M] /home/finger/temp/btusb.o Building modules, stage 2. MODPOST 1 modules CC /home/finger/temp/btusb.mod.o LD [M] /home/finger/temp/btusb.ko make[1]: Leaving directory '/home/finger/wireless-drivers' finger@linux:~/temp>
I am using a 3.18 kernel, but it should work with 3.17 unless ARCH is messing around with kernel sources the way that Ubuntu has been doing lately.
Hmm, strange... My sequence is the same. But when run make I still got error. Then, what should I do to make package? Are you running Arch? I have tried to build it on other PC (needed to install linux-headers), but the errer is still there.
The part of the code that is erroring is inside the compiler directives:
#ifndef hci_recv_fragment
#endif
I have no idea why that code is being compiled if one of your headers is defining hci_recv_fragment. There is something wrong with you kernel headers. No, I do not use Arch.
I just pushed a change that might help.
Oh, thanks for quick reply. And thanks for fix. It is buildable now. I run make, then sudo make install, then reboot. But there are still not any controller in bluetoothctl prompt. Do I need some additional steps, such as blacklisting original btusb or something? After reboot, I have the following:
[root@yoga ~]# lsmod |grep btusb
btusb 29911 0
rtk_btusb 21697 0
bluetooth 402850 11 bnep,btusb,rtk_btusb,rfcomm
usbcore 199381 9 btusb,uvcvideo,rtsx_usb,rtk_btusb,ehci_hcd,ehci_pci,usbhid,8723au,xhci_hcd
When you did "sudo make install", you replaced the standard btusb. If you blacklist it, then nothing will load. On the other hand, rtk_btusb must not be loaded. Either blacklist it, or delete it from the /lib/modules/... tree. That is what is screwing up your BT.
Still not working. I have blacklisted module rtk_btusb, then reboot and here what I get:
[root@yoga ~]# lsmod |grep bt
[root@yoga ~]# lsmod |grep btusb
[root@yoga ~]# lsmod |grep bluetooth
bluetooth 402850 8 bnep,rfcomm
rfkill 18867 4 ideapad_laptop,bluetooth
crc16 12343 2 ext4,bluetooth
[root@yoga ~]#
[root@yoga ~]# rfkill list
0: ideapad_wlan: Wireless LAN
Soft blocked: no
Hard blocked: no
1: ideapad_bluetooth: Bluetooth
Soft blocked: yes
Hard blocked: no
[root@yoga ~]# rfkill unblock all
[root@yoga ~]#
[root@yoga ~]# bluetoothctl
[bluetooth]# list
[bluetooth]# quit
[root@yoga ~]#
Strange, for now I have btusb loaded, but still there is no controller in bluetooth prompt (I have checked, that bluetooth is not rfkilled) :
[root@yoga ~]# lsmod | grep btusb
btusb 29911 0
bluetooth 402850 9 bnep,btusb,rfcomm
usbcore 199381 8 btusb,uvcvideo,rtsx_usb,ehci_hcd,ehci_pci,usbhid,8723au,xhci_hcd
[root@yoga ~]#
[root@yoga ~]# bluetoothctl
[bluetooth]# quit
[root@yoga ~]#
Have you any suggestions?
No. I do not have any RTL8723AU devices, but it works fine with RTL8723AE and RTL8723BE.
What does 'hcitool dev' show?
Nothing:
[root@yoga ~]# hcitool dev
Devices:
[root@yoga ~]#
What does the command lsusb show?
Here is my lsusb
[root@yoga ~]# lsusb
Bus 004 Device 004: ID 5986:029c Acer, Inc
Bus 004 Device 003: ID 2047:0855 Texas Instruments Invensense Embedded MotionApp HID Sensor
Bus 004 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 006: ID 04f3:000a Elan Microelectronics Corp. Touchscreen
Bus 003 Device 005: ID 0bda:1724 Realtek Semiconductor Corp. RTL8723AU 802.11n WLAN Adapter
Bus 003 Device 004: ID 0bda:0129 Realtek Semiconductor Corp. RTS5129 Card Reader Controller
Bus 003 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
[root@yoga ~]#
I see here Realtek Semiconductor Corp. RTL8723AU 802.11n WLAN Adapter. Is it for wifi and bluetooth at the same time or no? If no, does it means that my bluetooth usb device is missing?
Also, I have checked if some options in UEFI interface can cause problem. I have disabled DPTF (Dynamic Platform and Thermal Framework), disabled Intel Virtual Technology and disabled Secure boot. Result is the same: all is the same as described above.
Apparently, Realtek only has created a single USB ID for the two devices. At the moment, I am not sure if there is any way to have both wifi and BT at the same time.
As a test, please try the following:
sudo modprobe -rv 8723au sudo modprobe -rv btusb sudo modprobe -v btusb
Does bluetoothctl or hcidev show a BT controller now?
Negative
[root@yoga ~]# sudo modprobe -rv 8723au
rmmod 8723au
[root@yoga ~]# sudo modprobe -rv btusb
rmmod btusb
[root@yoga ~]# sudo modprobe -v btusb
insmod /lib/modules/3.17.6-1-ARCH/kernel/drivers/bluetooth/btusb.ko.gz reset=1
[root@yoga ~]#
[root@yoga ~]# hcidev
-bash: hcidev: command not found
[root@yoga ~]#
[root@yoga ~]# hcitool dev
Devices:
[root@yoga ~]# bluetoothctl
[bluetooth]# power on
No default controller available
[bluetooth]# quit
[root@yoga ~]#
Rfkill is not causing, because I checked, that neither wifi nor bluetooth was soft or hard blocked. After that, I again modprobed 8723au to be able to write this comment. Do I need to reboot for this test?
A reboot was not needed. Please post the output of
lsusb -v -d 0bda:1724
Here you are
[root@yoga ~]# lsusb -v -d 0bda:1724
Bus 003 Device 005: ID 0bda:1724 Realtek Semiconductor Corp. RTL8723AU 802.11n WLAN Adapter
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 239 Miscellaneous Device
bDeviceSubClass 2
bDeviceProtocol 1 Interface Association
bMaxPacketSize0 64
idVendor 0x0bda Realtek Semiconductor Corp.
idProduct 0x1724 RTL8723AU 802.11n WLAN Adapter
bcdDevice 2.00
iManufacturer 1 Realtek
iProduct 2 802.11n WLAN Adapter
iSerial 3 00e04c000001
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 222
bNumInterfaces 3
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xe0
Self Powered
Remote Wakeup
MaxPower 500mA
Interface Association:
bLength 8
bDescriptorType 11
bFirstInterface 0
bInterfaceCount 2
bFunctionClass 224 Wireless
bFunctionSubClass 1 Radio Frequency
bFunctionProtocol 1 Bluetooth
iFunction 4 Bluetooth Radio
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 3
bInterfaceClass 224 Wireless
bInterfaceSubClass 1 Radio Frequency
bInterfaceProtocol 1 Bluetooth
iInterface 4 Bluetooth Radio
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0010 1x 16 bytes
bInterval 4
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x02 EP 2 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 224 Wireless
bInterfaceSubClass 1 Radio Frequency
bInterfaceProtocol 1 Bluetooth
iInterface 4 Bluetooth Radio
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x03 EP 3 OUT
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0000 1x 0 bytes
bInterval 4
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0000 1x 0 bytes
bInterval 4
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 1
bNumEndpoints 2
bInterfaceClass 224 Wireless
bInterfaceSubClass 1 Radio Frequency
bInterfaceProtocol 1 Bluetooth
iInterface 4 Bluetooth Radio
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x03 EP 3 OUT
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0009 1x 9 bytes
bInterval 4
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0009 1x 9 bytes
bInterval 4
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 2
bNumEndpoints 2
bInterfaceClass 224 Wireless
bInterfaceSubClass 1 Radio Frequency
bInterfaceProtocol 1 Bluetooth
iInterface 4 Bluetooth Radio
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x03 EP 3 OUT
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0011 1x 17 bytes
bInterval 4
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0011 1x 17 bytes
bInterval 4
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 3
bNumEndpoints 2
bInterfaceClass 224 Wireless
bInterfaceSubClass 1 Radio Frequency
bInterfaceProtocol 1 Bluetooth
iInterface 4 Bluetooth Radio
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x03 EP 3 OUT
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0019 1x 25 bytes
bInterval 4
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0019 1x 25 bytes
bInterval 4
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 4
bNumEndpoints 2
bInterfaceClass 224 Wireless
bInterfaceSubClass 1 Radio Frequency
bInterfaceProtocol 1 Bluetooth
iInterface 4 Bluetooth Radio
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x03 EP 3 OUT
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0021 1x 33 bytes
bInterval 4
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0021 1x 33 bytes
bInterval 4
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 5
bNumEndpoints 2
bInterfaceClass 224 Wireless
bInterfaceSubClass 1 Radio Frequency
bInterfaceProtocol 1 Bluetooth
iInterface 4 Bluetooth Radio
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x03 EP 3 OUT
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0031 1x 49 bytes
bInterval 4
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0031 1x 49 bytes
bInterval 4
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 0
bNumEndpoints 4
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 255 Vendor Specific Subclass
bInterfaceProtocol 255 Vendor Specific Protocol
iInterface 2 802.11n WLAN Adapter
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x84 EP 4 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x05 EP 5 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x06 EP 6 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x87 EP 7 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 3
Device Qualifier (for other device speed):
bLength 10
bDescriptorType 6
bcdUSB 2.00
bDeviceClass 0
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
bNumConfigurations 1
can't get debug descriptor: Resource temporarily unavailable
Device Status: 0x0001
Self Powered
[root@yoga ~]#
OK, your device has more USB end points than does the BT part of my RTL8723BE. We need to see why it is being rejected in the probe step. Please pull from the repo, and rebuild with make and ;sudo make install'. After that, do the following:
sudo modprobe -rv btusb sudo modprobe -v btusb
There should be some entries at the end of the dmesg output, starting with
btusb_probe intf ....
Post that line and those that follow.
Did this several times. But I cannot see any string in dmesg output containing "btusb_probe" The are only lines with information about probe or remove
[ndr@yoga rtl8723au_bt]$ sudo make install
[sudo] password for ndr:
depmod -a /lib/modules/3.17.6-1-ARCH
installed revised btusb
[ndr@yoga rtl8723au_bt]$
[ndr@yoga rtl8723au_bt]$ sudo modprobe -rv btusb
rmmod btusb
[ndr@yoga rtl8723au_bt]$ sudo modprobe -r btusb
[ndr@yoga rtl8723au_bt]$ dmesg > ~/out.txt
[ndr@yoga rtl8723au_bt]$
There was such line[ 429.224967] usbcore: deregistering interface driver btusb
Oops, sorry... There are something there... Do not know it appears because of I rfkilled unblock all of because dmesg was written to file... (Wait a minute, I will provide needed lines. There was strings beginning with RTL8723AU: ERROR saying that I still have disconnections wifi, but they are quickly restores back. That is wifi driver problem, not relevant to this bluetooth issue).
EDIT: Please, sorry, I did modprobe -r instead of modprobe -v. In the comment below I did probe properly.
By the way, is there a way to always automatically rfkill unblock all after reboot?
Now I again removed and probed btusb. I have
usbcore: registered new interface driver btusb
line in dmesg output. So, I think problem is not in probing. By the way, if you are about why btusb is not probing automatically: as you can remember, I have blacklisted rtk_btusb. After that even btusb is not loaded automatically.
If it is not probing, then it will never work!
I mean, when I blacklist rtk_btusb, then btusb is not AUTOMATICALLY loading. If I probe it manually it probes. What do you mean If it is not probing, then it will never work? It should work after I modprobe btusb? What I should do? I can delete rtk_btusb from the /lib/modules/... tree.
You can load it with modprobe, but the code will only start if the SB ID is recognized, and that is not happening. I do not know why. Module rtk_btusb has nothing to do with the problem.
I have written the maintainer of r8723au to see if he is using BT. Maybe he will have some info.
Ok, thank you! I will wait for responding.
FYI, there is a new 'kernel' branch that has code that will be in kernel 3.21. It handles the Realtek devices just like any other kernel device. Thus far, no changes for older kernels have been included. As problems are reported, I will fix them.
I have the same problem than @laptander . Wifi is working great but not bluetooth. I followed your sequence + sudo make install
at the end. I've also tried the sudo modprobe btusb
. The module is loaded without any error, I can see it in an lsmod | grep btusb
but bluetoothctl
does not seem to find any device.
Do you have any idea?
@Erwyn, I did the following and it solved problem:
git clone https://github.com/lwfinger/rtl8723au_bt.git
git checkout kernel
make
sudo make install
sudo systemctl stop bluetooth
sudo modprobe -rv btusb
sudo modprobe -v btusb
sudo systemctl start bluetooth
After that bluetoothctl showed me my controller. Make sure you removed and probed btusb again, because it did not worked without it for me.
Sometimes a cold reboot is necessary after the new driver and firmware are installed. These devices change the lmp_subver readout after firmware is loaded. Thus the device will not be recognized following a unload/reload of the driver or a warm reboot, and the firmware will not be reloaded.
I'm having the same issue, and the commands @laptander posted don't work:
[repos]$ git clone https://github.com/lwfinger/rtl8723au_bt.git
Cloning into 'rtl8723au_bt'...
remote: Counting objects: 257, done.
remote: Total 257 (delta 0), reused 0 (delta 0), pack-reused 257
Receiving objects: 100% (257/257), 450.73 KiB | 225.00 KiB/s, done.
Resolving deltas: 100% (136/136), done.
Checking connectivity... done.
[repos]$ cd rtl8723au_bt/
[rtl8723au_bt]$ git checkout kernel
Branch kernel set up to track remote branch kernel from origin.
Switched to a new branch 'kernel'
[rtl8723au_bt]$ make
make -C /lib/modules/4.0.7-2-ARCH/build M=/home/dkniffin/repos/rtl8723au_bt modules
make[1]: Entering directory '/usr/lib/modules/4.0.7-2-ARCH/build'
make[1]: *** No rule to make target 'modules'. Stop.
make[1]: Leaving directory '/usr/lib/modules/4.0.7-2-ARCH/build'
Makefile:24: recipe for target 'all' failed
make: *** [all] Error 2
Your setup for building out-of-kernel drivers is wrong. As I do not use ARCH, I do not know the exact steps needed. Check on their forums for instructions.
Woot! Got it working. I needed to install the linux-headers package.
If /lib/modules/uname -r
/build is not a link to the directory with your kernel headers, then the build will fail. That is true for all out-of-kernel drivers.
Hi lwfinger,
I am trying to compile the branch Kernel. I am working in Ubuntu. Kernel : 3.13.0-76-generic linux-headers are installed..... however i become the following error when i do make:
make -C /lib/modules/3.13.0-76-generic/build M=/home/raul/tmp/blueth/rtl8723au_bt modules
make[1]: Entering directory /usr/src/linux-headers-3.13.0-76-generic' CC [M] /home/raul/tmp/blueth/rtl8723au_bt/btusb.o /home/raul/tmp/blueth/rtl8723au_bt/btusb.c: In function ‘btusb_setup_csr’: /home/raul/tmp/blueth/rtl8723au_bt/btusb.c:1364:11: error: ‘HCI_QUIRK_BROKEN_STORED_LINK_KEY’ undeclared (first use in this function) set_bit(HCI_QUIRK_BROKEN_STORED_LINK_KEY, &hdev->quirks); ^ /home/raul/tmp/blueth/rtl8723au_bt/btusb.c:1364:11: note: each undeclared identifier is reported only once for each function it appears in /home/raul/tmp/blueth/rtl8723au_bt/btusb.c: In function ‘btusb_intel_bootup’: /home/raul/tmp/blueth/rtl8723au_bt/btusb.c:1769:3: error: implicit declaration of function ‘smp_mb__after_atomic’ [-Werror=implicit-function-declaration] smp_mb__after_atomic(); ^ /home/raul/tmp/blueth/rtl8723au_bt/btusb.c: In function ‘btusb_setup_intel_new’: /home/raul/tmp/blueth/rtl8723au_bt/btusb.c:2030:11: error: ‘HCI_QUIRK_INVALID_BDADDR’ undeclared (first use in this function) set_bit(HCI_QUIRK_INVALID_BDADDR, &hdev->quirks); ^ /home/raul/tmp/blueth/rtl8723au_bt/btusb.c:2143:2: error: implicit declaration of function ‘wait_on_bit_timeout’ [-Werror=implicit-function-declaration] err = wait_on_bit_timeout(&data->flags, BTUSB_DOWNLOADING, ^ /home/raul/tmp/blueth/rtl8723au_bt/btusb.c:2224:2: error: implicit declaration of function ‘request_firmware_direct’ [-Werror=implicit-function-declaration] err = request_firmware_direct(&fw, fwname, &hdev->dev); ^ /home/raul/tmp/blueth/rtl8723au_bt/btusb.c: In function ‘btusb_probe’: /home/raul/tmp/blueth/rtl8723au_bt/btusb.c:2708:7: error: ‘struct hci_dev’ has no member named ‘shutdown’ hdev->shutdown = btusb_shutdown_intel; ^ /home/raul/tmp/blueth/rtl8723au_bt/btusb.c:2709:7: error: ‘struct hci_dev’ has no member named ‘set_bdaddr’ hdev->set_bdaddr = btintel_set_bdaddr; ^ /home/raul/tmp/blueth/rtl8723au_bt/btusb.c:2710:11: error: ‘HCI_QUIRK_STRICT_DUPLICATE_FILTER’ undeclared (first use in this function) set_bit(HCI_QUIRK_STRICT_DUPLICATE_FILTER, &hdev->quirks); ^ /home/raul/tmp/blueth/rtl8723au_bt/btusb.c:2711:11: error: ‘HCI_QUIRK_SIMULTANEOUS_DISCOVERY’ undeclared (first use in this function) set_bit(HCI_QUIRK_SIMULTANEOUS_DISCOVERY, &hdev->quirks); ^ /home/raul/tmp/blueth/rtl8723au_bt/btusb.c:2717:7: error: ‘struct hci_dev’ has no member named ‘hw_error’ hdev->hw_error = btintel_hw_error; ^ /home/raul/tmp/blueth/rtl8723au_bt/btusb.c:2718:7: error: ‘struct hci_dev’ has no member named ‘set_bdaddr’ hdev->set_bdaddr = btintel_set_bdaddr; ^ /home/raul/tmp/blueth/rtl8723au_bt/btusb.c:2723:7: error: ‘struct hci_dev’ has no member named ‘set_bdaddr’ hdev->set_bdaddr = btusb_set_bdaddr_marvell; ^ /home/raul/tmp/blueth/rtl8723au_bt/btusb.c:2726:11: error: ‘HCI_QUIRK_FIXUP_INQUIRY_MODE’ undeclared (first use in this function) set_bit(HCI_QUIRK_FIXUP_INQUIRY_MODE, &hdev->quirks); ^ /home/raul/tmp/blueth/rtl8723au_bt/btusb.c:2727:11: error: ‘HCI_QUIRK_BROKEN_LOCAL_COMMANDS’ undeclared (first use in this function) set_bit(HCI_QUIRK_BROKEN_LOCAL_COMMANDS, &hdev->quirks); ^ /home/raul/tmp/blueth/rtl8723au_bt/btusb.c:2734:7: error: ‘struct hci_dev’ has no member named ‘set_bdaddr’ hdev->set_bdaddr = btusb_set_bdaddr_ath3012; ^ /home/raul/tmp/blueth/rtl8723au_bt/btusb.c:2741:7: error: ‘struct hci_dev’ has no member named ‘set_bdaddr’ hdev->set_bdaddr = btusb_set_bdaddr_ath3012; ^ cc1: some warnings being treated as errors make[2]: *** [/home/raul/tmp/blueth/rtl8723au_bt/btusb.o] Error 1 make[1]: *** [_module_/home/raul/tmp/blueth/rtl8723au_bt] Error 2 make[1]: Leaving directory
/usr/src/linux-headers-3.13.0-76-generic'
make: *** [all] Error 2
do you have a tip for me? I have a lenovo ideapad 11s . Using the branch "new" i am able to use bluetooth... however everytime i disconnect the bluetooth device ... and try to reconnect it... i get some crash and i got to delete and again setup the device.
The "kernel" branch is only for kernels 4.1 or later. For 3.13, you probably need to switch to the "master" branch. If that does not work, then try the "troy" branch.
Just to add a data point: the sequence above, posted by @laptander on 30 Jun 2015, worked for me on a Yoga 11s.