You are not logged in.
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
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
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
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).
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.
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
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
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
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