You are not logged in.

#1 2019-06-26 08:31:15

Wild Penguin
Member
Registered: 2015-03-19
Posts: 320

Bluetooth controller can not be powered on anymore most of the time

Hi!

For some reason Bluetooth broke on my computer. It used to work previously, but it is really difficult to pinpoint when it actually stopped working, since I only use bluetooth intermittently, not all the time (this is a desktop with most stuff connected with wires or their own dongles).

I have two separate bluetooth dongles which both should work (the other one is in my other computer) - but just to make sure, I swapped them, which rules out a broken dongle.

AFAIK I've followed the Arch Wiki Bluetooth installation guide.

Some info:

$ lsusb -s 005:007 -v

Bus 005 Device 007: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass          224 Wireless
  bDeviceSubClass         1 Radio Frequency
  bDeviceProtocol         1 Bluetooth
  bMaxPacketSize0        64
  idVendor           0x0a12 Cambridge Silicon Radio, Ltd
  idProduct          0x0001 Bluetooth Dongle (HCI mode)
  bcdDevice           88.91
  iManufacturer           0 
  iProduct                2 CSR8510 A10
  iSerial                 0 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x00b1
    bNumInterfaces          2
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0xe0
      Self Powered
      Remote Wakeup
    MaxPower              100mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           3
      bInterfaceClass       224 Wireless
      bInterfaceSubClass      1 Radio Frequency
      bInterfaceProtocol      1 Bluetooth
      iInterface              0 
      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               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass       224 Wireless
      bInterfaceSubClass      1 Radio Frequency
      bInterfaceProtocol      1 Bluetooth
      iInterface              0 
      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               1
      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               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       1
      bNumEndpoints           2
      bInterfaceClass       224 Wireless
      bInterfaceSubClass      1 Radio Frequency
      bInterfaceProtocol      1 Bluetooth
      iInterface              0 
      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               1
      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               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       2
      bNumEndpoints           2
      bInterfaceClass       224 Wireless
      bInterfaceSubClass      1 Radio Frequency
      bInterfaceProtocol      1 Bluetooth
      iInterface              0 
      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               1
      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               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       3
      bNumEndpoints           2
      bInterfaceClass       224 Wireless
      bInterfaceSubClass      1 Radio Frequency
      bInterfaceProtocol      1 Bluetooth
      iInterface              0 
      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               1
      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               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       4
      bNumEndpoints           2
      bInterfaceClass       224 Wireless
      bInterfaceSubClass      1 Radio Frequency
      bInterfaceProtocol      1 Bluetooth
      iInterface              0 
      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               1
      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               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       5
      bNumEndpoints           2
      bInterfaceClass       224 Wireless
      bInterfaceSubClass      1 Radio Frequency
      bInterfaceProtocol      1 Bluetooth
      iInterface              0 
      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               1
      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               1
can't get device qualifier: Resource temporarily unavailable
can't get debug descriptor: Resource temporarily unavailable
Device Status:     0x0001
  Self Powered
$ pacman -Qs bluetooth
local/bluedevil 1:5.16.1-1 (plasma)
    Integrate the Bluetooth technology within KDE workspace and applications
local/bluez 5.50-6
    Daemons for the bluetooth protocol stack
local/bluez-libs 5.50-6
    Deprecated libraries for the bluetooth protocol stack
local/bluez-utils 5.50-6
    Development and debugging utilities for the bluetooth protocol stack
local/pulseaudio-bluetooth 12.2-2
    Bluetooth support for PulseAudio
local/sbc 1.4-1
    Bluetooth Subband Codec (SBC) library
$ systemctl status bluetooth.service 
● bluetooth.service - Bluetooth service
   Loaded: loaded (/usr/lib/systemd/system/bluetooth.service; enabled; vendor preset: disabled)
   Active: active (running) since Mon 2019-06-24 07:32:04 EEST; 2 days ago
     Docs: man:bluetoothd(8)
 Main PID: 827 (bluetoothd)
   Status: "Running"
    Tasks: 1 (limit: 4915)
   Memory: 3.6M
   CGroup: /system.slice/bluetooth.service
           └─827 /usr/lib/bluetooth/bluetoothd

kesä 26 11:17:15 ArkkiVille bluetoothd[827]: Endpoint registered: sender=:1.161 path=/MediaEndpoint/A2DPSink
kesä 26 11:17:57 ArkkiVille bluetoothd[827]: Endpoint unregistered: sender=:1.161 path=/MediaEndpoint/A2DPSource
kesä 26 11:17:57 ArkkiVille bluetoothd[827]: Endpoint unregistered: sender=:1.161 path=/MediaEndpoint/A2DPSink
kesä 26 11:18:01 ArkkiVille bluetoothd[827]: Endpoint registered: sender=:1.161 path=/MediaEndpoint/A2DPSource
kesä 26 11:18:01 ArkkiVille bluetoothd[827]: Endpoint registered: sender=:1.161 path=/MediaEndpoint/A2DPSink
kesä 26 11:18:52 ArkkiVille bluetoothd[827]: Failed to set mode: Failed (0x03)
kesä 26 11:18:52 ArkkiVille bluetoothd[827]: Endpoint unregistered: sender=:1.161 path=/MediaEndpoint/A2DPSource
kesä 26 11:18:52 ArkkiVille bluetoothd[827]: Endpoint unregistered: sender=:1.161 path=/MediaEndpoint/A2DPSink
kesä 26 11:18:53 ArkkiVille bluetoothd[827]: Endpoint registered: sender=:1.161 path=/MediaEndpoint/A2DPSource
kesä 26 11:18:53 ArkkiVille bluetoothd[827]: Endpoint registered: sender=:1.161 path=/MediaEndpoint/A2DPSink

The problem is this "Failed to set mode: Failed (0x03)". I get that in syslog every time I re-plug a dongle (if bluetoothd is running). *But*, every once in a while, say every 10th or so re-plug, it can set the mode, enable the controller, but I can not pair (no device can actually see the bluetooth host - i.e. *nothing* can be actually done with the dongle).

Once in a blue moon the controller is in a working state after re-plug, and if this happens, I can use bluetooth without problems until reboot. I don't get this error in syslog if bluetooth is working correctly.

Bluetoothctl:

[bluetooth]# list
Controller 00:1A:7D:DA:71:11 ArkkiVille [default]
[bluetooth]# power on
Failed to set power on: org.bluez.Error.Failed
[bluetooth]# 

(there's quite some delay here until the bluez.Error is displayed)

My guess is: Kernel regression? However, I have no idea how to continue, and how to make a useful bug report. Or even if the Kernel (driver) is the problem. It could be anything, a bug somewhere else in the bluetooth stack, or my configuration

Any ideas?

Edit:
Some more of a log after a fresh reboot:

$ journalctl -b 0 | grep -i bluetoot
kesä 26 11:37:39 ArkkiVille kernel: Bluetooth: Core ver 2.22
kesä 26 11:37:39 ArkkiVille kernel: Bluetooth: HCI device and connection manager initialized
kesä 26 11:37:39 ArkkiVille kernel: Bluetooth: HCI socket layer initialized
kesä 26 11:37:39 ArkkiVille kernel: Bluetooth: L2CAP socket layer initialized
kesä 26 11:37:39 ArkkiVille kernel: Bluetooth: SCO socket layer initialized
kesä 26 11:37:56 ArkkiVille systemd[1]: Starting Bluetooth service...
kesä 26 11:37:56 ArkkiVille bluetoothd[864]: Bluetooth daemon 5.50
kesä 26 11:37:57 ArkkiVille bluetoothd[864]: Starting SDP server
kesä 26 11:37:57 ArkkiVille systemd[1]: Started Bluetooth service.
kesä 26 11:37:57 ArkkiVille audit[1]: SERVICE_START pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=bluetooth comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
kesä 26 11:37:57 ArkkiVille bluetoothd[864]: Bluetooth management interface 1.14 initialized
kesä 26 11:37:57 ArkkiVille kernel: Bluetooth: BNEP (Ethernet Emulation) ver 1.3
kesä 26 11:37:57 ArkkiVille kernel: Bluetooth: BNEP filters: protocol multicast
kesä 26 11:37:57 ArkkiVille kernel: Bluetooth: BNEP socket layer initialized
kesä 26 11:37:57 ArkkiVille systemd[1]: Reached target Bluetooth.
kesä 26 11:37:57 ArkkiVille NetworkManager[875]: <info>  [1561538277.9624] Loaded device plugin: NMBluezManager (/usr/lib/NetworkManager/1.18.0-1/libnm-device-plugin-bluetooth.so)
kesä 26 11:38:14 ArkkiVille bluetoothd[864]: Endpoint registered: sender=:1.115 path=/MediaEndpoint/A2DPSource
kesä 26 11:38:14 ArkkiVille bluetoothd[864]: Endpoint registered: sender=:1.115 path=/MediaEndpoint/A2DPSink
kesä 26 11:38:14 ArkkiVille kernel: Bluetooth: RFCOMM TTY layer initialized
kesä 26 11:38:14 ArkkiVille kernel: Bluetooth: RFCOMM socket layer initialized
kesä 26 11:38:14 ArkkiVille kernel: Bluetooth: RFCOMM ver 1.11
kesä 26 11:38:25 ArkkiVille kdeinit5[1190]: bluedevil: Bluetooth operational changed true
kesä 26 11:38:25 ArkkiVille systemd[1026]: Starting Bluetooth OBEX service...
kesä 26 11:38:25 ArkkiVille systemd[1026]: Started Bluetooth OBEX service.
kesä 26 11:39:37 ArkkiVille bluetoothd[864]: Failed to set mode: Failed (0x03)
kesä 26 11:39:47 ArkkiVille bluetoothd[864]: Failed to set mode: Failed (0x03)

"Failed to set mode" comes up when I try to power on bluetooth.

$ uname -a
Linux ArkkiVille 5.1.15-zen1-1-zen #1 ZEN SMP PREEMPT Tue Jun 25 04:49:28 UTC 2019 x86_64 GNU/Linux

EDIT2: Realized this might have fitted more in Kernel & Hardware -section... if some mods agree, feel free to move.

Last edited by Wild Penguin (2019-06-26 11:12:20)

Offline

#2 2019-06-26 12:33:06

mokkurkalve
Member
From: Bergen, Norway
Registered: 2009-08-29
Posts: 60

Re: Bluetooth controller can not be powered on anymore most of the time

I don't know whether your problem is connected to mine, and I have little info, but I opened a bug report today:
https://bugs.archlinux.org/task/63012


"ONLY THOSE WHO ATTEMPT THE IMPOSSIBLE WILL ACHIEVE THE ABSURD"
- Oceania Association of Autonomous Astronauts

Offline

#3 2019-06-26 14:18:28

ewaller
Administrator
From: Pasadena, CA
Registered: 2009-07-13
Posts: 19,772

Re: Bluetooth controller can not be powered on anymore most of the time

Moving to Kernel and Hardware.
As a sanity check, what are the output of rfkill  ?
Have you tried a vanilla kernel?  I've no history with the zen kernel.
Lastly, although I don't think it matters at this point, what is the output of groups for your user..


Nothing is too wonderful to be true, if it be consistent with the laws of nature -- Michael Faraday
Sometimes it is the people no one can imagine anything of who do the things no one can imagine. -- Alan Turing
---
How to Ask Questions the Smart Way

Offline

#4 2019-06-26 15:00:19

Wild Penguin
Member
Registered: 2015-03-19
Posts: 320

Re: Bluetooth controller can not be powered on anymore most of the time

ewaller wrote:

As a sanity check, what are the output of rfkill  ?

It was this:

rfkill list
6: hci0: Bluetooth
        Soft blocked: no
        Hard blocked: no

However, I re-insterted the dongle many, many times and it started working! I presume it will stop again after next re-insertion (or reboot).

ewaller wrote:

Have you tried a vanilla kernel?  I've no history with the zen kernel.

I will try this, and report back later. EDIT: Perhaps unsurprisingly, using the vanilla Kernel, the behaviour is exactly the same.

ewaller wrote:

Lastly, although I don't think it matters at this point, what is the output of groups for your user..

Me neither. I haven't changed any permissions. But:

$ groups
lp wheel uucp video audio optical autologin nopasswdlogin cdemu ville

Last edited by Wild Penguin (2019-06-26 15:07:50)

Offline

#5 2019-06-26 15:09:40

ewaller
Administrator
From: Pasadena, CA
Registered: 2009-07-13
Posts: 19,772

Re: Bluetooth controller can not be powered on anymore most of the time

The permissions look good.  You need lp and (I think) uucp in order to spawn virtual devices such as audio connections and serial terminals over bluetooth -- but that is at a much higher level in the stack that you are fighting.

Now that it is working, check the kernel modules that are in use (lsmod) and keep that list to compare to those that are loaded when it does not work.


Nothing is too wonderful to be true, if it be consistent with the laws of nature -- Michael Faraday
Sometimes it is the people no one can imagine anything of who do the things no one can imagine. -- Alan Turing
---
How to Ask Questions the Smart Way

Offline

#6 2019-06-26 15:33:05

Wild Penguin
Member
Registered: 2015-03-19
Posts: 320

Re: Bluetooth controller can not be powered on anymore most of the time

ewaller wrote:

The permissions look good.  You need lp and (I think) uucp in order to spawn virtual devices such as audio connections and serial terminals over bluetooth -- but that is at a much higher level in the stack that you are fighting.

Now that it is working, check the kernel modules that are in use (lsmod) and keep that list to compare to those that are loaded when it does not work.

Thanks for this tip! Now it is not working again, since I rebooted to test the other Kernel :-).

I think wi'll need... well, maybe 5-50 re-insertions of the dongle until it starts behaving again.

Offline

#7 2019-06-26 15:47:57

Wild Penguin
Member
Registered: 2015-03-19
Posts: 320

Re: Bluetooth controller can not be powered on anymore most of the time

After a few re-insertions, the module started working again (again):

$ diff bt-working.modules bt-broken.modules 
30c30
< ddbridge              102400  2
---
> ddbridge              102400  14
118c118
< amdgpu               4263936  48
---
> amdgpu               4263936  46

This is not surprising, as AFAIK this dongle does not use other modules besides btusb (which is loaded whether it works or not).

FWIW, I mentioned having the device sometimes in a state where I can power on but not do anything else (pair with anything etc.); but I've seen that only once, can not reproduce. Now after some more tests, it either works perfectly (1/5 - 1/10 or more of the times the dongle is inserted) or doesn't (rest of the time). Actually, this time I was somewhat lucky, I needed four re-insertions (I waited for the error at least once, to make sure it doesn't work - but when the dongle works, it does it very fast). The previous time, I needed more re-insertions.

In case it is useful, I can post parts of the syslog, both for when it doesn't work and when it does, but I'm not sure which parts.

Offline

Board footer

Powered by FluxBB