# (отредактировано 1 год, 6 месяцев назад) |
|
Темы: 1 Сообщения: 12 Участник с: 31 июля 2021 |
Не работает Bluetooth. bluetoothctl:
При использовании Blueman в ответ на поиск устройств возвращает ошибку:
https://a.radikal.ru/a08/2107/42/8f57fd064b3c.png
btusb загружается:
Если после старта компа чуток подождать с запущенной утилитой bluetoothctl, она выведет это:
А systemctl status bluetooth покажет ошибку, которой не было на момент старта компа и которая появилась вместе с этими строчками bluetoothctl выше:
Есть пакеты bluez, bluez-utils, pulseaudio-bluetooth и blueman. |
vs220 |
# |
Темы: 22 Сообщения: 8090 Участник с: 16 августа 2009 |
Не все одновременно по идеи работать будет. Попробуйте пока удалить blueman и перезагрузиться а уже потом через bluetoothctl |
sadnessITS |
# (отредактировано 1 год, 6 месяцев назад) |
Темы: 1 Сообщения: 12 Участник с: 31 июля 2021 |
Пробовал, результата нет. Ошибки те же. Мысли были уже на этот счет, если устройство Busy, то по идее другим софтом, но удаление Blueman никак не помогло ситуации. |
vs220 |
# |
Темы: 22 Сообщения: 8090 Участник с: 16 августа 2009 |
А
что показывают?
|
sadnessITS |
# (отредактировано 1 год, 6 месяцев назад) |
Темы: 1 Сообщения: 12 Участник с: 31 июля 2021 |
bluetoothctl show:
bluetoothctl list:
Насчет дебага. Вот инфа, эти команда и ответ соответсвенно:
Ответ:
Полный отчет с дебага: И еще новая инфа. Сейчас еще раз попробовал удалить Blueman и глянуть что да как в systemctl status bluetooth. Появился софт блок от rfkill. Если его снять, то при перезагрузке появится снова. Тест работы делал стартанув предварительно сервисы вручную. |
RusWolf |
# |
Темы: 11 Сообщения: 2413 Участник с: 16 июля 2016 |
Манжара? |
sadnessITS |
# (отредактировано 1 год, 6 месяцев назад) |
Темы: 1 Сообщения: 12 Участник с: 31 июля 2021 |
Arch + i3 |
vs220 |
# |
Темы: 22 Сообщения: 8090 Участник с: 16 августа 2009 |
Может проблемы ядра |
sadnessITS |
# (отредактировано 1 год, 6 месяцев назад) |
Темы: 1 Сообщения: 12 Участник с: 31 июля 2021 |
Только что попробовал перейти на lts ядро. Там такая же шляпа, я видел до этого этот топик, решение не помогло. Сейчас юзаю zen. Раньше на этом же устройстве с этим же ядром всё работало. |
vs220 |
# |
Темы: 22 Сообщения: 8090 Участник с: 16 августа 2009 |
Там bluez на 5.55-3 советуют откатить |
-
johann_strauss
- Posts: 8
- Joined: Sun Mar 14, 2021 1:10 pm
Failed to connect: org.bluez.Error.Failed
I have a vanilla Raspberry OS installation.
My HDMI monitor has no audio.
I tried to connect JBL Flip 4 — error (please see below)
I tried to connect Google Home Mini — same error
I have tried all possible options also suggested here, but to no avail:
viewtopic.php?f=28&t=275273
What is wrong?
When I right-click on the Volume Control, I can only select HDMI or Device Profiles, and there is no Bluetooth-connected JBL Flip 4 nor Google Home Mini.
Many thanks for your support!
Code: Select all
i@pi400:~ $ cat /etc/os-release
PRETTY_NAME="Raspbian GNU/Linux 10 (buster)"
NAME="Raspbian GNU/Linux"
VERSION_ID="10"
VERSION="10 (buster)"
VERSION_CODENAME=buster
ID=raspbian
ID_LIKE=debian
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"
pi@pi400:~ $ uname -a
Linux pi400 5.10.17-v7l+ #1403 SMP Mon Feb 22 11:33:35 GMT 2021 armv7l GNU/Linux
pi@pi400:~ $ sudo apt update
Hit:1 http://raspbian.raspberrypi.org/raspbian buster InRelease
Hit:2 http://archive.raspberrypi.org/debian buster InRelease
Reading package lists... Done
Building dependency tree
Reading state information... Done
All packages are up to date.
pi@pi400:~ $ sudo apt upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
pi@pi400:~ $
Code: Select all
pi@pi400:~ $ bluetoothctl
Agent registered
[bluetooth]# devices
Device 30:C0:1B:2E:2F:AB JBL Flip 4
Device 00:F6:20:8A:2F:12 Kitchen speaker
[bluetooth]# connect 30:C0:1B:2E:2F:AB
Attempting to connect to 30:C0:1B:2E:2F:AB
Failed to connect: org.bluez.Error.Failed
[bluetooth]# connect 00:F6:20:8A:2F:12
Attempting to connect to 00:F6:20:8A:2F:12
Failed to connect: org.bluez.Error.Failed
[bluetooth]# info 00:F6:20:8A:2F:12
Device 00:F6:20:8A:2F:12 (public)
Name: Kitchen speaker
Alias: Kitchen speaker
Class: 0x00240400
Icon: audio-card
Paired: yes
Trusted: yes
Blocked: no
Connected: no
LegacyPairing: no
bluetooth]# info 30:C0:1B:2E:2F:AB
Device 30:C0:1B:2E:2F:AB (public)
Name: JBL Flip 4
Alias: JBL Flip 4
Class: 0x00240414
Icon: audio-card
Paired: yes
Trusted: yes
Blocked: no
Connected: no
LegacyPairing: no
Modalias: bluetooth:v000ApFFFFdFFFF
-
amoun
- Posts: 17
- Joined: Tue Oct 27, 2020 7:25 pm
- Location: Cornwall, UK
Re: Failed to connect: org.bluez.Error.Failed
Sun Mar 14, 2021 7:36 pm
Hi I have the same problem since I removed some pulse audio packages as pulse audio stopped Firefox from playing audio. Reinstalling pulse audio did not bring back the option to send audio over the bluetooth connection. So although my speaker is ‘connected’ it doesn’t work. The terminal outputs are the same as yours.s
Still looking into it.
All the best
-
amoun
- Posts: 17
- Joined: Tue Oct 27, 2020 7:25 pm
- Location: Cornwall, UK
Re: Failed to connect: org.bluez.Error.Failed
Sun Mar 14, 2021 8:11 pm
Looking into the fact that LegacyPairing is not enabled
pi@raspberrypi:~ $ bluetoothctl
Agent registered
[bluetooth]# connect 40:EF:4C:CC:AD:55
Attempting to connect to 40:EF:4C:CC:AD:55
Failed to connect: org.bluez.Error.Failed
[bluetooth]# info 40:EF:4C:CC:AD:55
Device 40:EF:4C:CC:AD:55 (public)
Name: Bag of Riddim II
Alias: Bag of Riddim II
Class: 0x00240414
Icon: audio-card
Paired: yes
Trusted: yes
Blocked: no
Connected: no
LegacyPairing: no
UUID: Audio Sink (0000110b-0000-1000-8000-00805f9b34fb)
UUID: A/V Remote Control Target (0000110c-0000-1000-8000-00805f9b34fb)
UUID: Advanced Audio Distribu.. (0000110d-0000-1000-8000-00805f9b34fb)
UUID: A/V Remote Control (0000110e-0000-1000-8000-00805f9b34fb)
-
johann_strauss
- Posts: 8
- Joined: Sun Mar 14, 2021 1:10 pm
Re: Failed to connect: org.bluez.Error.Failed
Sun Mar 14, 2021 8:32 pm
I will give it a try.
On Ubuntu, the same device is paired without LegacyPairing and connects immediately:
Code: Select all
johann@arthur:~$ uname -a
Linux arthur 5.4.0-66-generic #74~18.04.2-Ubuntu SMP Fri Feb 5 11:17:31 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
johann@arthur:~$ bluetoothctl
[NEW] Controller FC:44:82:3B:B0:6D arthur [default]
[NEW] Device 30:C0:1B:2E:2F:AB JBL Flip 4
Agent registered
[bluetooth]# info 30:C0:1B:2E:2F:AB
Device 30:C0:1B:2E:2F:AB (public)
Name: JBL Flip 4
Alias: JBL Flip 4
Class: 0x00240414
Icon: audio-card
Paired: yes
Trusted: yes
Blocked: no
Connected: no
LegacyPairing: no
UUID: Headset (00001108-0000-1000-8000-00805f9b34fb)
UUID: Audio Sink (0000110b-0000-1000-8000-00805f9b34fb)
UUID: A/V Remote Control Target (0000110c-0000-1000-8000-00805f9b34fb)
UUID: A/V Remote Control (0000110e-0000-1000-8000-00805f9b34fb)
UUID: Handsfree (0000111e-0000-1000-8000-00805f9b34fb)
UUID: PnP Information (00001200-0000-1000-8000-00805f9b34fb)
Modalias: bluetooth:v000ApFFFFdFFFF
[CHG] Device 30:C0:1B:2E:2F:AB Connected: yes
[JBL Flip 4]#
-
amoun
- Posts: 17
- Joined: Tue Oct 27, 2020 7:25 pm
- Location: Cornwall, UK
Re: Failed to connect: org.bluez.Error.Failed
Sun Mar 14, 2021 8:49 pm
I didn’t even understand it enough to get to enabling it. Is you bluetooth on the rasp-pi and ubuntu using the same hardware/firmware etc
-
amoun
- Posts: 17
- Joined: Tue Oct 27, 2020 7:25 pm
- Location: Cornwall, UK
Re: Failed to connect: org.bluez.Error.Failed
Sun Mar 14, 2021 10:52 pm
I had this idea that there may be interference from the wifi as I use 2.4GHz which is close to the Bluetooth
I switched off wifi and it connects ~ I can use 5GHz for wifi but it doesn’t have such a good range ~ I may try fiddling with the 2.4GHz channels.
However I was messing with the audio setup and lost the option to send the audio to the speaker ~ I used to have a different menu that gave HDMI or Speaker ???
-
amoun
- Posts: 17
- Joined: Tue Oct 27, 2020 7:25 pm
- Location: Cornwall, UK
-
johann_strauss
- Posts: 8
- Joined: Sun Mar 14, 2021 1:10 pm
Re: Failed to connect: org.bluez.Error.Failed
Mon Mar 15, 2021 8:06 pm
Legacy Pairing:
This is the only method available in Bluetooth v2.0 and before. Each device must enter a PIN code; pairing is only successful if both devices enter the same PIN code
I am not sure about this one, I will not be able to type in any PIN code on my JBL Flip 4 speaker.
-
johann_strauss
- Posts: 8
- Joined: Sun Mar 14, 2021 1:10 pm
Re: Failed to connect: org.bluez.Error.Failed
Mon Mar 15, 2021 8:28 pm
Removed all devices and followed the instructions, rebooted:
Code: Select all
pi@pi400:~ $ groups
pi adm lp dialout cdrom sudo audio video plugdev games users input netdev lpadmin gpio i2c spi
Code: Select all
pi@pi400:~ $ ps aux | grep pulse
pi 682 0.0 0.2 358540 8616 ? S<sl 21:17 0:00 /usr/bin/pulseaudio --daemonize=no
pi 1520 0.0 0.0 7348 580 pts/0 S+ 21:24 0:00 grep --color=auto pulse
Code: Select all
pi@pi400:~ $ sudo bluetoothctl
Agent registered
[bluetooth]# power on
Changing power on succeeded
[bluetooth]# default-agent
Default agent request successful
[bluetooth]# devices
[bluetooth]# scan on
Discovery started
[CHG] Controller E4:5F:01:05:93:E5 Discovering: yes
[NEW] Device 4D:3D:8B:67:43:00 4D-3D-8B-67-43-00
[NEW] Device 02:37:E2:AD:4E:EB 02-37-E2-AD-4E-EB
[NEW] Device F0:99:19:3B:D4:BB F0-99-19-3B-D4-BB
[NEW] Device 08:66:98:BA:B5:D1 08-66-98-BA-B5-D1
[NEW] Device 69:97:46:D3:C4:12 69-97-46-D3-C4-12
[NEW] Device 4B:BE:43:E4:12:28 4B-BE-43-E4-12-28
[NEW] Device 30:C0:1B:2E:2F:AB JBL Flip 4
[bluetooth]# trust 30:C0:1B:2E:2F:AB
[CHG] Device 30:C0:1B:2E:2F:AB Trusted: yes
Changing 30:C0:1B:2E:2F:AB trust succeeded
[bluetooth]# pair 30:C0:1B:2E:2F:AB
Attempting to pair with 30:C0:1B:2E:2F:AB
[CHG] Device 30:C0:1B:2E:2F:AB Connected: yes
[CHG] Device 30:C0:1B:2E:2F:AB Connected: no
[bluetooth]# connect 30:C0:1B:2E:2F:AB
Attempting to connect to 30:C0:1B:2E:2F:AB
Failed to connect: org.bluez.Error.Failed
[NEW] Device 57:99:82:BA:81:84 57-99-82-BA-81-84
[CHG] Device 57:99:82:BA:81:84 ManufacturerData Key: 0x004c
[CHG] Device 57:99:82:BA:81:84 ManufacturerData Value:
10 06 10 1a 32 62 4c a8 ....2bL.
[CHG] Device F0:99:19:3B:D4:BB RSSI: -89
[CHG] Device F0:99:19:3B:D4:BB RSSI: -77
[NEW] Device 4D:5E:75:01:A8:2E 4D-5E-75-01-A8-2E
[bluetooth]# connect 30:C0:1B:2E:2F:AB
Attempting to connect to 30:C0:1B:2E:2F:AB
Failed to connect: org.bluez.Error.Failed
It’s only shortly connected after pairing, then immediately disconnects.
-
johann_strauss
- Posts: 8
- Joined: Sun Mar 14, 2021 1:10 pm
Re: Failed to connect: org.bluez.Error.Failed
Mon Mar 15, 2021 8:39 pm
Tried again and again. It briefly connects after pairing. Then the white led stops blinking and stays on.
Code: Select all
pi@pi400:~ $ pulseaudio --verbose --start
N: [pulseaudio] main.c: User-configured server at {b9e11b12b49248988c54de6784db6e5c}unix:/run/user/1000/pulse/native, which appears to be local. Probing deeper.
I: [pulseaudio] main.c: Daemon startup successful.
pi@pi400:~ $ sudo bluetoothctl
Agent registered
[bluetooth]# power on
Changing power on succeeded
[bluetooth]# default-agent
Default agent request successful
[bluetooth]# scan on
Discovery started
[CHG] Controller E4:5F:01:05:93:E5 Discovering: yes
[NEW] Device 60:F6:06:74:4F:82 60-F6-06-74-4F-82
[NEW] Device 57:99:82:BA:81:84 57-99-82-BA-81-84
[NEW] Device F0:99:19:3B:D4:BB F0-99-19-3B-D4-BB
[NEW] Device 02:37:E2:AD:4E:EB 02-37-E2-AD-4E-EB
[NEW] Device 08:66:98:BA:B5:D1 08-66-98-BA-B5-D1
[NEW] Device 66:BD:00:1D:24:15 66-BD-00-1D-24-15
[NEW] Device 30:C0:1B:2E:2F:AB JBL Flip 4
[bluetooth]# trust 30:C0:1B:2E:2F:AB
[CHG] Device 30:C0:1B:2E:2F:AB Trusted: yes
Changing 30:C0:1B:2E:2F:AB trust succeeded
[NEW] Device 69:D1:B1:D4:20:8E 69-D1-B1-D4-20-8E
[bluetooth]# pair 30:C0:1B:2E:2F:AB
Attempting to pair with 30:C0:1B:2E:2F:AB
[CHG] Device 30:C0:1B:2E:2F:AB Connected: yes
[CHG] Device 30:C0:1B:2E:2F:AB Connected: no
Last edited by johann_strauss on Mon Mar 15, 2021 8:45 pm, edited 1 time in total.
-
johann_strauss
- Posts: 8
- Joined: Sun Mar 14, 2021 1:10 pm
Re: Failed to connect: org.bluez.Error.Failed
Mon Mar 15, 2021 8:44 pm
But doesn’t appear to be paired:
Code: Select all
[bluetooth]# paired-devices
[bluetooth]# info 30:C0:1B:2E:2F:AB
Device 30:C0:1B:2E:2F:AB (public)
Name: JBL Flip 4
Alias: JBL Flip 4
Class: 0x00240414
Icon: audio-card
Paired: no
Trusted: yes
Blocked: no
Connected: no
LegacyPairing: no
UUID: Advanced Audio Distribu.. (0000110d-0000-1000-8000-00805f9b34fb)
UUID: Audio Sink (0000110b-0000-1000-8000-00805f9b34fb)
UUID: A/V Remote Control (0000110e-0000-1000-8000-00805f9b34fb)
UUID: A/V Remote Control Cont.. (0000110f-0000-1000-8000-00805f9b34fb)
UUID: Handsfree (0000111e-0000-1000-8000-00805f9b34fb)
UUID: Headset (00001108-0000-1000-8000-00805f9b34fb)
UUID: Headset HS (00001131-0000-1000-8000-00805f9b34fb)
Modalias: bluetooth:v000ApFFFFdFFFF
RSSI: -26
TxPower: 8
Code: Select all
[bluetooth]# pair 30:C0:1B:2E:2F:AB
Attempting to pair with 30:C0:1B:2E:2F:AB
Failed to pair: org.bluez.Error.AlreadyExists
[bluetooth]#
-
johann_strauss
- Posts: 8
- Joined: Sun Mar 14, 2021 1:10 pm
Re: Failed to connect: org.bluez.Error.Failed
Mon Mar 15, 2021 8:57 pm
After reboot, when I try to connect through GUI:
Connect Device:
Connection failed — no usable services on this device.
Code: Select all
pi@pi400:~ $ bluetoothctl
Agent registered
[bluetooth]# paired-devices
Device 30:C0:1B:2E:2F:AB JBL Flip 4
[bluetooth]#
-
headsettrouble
- Posts: 6
- Joined: Fri Mar 19, 2021 7:55 pm
Re: Failed to connect: org.bluez.Error.Failed
Sat Mar 20, 2021 7:57 am
johann_strauss wrote: ↑
Mon Mar 15, 2021 8:57 pm
After reboot: Connection failed — no usable services on this device.
Restart bluetoothd (e.g. by running «sudo /etc/init.d/bluetooth restart»).
It will work then. At latest when you have powered off and on your bluetooth device afterwards.
I have the exact same problem and would love to know a fix why it does not work directly after the initial boot.
-
tomaszeW
- Posts: 1
- Joined: Wed Mar 31, 2021 8:37 pm
Re: Failed to connect: org.bluez.Error.Failed
Wed Mar 31, 2021 8:57 pm
I have a similar problem with pi4, exactly when connecting ps3 controller to retropie
What I noticed is: (it may be helpful)
before bluetoothd restart commands:
Gives Mac address like:
E4:5F:01:XX:XX:XX
after restart
the same commands give:
B8:27:EB:9D:XX:XX
What is interesting the command:
always returns correct address:
hci0: B8:27:EB:9D:XX:XX
After restart everything works like a charm….
I think the initial MAC Address is somehow incorrect
Code: Select all
pi@retropie:~ $ cat /etc/os-release
PRETTY_NAME="Raspbian GNU/Linux 10 (buster)"
NAME="Raspbian GNU/Linux"
VERSION_ID="10"
VERSION="10 (buster)"
VERSION_CODENAME=buster
ID=raspbian
ID_LIKE=debian
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"
Last edited by tomaszeW on Wed Mar 31, 2021 9:08 pm, edited 1 time in total.
-
evancg
- Posts: 2
- Joined: Mon Apr 05, 2021 4:55 am
Re: Failed to connect: org.bluez.Error.Failed
Mon Apr 05, 2021 5:00 am
I have this same issue with a Pi 4 with a Dualshock or basically ANY bluetooth device. The changing MAC address happens to me too. On boot it’s:
Controller E4:5F:01:09:8F:54 and Bluetooth just fails. Nothing can connect at all. It’s a mess.
After a quick sudo systemctl restart bluetooth.service and bluetoothctl list, it shows
Controller B8:27:EB:91:7E:CF and Bluetooth works.
Any suggestions on what might be going on?
-
evancg
- Posts: 2
- Joined: Mon Apr 05, 2021 4:55 am
Re: Failed to connect: org.bluez.Error.Failed
Mon Apr 05, 2021 1:41 pm
Quick addition to my prior post — Restarting bluetooth.service doesn’t always fix it — it seems more likely that just restarting bluetooth gives it a chance to get the right MAC address (which is why sometimes it always works on a reboot).
-
Bi-Doux
- Posts: 3
- Joined: Mon Jan 18, 2021 11:16 pm
Re: Failed to connect: org.bluez.Error.Failed
Thu Apr 15, 2021 4:52 pm
evancg wrote: ↑
Mon Apr 05, 2021 1:41 pm
Quick addition to my prior post — Restarting bluetooth.service doesn’t always fix it — it seems more likely that just restarting bluetooth gives it a chance to get the right MAC address (which is why sometimes it always works on a reboot).
Same recurring error but as far as I am concerned, restarting bluetooth.service NEVER fix it. Since one of last year update of firmware, I am unable to use bluetooth with my RPI 4B.
-
Longrower
- Posts: 2
- Joined: Tue Apr 20, 2021 11:58 am
Re: Failed to connect: org.bluez.Error.Failed
Tue Apr 20, 2021 4:02 pm
The sudo Bluetooth restart is the only thing that’s worked for me thus far.
GUI Bluetooth On/Off doesn’t work, system restart doesn’t work. Bluetooth is Fubar after I shut down and power back on. Mine’s a new RPi 4b with stock OS install via NOOB.
-
piersw
- Posts: 9
- Joined: Wed Dec 30, 2020 10:02 pm
- Location: Cambridge, UK.
Re: Failed to connect: org.bluez.Error.Failed
Tue Apr 20, 2021 5:56 pm
I’m getting this on a friend’s Raspberry Pi 400 — it works fine on my Pi 400. I managed once to pair it by following all the steps in the other thread (powering it on, default-agent, scan, trust, pair, connect…), but that’s not at all practical for a kid’s computer.
The curious thing is it seems to be a hardware problem. If I use either their or my SD card in my Pi 400 I can pair. If I use their or my SD card in their Pi 400, I get the various error messages.
Both SD cards are (now) up-to-date with apt-get, and both were Pi 400 installs of Raspberry Pi OS (as opposed to an upgrade from an earlier OS).
-
piersw
- Posts: 9
- Joined: Wed Dec 30, 2020 10:02 pm
- Location: Cambridge, UK.
Re: Failed to connect: org.bluez.Error.Failed
Tue Apr 20, 2021 6:09 pm
I’ve also had occasional success with restarting the bluetooth.service. The address changes from E4:5F:01:13:BE:6D to B8:27:EB:F9:19:77 and then pairing, connecting and audio works flawlessly (as it always has on my Pi 400).
-
piersw
- Posts: 9
- Joined: Wed Dec 30, 2020 10:02 pm
- Location: Cambridge, UK.
Re: Failed to connect: org.bluez.Error.Failed
Wed Apr 21, 2021 9:34 am
Given the computer is for a friend’s 6 year old I guess the best option is to return it for a swap?
She obviously can’t be expected to type in any commands to get bluetooth working, and I’m nervous that if I modify the startup scripts it will go wrong on the next OS update.
-
piersw
- Posts: 9
- Joined: Wed Dec 30, 2020 10:02 pm
- Location: Cambridge, UK.
Re: Failed to connect: org.bluez.Error.Failed
Fri May 07, 2021 2:05 pm
The Pi 400 has been replaced, and it still has exactly the same behaviour.
I’m stumped — it seems some other people have the same problem. But, more importantly, it does seem to be a hardware problem because Bluetooth works on my Pi 400 using the SD cards (plural) that fail to work on the other Pi 400s.
Given the replacement came from the same shop, could it really be a dodgy batch?
-
jamesh
- Raspberry Pi Engineer & Forum Moderator
- Posts: 32176
- Joined: Sat Jul 30, 2011 7:41 pm
Re: Failed to connect: org.bluez.Error.Failed
Fri May 07, 2021 3:16 pm
piersw wrote: ↑
Fri May 07, 2021 2:05 pm
The Pi 400 has been replaced, and it still has exactly the same behaviour.I’m stumped — it seems some other people have the same problem. But, more importantly, it does seem to be a hardware problem because Bluetooth works on my Pi 400 using the SD cards (plural) that fail to work on the other Pi 400s.
Given the replacement came from the same shop, could it really be a dodgy batch?
Hi Piers,
We have had a few reports on this, but have not been able to replicate in house. Since you are in Cambridge, would it be possible to get hold of this failing one so we can investigate?
James
Principal Software Engineer at Raspberry Pi Ltd.
Working in the Applications Team.
-
piersw
- Posts: 9
- Joined: Wed Dec 30, 2020 10:02 pm
- Location: Cambridge, UK.
Re: Failed to connect: org.bluez.Error.Failed
Fri May 07, 2021 3:33 pm
Yeah, that’s easy — I can easily drop it off somewhere central (Hills Rd?). Want to email me and we can arrange? (can you get my email from the forum?)
Thanks.
Return to “Raspberry Pi 400”
Состояние перевода: На этой странице представлен перевод статьи Bluetooth headset. Дата последней синхронизации: 4 декабря 2021. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.
На данный момент Arch Linux поддерживает профиль A2DP (Аудио выход) для беспроводного проигрывания аудио прямо с обычной установкой.
Наушники через Pipewire
PipeWire выступает прямой заменой PulseAudio и даёт лёгкий способ установки Bluetooth-наушников. Он имеет поддержку A2DP-профилей из коробки с использованием кодеков SBC/SBC-XQ, AptX, LDAC или AAC, а также HFP/HSP.
Установите пакет pipewire-pulse (который заменяет pulseaudio и pulseaudio-bluetooth).
Демон запустится автоматически как пользовательская служба. Используйте pavucontrol или настройки вашего окружения рабочего стола для конфигурации. Подробее смотрите PipeWire (Русский)#Устройства Bluetooth.
Отчёт об уровне заряда батареи
Чтобы узнать текущий заряд батареи ваших наушников, демон bluetoothd должен быть запущен с экспериментальными возможностями.
Это можно сделать, создав замещение файла юнита bluetooth.service
и дописав в строке ExecStart
опцию -E
. После его создания перезапустите службу.
В качестве альтернативы можно создать drop-in файл для службы bluetooth.service
со следующим содержимым:
/etc/systemd/system/bluetooth.service.d/override.conf
[Service] ExecStart= ExecStart=/usr/lib/bluetooth/bluetoothd --experimental
После его создания перезапустите службу.
Наушники через Bluez5/PulseAudio
Установите пакеты pulseaudio-alsa, pulseaudio-bluetooth и bluez-utils — последний предоставляет инструмент bluetoothctl
.
Примечание: Перед продолжением убедитесь, что Bluetooth-устройство не заблокировано через rfkill.
Настройка через командную строку
Запустите службу bluetooth.service
.
Мы будем использовать утилиту командноу строки bluetoothctl для сопряжения и подключения. Более детальное описание и решение проблем смотрите в основной статье Bluetooth (Русский).
Запустите bluetoothctl:
$ bluetoothctl
Вы попадёте в его командную строку. Затем введите:
[bluetooth]# power on [bluetooth]# agent on [bluetooth]# default-agent [bluetooth]# scan on
Теперь переведите ваши наушники в режим сопряжения, и компьютер вскоре должен обнаружить её. Например,
[NEW] Device 00:1D:43:6D:03:26 Lasmex LBT10
показывает устройство с названием «Lasmex LBT10» и MAC-адресом «00:1D:43:6D:03:26». Мы будем использовать этот MAC-адрес для инициации сопряжения:
[bluetooth]# pair 00:1D:43:6D:03:26
После сопряжения нужно явно подключить устройство (если это не работает, попробуйте команду trust
перед попыткой подключения):
[bluetooth]# connect 00:1D:43:6D:03:26
Если возникает ошибка org.bluez.Error.Failed
, попробуйте ещё раз, предварительно завершив демон PulseAudio:
$ pulseaudio -k [bluetooth]# connect 00:1D:43:6D:03:26
Наконец, если вы хотите автоматически подключаться к этому устройству в будущем:
[bluetooth]# trust 00:1D:43:6D:03:26
Если всё работает корректно, вы увидите отдельное устройство вывода в PulseAudio.
Примечание: Устройство может быть отключено по умолчанию. Выберите профиль аудио (OFF
, A2DP
, HFP
) на вкладке «Конфигурация» в pavucontrol.
Теперь можно направить любое аудио на это устройство на вкладках «Проигрывание» и «Запись» в pavucontrol.
Теперь вы можете остановить сканирование и выйти из программы:
[bluetooth]# scan off [bluetooth]# exit
Автоподключение
Чтобы наушники автоматически подключались, нужно включить PulseAudio-модуль switch-on-connect. Добавьте следующие строки в /etc/pulse/default.pa
:
/etc/pulse/default.pa
### Automatically switch to newly-connected devices load-module module-switch-on-connect
Примечание:
- Убедитесь, что ваше аудиоустройство bluetooth является доверенным (trusted), иначе повторное сопряжение окончится неудачей. Подробнее смотрите Bluetooth (Русский)#Сопряжение.
- По умолчанию адаптер Bluetooth не включается после загрузки системы. Подробнее смотрите Bluetooth (Русский)#Автоматическое включение после загрузки.
Мультимедийные кнопки
Для использования мультимедийных кнопок они могут быть перенаправлены в MPRIS, где их подхватят плееры, поддерживающие MPRIS для управления. Подробнее смотрите MPRIS#Bluetooth.
Настройка через GNOME Bluetooth
Примечание: Профиль A2DP не будет активироваться этим способом на pulseaudio 9/10 из-за бага, что приведёт к низкокачественному моно-звуку. Для возможного решения смотрите #A2DP не работает с PulseAudio.
Вы можете использовать графический фронтенд GNOME Bluetooth для лёгкой настройки наушников.
Сперва убедитесь, что служба bluetooth.service
запущена.
Откройте GNOME Bluetooth и активируйте bluetooth. После сканирования устройств вы можете подключиться к наушникам, выбрав их в списке устройств. Вы можете получить доступ к настройкам звука из меню устройства. После подключения устройства в настройках звука должен появиться новый аудиовыход.
LDAC/aptX
Поддержку кодеков LDAC/aptX можно включить установкой пакетов pulseaudio-modules-btAUR[ссылка недействительна: package not found] и libldac и перезапуском PulseAudio. Смотрите подсказки по настройке на странице проекта. Вы можете проверить используемый кодек с помощью команды:
$ pactl list | grep a2dp_codec
Решение проблем
Примечание: У многих пользователей возникают проблемы при попытках добиться работы A2DP/Bluetooth наушников. Подробнее смотрите #Переключение между HSP/HFP и A2DP.
Плохой звук / Постоянный шум / «Мутный» звук
Плохое качество звука скорее всего связано с тем, что не выбран правильный профиль.
Смотрите #Переключение между HSP/HFP и A2DP для решения проблемы.
Профиль выбран, но наушники неактивны и звук не может быть перенаправлен
Это меню обманчиво доступно ещё до подключения устройства; пока оно не подключено, это меню не будет иметь никакого эффекта. Кажется, меню создаётся сразу после определения устройства.
Запустите bluetoothctl
как root и подключите устройство вручную.
Сопряжение не удаётся с ошибкой AuthenticationFailed
Попробуйте включить или отключить SSPMode:
# btmgmt ssp off
или
# btmgmt ssp on
Может понадобиться выключить Bluetooth на время выполнения этой команды.
Сопряжение работает, но соединение не удаётся
Вы можете увидеть такую ошибку в bluetoothctl:
[bluetooth]# connect 00:1D:43:6D:03:26 Attempting to connect to 00:1D:43:6D:03:26 Failed to connect: org.bluez.Error.Failed
Для изучения проверьте статус bluetooth.service
или гляньте журнал:
# journalctl -n 20
Там может оказаться примерно такое сообщение:
bluetoothd[5556]: a2dp-sink profile connect failed for 00:1D:43:6D:03:26: Protocol not available
Это может быть из-за того, что pulseaudio-bluetooth не установлен (или pulseaudio-modules-bt-gitAUR[ссылка недействительна: package not found] нужно переустановить с нуля). Установите и затем перезапустите PulseAudio.
Это также может быть из-за проблем с правами доступа, особенно если запуск PulseAudio от root решает проблему. Добавьте своего пользователя в группу lp и перезапустите PulseAudio.
Смотрите /etc/dbus-1/system.d/bluetooth.conf
для справки.
Если перезапуск PulseAudio не помогает, возможно, требуется загрузить module-bluetooth-discover.
# pactl load-module module-bluetooth-discover
Такую же команду load-module можно добавить в /etc/pulse/default.pa
.
Если всё равно не работает или ваш PulseAudio общесистемный, также загрузите эти модули (опять же, их можно прописать в default.pa
или system.pa
):
module-bluetooth-policy module-bluez5-device module-bluez5-discover
Ещё может оказаться, что у владельца /var/lib/bluetooth/
нет доступа на запись. В таком случае проблема может решиться повторным сопряжением, но после перезагрузки всё опять перестанет работать. Возвращение прав на запись поможет:
# chmod -R u+w /var/lib/bluetooth
Соединение работает, но в звуке постоянные артефакты
Это скорее всего связано с тем, что Bluetooth и Wi-Fi используют один и тот же чип, одну и ту же антенну и, возможно, диапазон (2.4 ГГц). Хотя это работает без проблем в Windows, в Linux это не так.
Возможным решением является переключение вашей Wi-Fi сети на 5 ГГц, чтобы больше не возникало интерференции. Если карта/роутер не поддерживают этот диапазон, попробуйте обновить драйвера/прошивку Wi-Fi. Это работает на Realtek 8723BE с последними rtl драйверами с AUR.
Если сделать это невозможно, менее эффективным решением будет настройка размера фрагмента и задержки на выходе PulseAudio, через которые можно попытаться скомпенсировать интерференцию. Нужно выбирать разумные значения, так как эти изменения могут привести к рассинхронизации звука (например, при проигрывании видео). Для изменения задержки на порту bluetooth-наушников (например, 125000 микросекунд в данном примере):
$ pactl set-port-latency-offset <bluez_card> headset-output 125000
где идентификатор карты можно узнать с помощью
$ pacmd list-sinks | grep -Eo 'bluez_card[^>]*'
Размер фрагмента можно установить в файле /etc/pulse/daemon.conf
, изменения применятся после перезапуска PulseAudio (подробнее смотрите PulseAudio/Решение проблем#Определение номера фрагмента по умолчанию и размера буфера в PulseAudio).
Иногда может помочь добавление options ath9k btcoex_enable=1
в файл /etc/modprobe.d/ath9k.conf
(с соответствующим адаптером bluetooth):
/etc/modprobe.d/ath9k.conf
# possibly fix for sound glitches options ath9k btcoex_enable=1
После этого перезагрузитесь.
Соединение работает, но не получается воспроизвести звук
Поищите в системном журнале такие сообщения:
bluetoothd[5556]: Endpoint registered: sender=:1.83 path=/MediaEndpoint/A2DPSource bluetoothd[5556]: Endpoint registered: sender=:1.83 path=/MediaEndpoint/A2DPSink
Если подобные сообщения есть, можно продолжить изучать конфигурацию PulseAudio. Если нет, то убедитесь, что соединение успешно.
При использовании GDM запускается другой экземпляр PulseAudio, который «захватывает» ваши bluetooth-соединения. Это можно предотвратить, замаскировав сокет pulseaudio для пользователя GDM:
# mkdir -p /var/lib/gdm/.config/systemd/user # ln -s /dev/null /var/lib/gdm/.config/systemd/user/pulseaudio.socket
При следующей перезагрузке второй экземпляр PulseAudio запускаться не будет.
Также может оказаться, что bluez неправильно определяет наушники как не поддерживающие a2dp. В таком случае найдите индекс bluetooth-устройства:
$ pacmd ls
Среди вывода должен быть раздел, связанный с bluetooth-наушниками, выглядящий примерно так:
$ pacmd ls
index: 2 name: <bluez_card.XX_XX_XX_XX_XX_XX> driver: <module-bluez5-device.c> owner module: 27 properties: device.description = "SONY MDR-100ABN" device.string = "XX:XX:XX:XX:XX:XX" device.api = "bluez" device.class = "sound" ...
Для ручного выбора профиля выполните
$ pacmd set-card-profile 2 a2dp_sink
где 2 это индекс устройства, полученный через pacmd ls
.
Соединение работает, звук играет, а после неактивности заикается
Если наушники играют звук нормально до ухода в режим ожидания, а после возобновления начинает заикаться (например, если звук был приостановлен или ничего не воспроизводилось какое-то время), попробуйте отключить автоматическую приостановку входа/выхода в PulseAudio.
Некоторые пользователи сообщают об огромных задержках или даже отсутствии звука, когда Bluetooth-соединение не отправляет никаких данных. Это из-за модуля module-suspend-on-idle
, который автоматически приостанавливает неактивные входы/выходы.
Чтобы отключить загрузку этого модуля, закомментируйте эту строку в используемом файле конфигурации (~/.config/pulse/default.pa
или /etc/pulse/default.pa
):
~/.config/pulse/default.pa
### Automatically suspend sinks/sources that become idle for too long #load-module module-suspend-on-idle
Перезапустите PulseAudio для применения изменений.
UUIDs has unsupported type
В процессе сопряжения вы можете увидеть в bluetoothctl такой вывод:
[CHG] Device 00:1D:43:6D:03:26 UUIDs has unsupported type
Это сообщение очень частое и может быть проигнорировано.
Компьютер показывает устройство как сопряжённое, но это не распознаётся устройством
Это может быть из-за того, что устройство не поддерживает Bluetooth LE для сопряжения.
Попробуйте прописать настройку ControllerMode = bredr
в файле /etc/bluetooth/main.conf
. Смотрите [1].
Устройство подключается и затем отключается спустя мгновение
Если вы видите в журнале подобные сообщения и устройство не может подключиться или отключается вскоре после подключения:
bluetoothd: Unable to get connect data for Headset Voice gateway: getpeername: Transport endpoint is not connected (107) bluetoothd: connect error: Connection refused (111)
Это может быть из-за того, что вы уже настроили сопряжение с этим устройством в другой операционной системе с тем же Bluetooth-адаптером (например, в случае dual-booting). Некоторые устройства не могут обрабатывать несколько сопряжений с одним и тем же MAC-адресом. Смотрите Bluetooth (Русский)#Сопряжение при Dual boot для настройки сопряжения в обоих ОС.
Если другая ОС вас уже не интересует, можно просто выполнить сопряжение заново. Сперва удалите существующее сопряжение:
$ bluetoothctl [bluetooth]# devices Device XX:XX:XX:XX:XX:XX My Device [bluetooth]# remove XX:XX:XX:XX:XX:XX
Затем перезапустите bluetooth.service
, включите bluetooth-адаптер, сделайте своё устройство видимым, пересканируйте устройства и выполните сопряжение с вашим устройством (смотрите основную статью). В зависимости от вашего менеджера Bluetooth может понадобиться выполнить полную перезагрузку для переподключения устройств.
В Apple AirPods маленькая громкость
Создайте drop-in файл для службы bluetooth.service
со следующим содержимым:
/etc/systemd/system/bluetooth.service.d/noplugin-avrc.conf
[Service] ExecStart= ExecStart=/usr/lib/bluetooth/bluetoothd --noplugin=avrcp
Затем выполните systemctl daemon-reload
, перезапустите bluetooth.service
, и переподключите наушники.
Кроме того, для AirPods Pro отключите пространственный звук и включите моно в настройках вашего iPhone.
Это также может решить проблемы с некоторыми устройствами, которыми нельзя управлять через AVRCP.
Apple AirPods Pro работает с PulseAudio как выход A2DP, но не как HSP/HFP
Если AirPods Pro работает, но не может использовать HSP/HFP (в pavucontrol на вкладке Конфигурациия обычно отображается как недоступный), попробуйте перейти на pipewire-pulse.
Переход на pipewire-pulse (и перезапуск компьютера или соответствующих пользовательских служб) должен включить HSP/HFP, но также может отключить A2DP (при выборе этого профиля в pavucontrol он мгновенно отключается). Если у вас появилась такая проблема, попробуйте удалить/переименовать папку /var/lib/bluetooth
:
# mv /var/lib/bluetooth /var/lib/bluetooth.bak
После этого проведите повторное сопряжение с AirPods Pro (и другими устройствами). После этого все конфигурации (HSP/HFP и A2DP) должны быть снова доступны в pavucontrol и pacmd.
Проблема с HSP: ввод и вывод bluetooth созданы, но звук не передаётся
У вас может отсутствовать прошивка или SCO (аудио протокол HSP и HFP) роутинг может быть неправильным. Смотрите [2] — прошивка для BCM20702 может быть установлена через пакет bcm20702a1-firmwareAUR или bcm20702b0-firmwareAUR.
Error: Failed to start discovery org.bluez.Error.InProgress
Если наушники обнаруживаются, но подключение не проходит с ошибкой «Failed to start discovery org.bluez.Error.InProgress», установите bluez-hciconfigAUR и выполните
$ hciconfig hciX up $ hciconfig hciX reset
где X это идентификатор bluetooth-устройства вашего компьютера (обычно 0).
Теперь подключение должно работать как описано в #Настройка через командную строку.
Переключение между HSP/HFP и A2DP
Это можно сделать с помощью следующей команды, где номер_карты
можно узнать с помощью команды pacmd list-cards
.
$ pacmd set-card-profile номер_карты a2dp_sink
Для автоматического переключения с A2DP на HSP при включении записи можно добавить auto_switch=2
к load-module module-bluetooth-policy
в файле /etc/pulse/default.pa
.
Подробнее о профилях смотрите документацию PulseAudio.
A2DP не работает с PulseAudio
Проблема с интерфейсом Socket
Если PulseAudio не может переключить профиль на A2DP с bluez 4.1+ и PulseAudio 3.0+, можно попробовать отключить интерфейс Socket в файле /etc/bluetooth/main.conf
путём удаления строки Enable=Socket
и добавления Disable=Socket
.
Недоступен профиль выхода A2DP
Когда профиль вывода A2DP недоступен, становится невозможно переключиться на A2DP вывод в настройках PulseAudio или он вообще не отображается в списке. Это можно проверить с помощью pactl
:
$ pactl list | grep -C2 A2DP Profiles: headset_head_unit: Headset Head Unit (HSP/HFP) (sinks: 1, sources: 1, priority: 30, available: yes) a2dp_sink: High Fidelity Playback (A2DP Sink) (sinks: 1, sources: 0, priority: 40, available: no) off: Off (sinks: 0, sources: 0, priority: 0, available: yes) Active Profile: headset_head_unit
Попытка ручного изменения профиля через pacmd
также окончится неудачей.
$ pacmd set-card-profile bluez_card.C4_45_67_09_12_00 a2dp_sink Failed to set card profile to 'a2dp_sink'.
Это известная проблема Pulseaudio с версии 10.0 при подключении Bluetooth-наушников через Bluedevil или другой фронтенд BlueZ. Смотрите связанный баг-репорт.
Эта проблема также случается после сопряжения на некоторых Bluetooth-контроллерах (например, 0a12:0001, Cambridge Silicon Radio
), которые по умолчанию включают службу Handsfree
или Headset - HS
и не позволяют переключиться на A2DP.
Возможные решения:
- На некоторых наушниках помогает нажатие кнопок управления громкостью и воспроизведением, после чего профиль A2DP становится доступным.
- Может оказаться, что подключение наушников через
bluetoothctl
из пакета bluez-utils делает профиль A2DP доступным. Можно автоматизировать это каждый раз при подключении bluetooth: fix-bt-a2dpAUR (детальное описание).
[bluetooth]# connect MAC_адрес_наушников
- Ручное переключение на Bluetooth-службу
AudioSink
может сделать профиль A2DP и A2DP-вывод в PulseAudio доступным. Это можно сделать через blueman-manager из пакета blueman или путём регистрации UUID службы AudioSink черезbluetoothctl
.
$ bluetoothctl [bluetooth]# menu gatt [bluetooth]# register-service 0000110b-0000-1000-8000-00805f9b34fb [bluetooth]# quit
- Отключите профиль Headset
/etc/bluetooth/main.conf
[General] Disable=Headset
- Включите поддержку MultiProfile. Это может помочь для наушников, которые поддерживают как A2DP, так и Headset.
/etc/bluetooth/main.conf
[General] MultiProfile=multiple
- Иногда никакой из предыдущих шагов не помогает. Возможно, вы безрезультатно пытались перезагрузить и выключить Bluetooth, а затем снова включить его. В таком случае попробуйте перезапустить службу
bluetooth.service
. - Замена pulseaudio-bluetooth на pulseaudio-modules-btAUR[ссылка недействительна: package not found] или pulseaudio-modules-bt-gitAUR[ссылка недействительна: package not found], которые предоставляют дополнительные Bluetooth-кодеки, может помочь.
- На некоторых моделях наушников с возможностью управления звуком профиль A2DP необходимо включить, нажав кнопку «Воспроизведение / Пауза».
Gnome с GDM
Эта инструкция протестирована с Gnome 3.24.2 и PulseAudio 10.0, но может быть полезна и для других версий.
Если PulseAudio не удаётся изменить профиль на A2DP при использовании GNOME с GDM, нужно запретить GDM запуск его собственного экземпляра PulseAudio:
- Предотвратите запуск сервера клиентами Pulseaudio, если он не запущен, с помощью добавления этих строк:
/var/lib/gdm/.config/pulse/client.conf
autospawn = no daemon-binary = /bin/true
- Предотвратите запуск Pulseaudio через socket-активацию:
$ sudo -ugdm mkdir -p /var/lib/gdm/.config/systemd/user $ sudo -ugdm ln -s /dev/null /var/lib/gdm/.config/systemd/user/pulseaudio.socket
- Перезагрузитесь и проверьте, что нет процесса PulseAudio, запущенного пользователем
gdm
:
$ pgrep -u gdm pulseaudio
Обсуждение этой проблемы и другие варианты решения можно почитать на форуме: [3] и [4]. Также можно попробовать fix-bt-a2dpAUR.
HFP не работает с PulseAudio
Наушники с поддержкой только HFP могут не заработать со стандартной конфигурацией PulseAudio. Соответствующие профили есть, но они недоступны:
bluetoothctl info
показывает:
UUID: Audio Sink (0000110b-0000-1000-8000-00805f9b34fb) UUID: A/V Remote Control Target (0000110c-0000-1000-8000-00805f9b34fb) UUID: A/V Remote Control (0000110e-0000-1000-8000-00805f9b34fb) UUID: Handsfree (0000111e-0000-1000-8000-00805f9b34fb)
pactl list
соответствующего устройства показывает:
... Profiles: ... headset_head_unit: Headset Head Unit (HSP/HFP) (sinks: 1, sources: 1, priority: 30, available: no)
Для решения проблемы обновите pulseaudio (>=13) и возможно pulseaudio-modules-bt-gitAUR[ссылка недействительна: package not found] и bluez (>=5.5) до последних версий. Затем установите ofonoAUR (запустите и включите службу systemd) и phonesimAUR и создайте поддельный модем как описано здесь [5]:
Примечание: Шаги после создания phonesim.conf
нужно повторять каждый раз для подключения наушников.
- Создайте
/etc/ofono/phonesim.conf
:
[phonesim] Address=127.0.0.1 Driver=phonesim Port=12345
- Запустите от имени своего пользователя:
$ phonesim -p 12345 /usr/share/phonesim/default.xml &
- Запустите и включите службу
ofono
.
- Включите модем:
$ dbus-send --print-reply --system --dest=org.ofono /phonesim org.ofono.Modem.SetProperty string:"Powered" variant:boolean:true
- Активируйте модем:
$ dbus-send --print-reply --system --dest=org.ofono /phonesim org.ofono.Modem.SetProperty string:"Online" variant:boolean:true
- Для проверки результата используйте команды тестирования из пакета ofonoAUR, находящиеся в каталоге
/usr/lib/ofono/test/
. Для включения, активации и тестирования модема можно использовать:
$ /usr/lib/ofono/test/enable-modem /phonesim $ /usr/lib/ofono/test/online-modem /phonesim $ /usr/lib/ofono/test/list-modems
Вывод для соответствующего модема должен выглядеть примерно так:
... [ /phonesim ] Online = 1 Powered = 1 Lockdown = 0 Emergency = 0 Manufacturer = MeeGo ...
- Наконец, перезапустите pulseaudio и переподключите наушники. Теперь HFP должен стать доступен:
headset_head_unit: Headset Head Unit (HSP/HFP) (sinks: 1, sources: 1, priority: 30, available: yes)
Примечание: Поддержка HFP не является стабильной и может приводить к артефактам при переключении на A2DP; попробуйте переподключиться, если нужный режим недоступен.
Отключение автоматического перехода наушникосв на HSP/HFP
При использовании наушников, поддерживающих несколько профилей, некоторые приложения автоматически переключают их на профиль HSP/HFP. Если вас это не устрвивает, можно отключить это добавлением параметра auto_switch=false к модулю bluetooth-policy:
/etc/pulse/default.pa
load-module module-bluetooth-policy auto_switch=false
Ubuntu
name@laptop:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 20.04.1 LTS
Release: 20.04
Codename: focal
name@laptop:~$ uname -a
Linux laptop 5.4.0-62-generic #70-Ubuntu SMP Tue Jan 12 12:45:47 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
USB Bluetooth
Bus 004 Device 003: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)
Config
name@laptop:~$ cat /etc/bluetooth/input.conf
# Configuration file for the input service
# This section contains options which are not specific to any
# particular interface
[General]
# Set idle timeout (in minutes) before the connection will
# be disconnect (defaults to 0 for no timeout)
IdleTimeout=0
# Enable HID protocol handling in userspace input profile
# Defaults to false (HIDP handled in HIDP kernel module)
#UserspaceHID=true
# Limit HID connections to bonded devices
# The HID Profile does not specify that devices must be bonded, however some
# platforms may want to make sure that input connections only come from bonded
# device connections. Several older mice have been known for not supporting
# pairing/encryption.
# Defaults to false to maximize device compatibility.
#ClassicBondedOnly=true
# LE upgrade security
# Enables upgrades of security automatically if required.
# Defaults to true to maximize device compatibility.
#LEAutoSecurity=true
name@laptop:~$ cat /etc/bluetooth/main.conf
[General]
# Default adaper name
# Defaults to 'BlueZ X.YZ'
#Name = BlueZ
# Default device class. Only the major and minor device class bits are
# considered. Defaults to '0x000000'.
#Class = 0x000100
# How long to stay in discoverable mode before going back to non-discoverable
# The value is in seconds. Default is 180, i.e. 3 minutes.
# 0 = disable timer, i.e. stay discoverable forever
DiscoverableTimeout = 30
# How long to stay in pairable mode before going back to non-discoverable
# The value is in seconds. Default is 0.
# 0 = disable timer, i.e. stay pairable forever
#PairableTimeout = 0
# Automatic connection for bonded devices driven by platform/user events.
# If a platform plugin uses this mechanism, automatic connections will be
# enabled during the interval defined below. Initially, this feature
# intends to be used to establish connections to ATT channels. Default is 60.
#AutoConnectTimeout = 60
# Use vendor id source (assigner), vendor, product and version information for
# DID profile support. The values are separated by ":" and assigner, VID, PID
# and version.
# Possible vendor id source values: bluetooth, usb (defaults to usb)
#DeviceID = bluetooth:1234:5678:abcd
# Do reverse service discovery for previously unknown devices that connect to
# us. This option is really only needed for qualification since the BITE tester
# doesn't like us doing reverse SDP for some test cases (though there could in
# theory be other useful purposes for this too). Defaults to 'true'.
#ReverseServiceDiscovery = true
# Enable name resolving after inquiry. Set it to 'false' if you don't need
# remote devices name and want shorter discovery cycle. Defaults to 'true'.
#NameResolving = true
# Enable runtime persistency of debug link keys. Default is false which
# makes debug link keys valid only for the duration of the connection
# that they were created for.
#DebugKeys = false
# Restricts all controllers to the specified transport. Default value
# is "dual", i.e. both BR/EDR and LE enabled (when supported by the HW).
# Possible values: "dual", "bredr", "le"
ControllerMode = bredr
# Enables Multi Profile Specification support. This allows to specify if
# system supports only Multiple Profiles Single Device (MPSD) configuration
# or both Multiple Profiles Single Device (MPSD) and Multiple Profiles Multiple
# Devices (MPMD) configurations.
# Possible values: "off", "single", "multiple"
#MultiProfile = off
# Permanently enables the Fast Connectable setting for adapters that
# support it. When enabled other devices can connect faster to us,
# however the tradeoff is increased power consumptions. This feature
# will fully work only on kernel version 4.1 and newer. Defaults to
# 'false'.
FastConnectable = true
[Policy]
# The ReconnectUUIDs defines the set of remote services that should try
# to be reconnected to in case of a link loss (link supervision
# timeout). The policy plugin should contain a sane set of values by
# default, but this list can be overridden here. By setting the list to
# empty the reconnection feature gets disabled.
#ReconnectUUIDs=00001112-0000-1000-8000-00805f9b34fb, 0000111f-0000-1000-8000-00805f9b34fb, 0000110a-0000-1000-8000-00805f9b34fb
# ReconnectAttempts define the number of attempts to reconnect after a link
# lost. Setting the value to 0 disables reconnecting feature.
#ReconnectAttempts=7
# ReconnectIntervals define the set of intervals in seconds to use in between
# attempts.
# If the number of attempts defined in ReconnectAttempts is bigger than the
# set of intervals the last interval is repeated until the last attempt.
#ReconnectIntervals=1, 2, 4, 8, 16, 32, 64
# AutoEnable defines option to enable all controllers when they are found.
# This includes adapters present on start as well as adapters that are plugged
# in later on. Defaults to 'false'.
AutoEnable=true
name@laptop:~$ cat /etc/bluetooth/network.conf
# Configuration file for the network service
[General]
# Disable link encryption: default=false
# DisableSecurity=true
Headphones worked with my Android Phone. But not working with Ubuntu.
Bluedio H2 New(black)
Trying to pair
name@laptop:~$ sudo bluetoothctl
Agent registered
[CHG] Controller 00:1A:7D:DA:71:10 Pairable: yes
[bluetooth]# list
Controller 00:1A:7D:DA:71:10 laptop [default]
[bluetooth]# select 00:1A:7D:DA:71:10
[bluetooth]# agent on
Agent is already registered
[bluetooth]# default-agent
Default agent request successful
[bluetooth]# show 00:1A:7D:DA:71:10
Controller 00:1A:7D:DA:71:10 (public)
Name: laptop
Alias: laptop
Class: 0x000c0104
Powered: yes
Discoverable: yes
DiscoverableTimeout: 0x00000000
Pairable: yes
UUID: Audio Source (0000110a-0000-1000-8000-00805f9b34fb)
UUID: Headset (00001108-0000-1000-8000-00805f9b34fb)
UUID: Headset AG (00001112-0000-1000-8000-00805f9b34fb)
UUID: PnP Information (00001200-0000-1000-8000-00805f9b34fb)
UUID: A/V Remote Control Target (0000110c-0000-1000-8000-00805f9b34fb)
UUID: A/V Remote Control (0000110e-0000-1000-8000-00805f9b34fb)
UUID: Audio Sink (0000110b-0000-1000-8000-00805f9b34fb)
Modalias: usb:v1D6Bp0246d0535
Discovering: no
[bluetooth]# scan on
Failed to start discovery: org.bluez.Error.InProgress
[bluetooth]# devices
Device 1F:47:3F:3F:C0:5E H2
[bluetooth]# scan off
Failed to stop discovery: org.bluez.Error.InProgress
[bluetooth]# info 1F:47:3F:3F:C0:5E
Device 1F:47:3F:3F:C0:5E (public)
Name: H2
Alias: H2
Class: 0x00240404
Icon: audio-card
Paired: no
Trusted: yes
Blocked: no
Connected: no
LegacyPairing: no
[bluetooth]# pair 1F:47:3F:3F:C0:5E
Attempting to pair with 1F:47:3F:3F:C0:5E
Failed to pair: org.bluez.Error.AuthenticationCanceled
[bluetooth]#
dmesg
name@laptop:~$ dmesg | grep -i bluetooth
[ 16.903869] Bluetooth: Core ver 2.22
[ 16.903900] Bluetooth: HCI device and connection manager initialized
[ 16.903905] Bluetooth: HCI socket layer initialized
[ 16.903907] Bluetooth: L2CAP socket layer initialized
[ 16.903911] Bluetooth: SCO socket layer initialized
[ 1123.168832] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[ 1123.168836] Bluetooth: BNEP filters: protocol multicast
[ 1123.168853] Bluetooth: BNEP socket layer initialized
[ 1123.280483] Bluetooth: RFCOMM TTY layer initialized
[ 1123.280507] Bluetooth: RFCOMM socket layer initialized
[ 1123.280522] Bluetooth: RFCOMM ver 1.11
[ 1730.024587] Bluetooth: hci0: command 0x0401 tx timeout
[ 1777.448773] Bluetooth: hci0: command 0x0405 tx timeout
[ 1898.121350] Bluetooth: hci0: command 0x0408 tx timeout
[ 1903.049352] Bluetooth: hci0: command 0x0401 tx timeout
name@laptop:~$ dmesg | grep -i 'usb 4-3'
[ 1121.664846] usb 4-3: new full-speed USB device number 3 using ohci-pci
[ 1121.863415] usb 4-3: New USB device found, idVendor=0a12, idProduct=0001, bcdDevice=25.20
[ 1121.863424] usb 4-3: New USB device strings: Mfr=0, Product=2, SerialNumber=0
[ 1121.863429] usb 4-3: Product: CSR8510 A10
dmesg 2
[ 1121.664846] usb 4-3: new full-speed USB device number 3 using ohci-pci
[ 1121.863415] usb 4-3: New USB device found, idVendor=0a12, idProduct=0001, bcdDevice=25.20
[ 1121.863424] usb 4-3: New USB device strings: Mfr=0, Product=2, SerialNumber=0
[ 1121.863429] usb 4-3: Product: CSR8510 A10
[ 1123.021845] usbcore: registered new interface driver btusb
[ 1123.168832] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[ 1123.168836] Bluetooth: BNEP filters: protocol multicast
[ 1123.168853] Bluetooth: BNEP socket layer initialized
[ 1123.189898] NET: Registered protocol family 38
[ 1123.280483] Bluetooth: RFCOMM TTY layer initialized
[ 1123.280507] Bluetooth: RFCOMM socket layer initialized
[ 1123.280522] Bluetooth: RFCOMM ver 1.11
[ 1730.024587] Bluetooth: hci0: command 0x0401 tx timeout
[ 1777.448773] Bluetooth: hci0: command 0x0405 tx timeout
[ 1898.121350] Bluetooth: hci0: command 0x0408 tx timeout
[ 1903.049352] Bluetooth: hci0: command 0x0401 tx timeout
hciconfig
name@laptop:~$ sudo hciconfig -a
hci0: Type: Primary Bus: USB
BD Address: 00:1A:7D:DA:71:10 ACL MTU: 310:4 SCO MTU: 64:8
UP RUNNING PSCAN ISCAN
RX bytes:714 acl:0 sco:0 events:52 errors:0
TX bytes:3124 acl:0 sco:0 commands:52 errors:0
Features: 0xff 0xff 0x8f 0xfa 0xdb 0xff 0x5b 0x87
Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3
Link policy: RSWITCH HOLD SNIFF PARK
Link mode: SLAVE ACCEPT
Can't read local name on hci0: Connection timed out (110)
name@laptop:~$ sudo hciconfig hci0 piscan
Can't set scan mode on hci0: Connection timed out (110)
usb-devices
T: Bus=04 Lev=01 Prnt=01 Port=02 Cnt=02 Dev#= 4 Spd=12 MxCh= 0
D: Ver= 2.00 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=64 #Cfgs= 1
P: Vendor=0a12 ProdID=0001 Rev=25.20
S: Product=CSR8510 A10
C: #Ifs= 2 Cfg#= 1 Atr=a0 MxPwr=100mA
I: If#=0x0 Alt= 0 #EPs= 3 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
I: If#=0x1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
rfkill
name@laptop:~$ sudo rfkill list
1: hci0: Bluetooth
Soft blocked: no
Hard blocked: no
btmon
terminal 1
name@laptop:~$ sudo hciconfig hci0 down
name@laptop:~$ sudo hciconfig hci0 up
Can't init device hci0: Connection timed out (110)
name@laptop:~$
terminal2
name@laptop:~$ sudo btmon
[sudo] пароль до name:
Bluetooth monitor ver 5.53
= Note: Linux version 5.4.0-62-generic (x86_64) 0.409168
= Note: Bluetooth subsystem version 2.22 0.409175
= New Index: 00:1A:7D:DA:71:10 (Primary,USB,hci0) [hci0] 0.409178
@ MGMT Open: bluetoothd (privileged) version 1.14 {0x0001} 0.409181
@ MGMT Open: btmon (privileged) version 1.14 {0x0002} 0.409218
@ RAW Open: hciconfig (privileged) version 2.22 {0x0003} 12.005247
@ RAW Close: hciconfig {0x0003} 12.005303
@ RAW Open: hciconfig (privileged) version 2.22 {0x0003} 18.308064
= Open Index: 00:1A:7D:DA:71:10 [hci0] 18.374266
< HCI Command: Reset (0x03|0x0003) plen 0 #1 [hci0] 18.374345
= Close Index: 00:1A:7D:DA:71:10 [hci0] 28.425934
@ RAW Close: hciconfig {0x0003} 28.429311
/sys/kernel/debug/usb/devices
T: Bus=04 Lev=01 Prnt=01 Port=02 Cnt=02 Dev#= 4 Spd=12 MxCh= 0
D: Ver= 2.00 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=64 #Cfgs= 1
P: Vendor=0a12 ProdID=0001 Rev=25.20
S: Product=CSR8510 A10
C:* #Ifs= 2 Cfg#= 1 Atr=a0 MxPwr=100mA
I:* If#= 0 Alt= 0 #EPs= 3 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
E: Ad=83(I) Atr=03(Int.) MxPS= 16 Ivl=1ms
E: Ad=01(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
E: Ad=81(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
I:* If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
E: Ad=02(O) Atr=01(Isoc) MxPS= 0 Ivl=1ms
E: Ad=82(I) Atr=01(Isoc) MxPS= 0 Ivl=1ms
I: If#= 1 Alt= 1 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
E: Ad=02(O) Atr=01(Isoc) MxPS= 9 Ivl=1ms
E: Ad=82(I) Atr=01(Isoc) MxPS= 9 Ivl=1ms
I: If#= 1 Alt= 2 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
E: Ad=02(O) Atr=01(Isoc) MxPS= 17 Ivl=1ms
E: Ad=82(I) Atr=01(Isoc) MxPS= 17 Ivl=1ms
I: If#= 1 Alt= 3 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
E: Ad=02(O) Atr=01(Isoc) MxPS= 25 Ivl=1ms
E: Ad=82(I) Atr=01(Isoc) MxPS= 25 Ivl=1ms
I: If#= 1 Alt= 4 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
E: Ad=02(O) Atr=01(Isoc) MxPS= 33 Ivl=1ms
E: Ad=82(I) Atr=01(Isoc) MxPS= 33 Ivl=1ms
I: If#= 1 Alt= 5 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
E: Ad=02(O) Atr=01(Isoc) MxPS= 49 Ivl=1ms
E: Ad=82(I) Atr=01(Isoc) MxPS= 49 Ivl=1ms
btmon when connect bluetooth
Problems:
- Failed to start discovery: org.bluez.Error.InProgress
- Failed to stop discovery: org.bluez.Error.InProgress
- Failed to pair: org.bluez.Error.AuthenticationCanceled
- command 0x0401 tx timeout
- Can’t read local name on hci0: Connection timed out (110)
- Can’t set scan mode on hci0: Connection timed out (110)
Maybe same problem
- this