PulseAudio не удается установить профиль карты на 'a2dp_sink'. Как я могу посмотреть логи и понять, что не так?

В настоящее время я установил ubuntu 16.04, и a2dp раньше работал при свежей установке, которую я'предпочел бы оставить как последний вариант. Когда сопряжение стирается из настроек bluetooth и снова сопрягается, иногда удается установить профиль a2dp, но если гарнитура отключается, а затем снова подключается, профиль a2dp больше не работает (хотя он говорит, что находится на a2dp), он работает только после переключения на HSP/HSF, а затем я'не могу установить его на a2dp.

Я пробовал делать следующее:

 pacmd set-card-profile <index> a2dp_sink

но выходит следующая ошибка:

"Failed to set card profile to 'a2dp_sink'"

Я 'довольно неопытен в Linux, поэтому я 'не знаю, как получить журналы или что в них искать, но я получил это из pacmd list-cards:

Когда это работает:

name: <bluez_card.50_C9_71_97_A1_86>
driver: <module-bluez5-device.c>
owner module: 27
properties:
    device.description = "Jabra REVO a4.0.0"
    device.string = "50:C9:71:97:A1:86"
    device.api = "bluez"
    device.class = "sound"
    device.bus = "bluetooth"
    device.form_factor = "headset"
    bluez.path = "/org/bluez/hci0/dev_50_C9_71_97_A1_86"
    bluez.class = "0x240404"
    bluez.alias = "Jabra REVO a4.0.0"
    device.icon_name = "audio-headset-bluetooth"
    device.intended_roles = "phone"
profiles:
    headset_head_unit: Headset Head Unit (HSP/HFP) (priority 20, available: unknown)
    a2dp_sink: High Fidelity Playback (A2DP Sink) (priority 10, available: unknown)
    off: Off (priority 0, available: yes)
active profile: <a2dp_sink>
sinks:
    bluez_sink.50_C9_71_97_A1_86/#6: Jabra REVO a4.0.0
sources:
    bluez_sink.50_C9_71_97_A1_86.monitor/#10: Monitor of Jabra REVO a4.0.0
ports:
    headset-output: Headset (priority 0, latency offset 0 usec, available: unknown)
        properties:

    headset-input: Headset (priority 0, latency offset 0 usec, available: unknown)
        properties:

Когда не работает:

name: <bluez_card.50_C9_71_97_A1_86>
driver: <module-bluez5-device.c>
owner module: 25
properties:
    device.description = "Jabra REVO a4.0.0"
    device.string = "50:C9:71:97:A1:86"
    device.api = "bluez"
    device.class = "sound"
    device.bus = "bluetooth"
    device.form_factor = "headset"
    bluez.path = "/org/bluez/hci0/dev_50_C9_71_97_A1_86"
    bluez.class = "0x240404"
    bluez.alias = "Jabra REVO a4.0.0"
    device.icon_name = "audio-headset-bluetooth"
    device.intended_roles = "phone"
profiles:
    headset_head_unit: Headset Head Unit (HSP/HFP) (priority 20, available: unknown)
    a2dp_sink: High Fidelity Playback (A2DP Sink) (priority 10, available: yes)
    off: Off (priority 0, available: yes)
active profile: <off>
ports:
    headset-output: Headset (priority 0, latency offset 0 usec, available: yes)
        properties:

    headset-input: Headset (priority 0, latency offset 0 usec, available: unknown)
        properties:

И владеющий модуль:

name: <module-bluez5-device>
argument: <path=/org/bluez/hci0/dev_50_C9_71_97_A1_86>
used: 0
load once: no
properties:
    module.author = "João Paulo Rechi Vita"
    module.description = "BlueZ 5 Bluetooth audio sink and source"
    module.version = "8.0"

Я уже пытался изменить /etc/bluetooth/audio.conf и установить blueman, но это не помогло. Я также пытался переустановить bluez и pulseaudio, но ничего не изменилось.

Есть ли способ узнать, что не так, и исправить это?

Комментарии к вопросу (2)

На основании строки "активный профиль: " звуковой профиль не активировался.

Одной из программ, которую легко использовать для изменения профиля, является pavucontrol. Вы можете установить ее с помощью sudo apt install pavucontrol -y. Затем запустите pavucontrol из командной строки или Alt+F2, если вы находитесь на Kubuntu, и введите pavucontrol.

Выберите вкладку конфигурации, а затем попробуйте изменить профиль для ваших наушников и посмотрите, обновится ли он для вас. Похоже, что в linux все еще есть ошибка с bluetooth a2dp, и она затрагивает две из моих установок 16.04. Если в профиле уже указано A2DP, измените его на OFF, отключите устройство в апплете bluetooth, затем снова подключите его. Затем перейдите к изменению профиля на A2DP, и все должно заработать.

Вы также можете попробовать выполнить следующие действия в командной строке, и это должно завершить большинство операций. Замените цифру 2 на текущий индексный номер для обеих команд pacmd ниже.

pacmd set-card-profile 2 off
bluetoothctl
disconnect 50:C9:71:97:A1:86
connect 50:C9:71:97:A1:86
pacmd set-card-profile 2 a2dp_sink

Для более сложного, но автоматизированного способа сделать то же самое для циклического переключения профиля на off, а затем обратно на a2dp, но не выполнять отключение и подключение устройства bluetooth

index=`pacmd list-cards | grep bluez_card -B1 | grep index | awk '{print $2}'`;pacmd set-card-profile $index off; pacmd set-card-profile $index a2dp_sink 

Я также должен был сделать рабочий, но небрежный скрипт, чтобы сделать то же самое, но также отключить и снова подключить наушники bluetooth. Он захватывает индекс профиля, потому что индекс меняется каждый раз, когда устройство отключается и снова подключается. Это жестко закодировано с идентификатором устройства для гарнитуры, которую вы перечислили выше

pacmd set-card-profile `pacmd list-cards | grep bluez_card -B1 | grep index | awk '{print $2}'` off; sleep 2 ; echo -e "disconnect 50:C9:71:97:A1:86\n quit"|bluetoothctl;sleep 5; echo -e "connect 50:C9:71:97:A1:86\n quit"|bluetoothctl; sleep 5; pacmd set-card-profile `pacmd list-cards | grep bluez_card -B1 | grep index | awk '{print $2}'` a2dp_sink

Во время тестирования я выбрал 5 секунд для сна вместо 3, потому что устройство еще не было готово к изменению аудиопрофиля. Ваши результаты могут отличаться на несколько секунд +/- 5 секунд. Редактирование относительно потенциального подводного камня. Я обнаружил, что иногда требуется запустить большой скрипт дважды, прежде чем он сработает. Я не уверен, что увеличение времени сна поможет или нет, так как я не проверял это. Но я использовал его на двух машинах с BT-наушниками одной и той же марки, и он делает то, что должен, для автоматизации процесса, чтобы заставить звук работать на наушниках.

В конце концов, проблема будет исправлена в пакете bluetooth, но, похоже, она продолжает возвращаться в новых выпусках Ubuntu, а также других версий Linux. Но в любом случае, надеюсь, это поможет вам

Комментарии (5)

Для того, чтобы позволить вашей системе, чтобы быть обнаружены как A2DP для раковины (например, для воспроизведения музыки с вашего телефона через динамики вашего компьютера), добавить включить=источник,приемник,носитель,гнездо в разделе [Общие]в/etc/Bluetooth/аудио.конф`.

После этого, перезапустите демон блютуз

systemctl restart bluetooth

Подключите устройство наушники

bluetoothctl
connect 

Проверьте вашу карту и настроить профиль

pacmd list-cards
pacmd set-card-profile  
Комментарии (5)

У меня была эта проблема на Ubuntu 16.04.1 LTS, и применение обходного пути GDM, найденного на сайте https://wiki.debian.org/BluetoothUser/a2dp, решило ее.

В частности, создайте/отредактируйте /var/lib/gdm3/.config/pulse/client.conf, чтобы прочитать:

autospawn = no
daemon-binary = /bin/true

Затем

sudo chown gdm:gdm /var/lib/gdm3/.config/pulse/client.conf

Я также добавил в /etc/pulse/default.pa

load-module module-switch-on-connect

Хотя это может быть не совсем необходимо.

После перезагрузки я подключился через bluetooth-менеджер и смог успешно переключить аудиопрофиль на a2dp_sink.

Комментарии (2)

lagerismi разместил скрипт здесь на launchpad на основе ответа Jamie S.

  • Измените MAC-адрес устройства в переменной внутри скрипта! (можно найти с помощью bluetoothctl --> Device)

  • Сделайте скрипт исполняемым chmod a-x bluetooth_headphone_reactivation.sh.

Для автоматического выполнения при запуске (работает только если гарнитура уже включена):

  • Добавьте скрипт в скрипты запуска/выключения в панели управления KDE'.

Для быстрого ручного выполнения:

  • Добавьте запись в приложение-стартер (вы также можете установить сочетание клавиш, например "CTRL+ALT+H" и/или прикрепить этот стартер к панели окна).

Сценарий:

#!/bin/sh
device_mac=''
pacmd set-card-profile `pacmd list-cards | grep bluez_card -B1 | grep index | awk '{print $2}'` off
sleep 2 
echo "disconnect $device_mac\n quit"|bluetoothctl
sleep 5
echo "connect $device_mac\n quit"|bluetoothctl
sleep 5
pacmd set-card-profile `pacmd list-cards | grep bluez_card -B1 | grep index | awk '{print $2}'` a2dp_sink
Комментарии (1)

На Xubuntu В 16.04.2 Использовать блюман-менеджер:

  1. подключение -> набор профиль
  2. переподключение -> набор профиль A2DP
  3. теперь ваша гарнитура будет ОК!

Мой баш скрипт системы JBL

в

#!/bin/bash
#headset mac
mac="00:1D:DF:67:0A:29"
profile="a2dp"
# Special Bluetooth controller, default is empty
btMac=""
#connect|disconnect wait time
waitTime=5

macId="${mac//:/_}"
deviceId="bluez_card.$macId"

declare -A profiles
profiles['a2dp']='a2dp_sink'
profiles['hsp']='headset_head_unit'
profiles['off']='off'

function btCmd() {
    cmd="$1\nquit"
    [ ! -z "$btMac" ] && cmd="select $btMac\n$cmd"
    echo -e "$cmd" | bluetoothctl
}
function setProfile() {
    cmd="pactl set-card-profile $deviceId ${profiles[$1]}"
    echo $cmd
    $cmd
}
function btWaitConnect() {
    conState=$1
    for ((i=1;i set off
echo ""
tmp="`btCmd paired-devices | grep '^Device' | grep " $mac"`"
echo -e "paired-devices:\n$tmp"
[ `echo "$tmp" | wc -l` != 1 ] && echo "Please pair the Bluetooth headset first: $mac" && exit 1
btConnect || exit $?
setProfile off

# reconnect -> set profile
btDisConnect || exit $?
btConnect || exit $?
setProfile $profile
Комментарии (2)

Так что, если вы используете Debian вы можете сделать следующее: отказался переключить профиль на a2dp_sink: не подключен

Проблема ### Bluetooth-гарнитура подключена, но в ALSA/PulseAudio так не удается подобрать подключенного устройства или там's нет устройства, чтобы подобрать. Это происходит потому, что ГДМ захватывает раковина A2DP для начала сессии ГСД должен с PulseAudio в ГДМ сессии на доступность. Например, программы чтения с экрана требуется это.

Решение ### Для того, чтобы предотвратить ГСД от захвата раковина A2DP для начала сессии, редактировать файл/var/lib в/gdm3/.конфиг/пульс/клиента.conf файл (или создать его, если он не'т существуют):

autospawn = no
daemon-binary = /bin/true

После этого вы должны предоставить доступ к этому файлу в Debian-ГДМ пользователей:

chown Debian-gdm:Debian-gdm /var/lib/gdm3/.config/pulse/client.conf

Вам также может понадобится отключение автозагрузки с PulseAudio:

rm /var/lib/gdm3/.config/systemd/user/sockets.target.wants/pulseaudio.socket

Для того, чтобы автоматически подключить A2DP для некоторых устройств, добавить в файле /etc/пульс/по умолчанию.па:

load-module module-switch-on-connect

Перезагрузка.

Комментарии (1)

Как описано в здесь, это потому, что ГДМ захватывает раковина A2DP для начала сессии ГСД должен с PulseAudio в ГДМ сессии на доступность. <БР> Попробуйте добавить это, чтобы "/ВАР/Либ/gdm3/.конфигурации/пульс/по умолчанию.па" и, или создать его, после перезагрузки: <БР><БР>

#!/usr/bin/pulseaudio -nF
#

# load system wide configuration
.include /etc/pulse/default.pa

### unload driver modules for Bluetooth hardware
.ifexists module-bluetooth-policy.so
  unload-module module-bluetooth-policy
.endif

.ifexists module-bluetooth-discover.so
  unload-module module-bluetooth-discover
.endif
Комментарии (0)

Я'м уверены, что предыдущие ответы, на самом деле пытаются устранить коренную причину проблемы. Я, однако, был не в состоянии получить любого из них к Работа. У меня была точно такая же проблема, как ФП, но на Линукс Минт 17/18. Я написал сценарий, чтобы надежно получить Bluetooth подключен и используя профиль A2DP.

Копировать/вставить для потомков, но тяжесть вопроса в том, что он в точности повторяет то, что ОП (и я) бы сделать в пользовательском интерфейсе.

Сценарий Доминик не'т надежно работать для меня, потому что хотел только попробовать once, чтобы установить все вверх. Я'd должны запустить его несколько раз, чтобы заставить его работать. Это что я получила в итоге, который работает каждый раз.


#!/bin/bash

MAC=$1
CARD=$(echo "${MAC}" | sed -e 's/:/_/g')
CARD="bluez_card.${CARD}"

$(pactl list | grep -qi 'Active Profile: a2dp_sink')
a2dpUsed=$?

# this loops until a2dp is _actually used_ on the given MAC.
while [ ${a2dpUsed} -ne 0 ];
do
    #
    echo "Restarting bluetooth."
    rfkill unblock bluetooth
    sudo service bluetooth restart
    sudo hciconfig hci0 up

    # reconnect
    echo -e "power on\nconnect ${MAC}" | bluetoothctl

    #
    echo "Waiting for headset to be connected..."
    btConnected=1

    while [ ${btConnected} -gt 0 ];
    do

        sleep .1
        $(bluetoothctl 
Комментарии (0)
systemctl restart bluetooth
  • Откройте Настройки звука (можно нажатием на значок динамика в трее)
  • Попробуйте и изменить профиль вывода для раковины с A2DP.
  • Если это не'т работу, изменить устройство к динамикам, или что-то еще, а затем включите его обратно.
  • Я считаю, что тогда я могу установить мой профиль выход
Комментарии (0)

Я пытаюсь настроить Bluetooth и всегда получал эту ошибку.

Я обнаружил, что проблема была в скайпе. Если у меня скайп работает, я'м не удается установить `a2dp_sink профиль.

Так, если вы столкнулись с этой проблемой, если у вас запущен Skype и выключить его.

Комментарии (0)

Я решил исправить это правило в udev, так как я являюсь единственным пользователем системы, поэтому $имя пользователя, $XAUTHORITY и $дисплей хорошо известны.

Возможно, это полезно для тех, кто хочет найти решение в один файл, работает на Ubuntu 18.04.1 ЛЦ.

Крючок срабатывает через вход подсистемы потому, что оратор, как представляется, полностью инициализированных на этой стадии.

`` файл#: файл /etc/udev из/правил.Д/99-у JBL-гоу 2.правила

исправлена система JBL GO2 и с КСО Bluetooth: перейти в профиль A2DP при подключении

byteborg 20190110

Подсистем==на"вход" и действия==на"Добавить" Ну, у attrs{наименование}==и"70:99:1С:41:С6:ев на", ОКР{дисплей}=то":0" и, ОКР{XAUTHORITY}=" По - /выполнения/пользователей/1000/ГДМ/Xauthority-то", запустить+=" по - /ОГРН/Су Альфа -с '/usr/Бен/pacmd комплект-карта-профиль bluez_card.A2dp_sink 70_99_1C_41_C6_EB'"и ``

В Archlinux Вики упоминает Кембридж кремния радиотехнических устройств, обеспечивающих неправильный профиль при подключении (https://wiki.archlinux.org/index.php/Bluetooth_headset#A2DP_sink_profile_is_unavailable). Я могу признать такое поведение с "Мои JBL и идти 2" и Bluetooth-динамик, плохое поведение, как уже упоминалось. профиль A2DP, кажется, быть доступны через некоторое время после подключения, возможно проблема со временем?

Комментарии (0)

Этот фиксированный набор карт-профиль проблема для меня: https://bugs.launchpad.net/ubuntu/+ - источник/с PulseAudio/+ошибка/1181106/комментарии/15

Цитата: ``

  1. модифицировать файл /etc/Bluetooth/аудио.конф

[Общие] Включить = Источник,Приемник,Гарнитура,Шлюз,Управления,СМИ Отключить = Гнездо

ГФП=ложь

[Профиль A2DP] SBCSources=1 MPEG12Sources=0

  1. проверить модуль PulseAudio так :

$ список pactl | грэп -я модуль-блютуз

Если у вас нет : модуль-блютуз-политика модуль-блютуз-знакомства модуль-Bluetooth-устройством

Просто сделай : $ судо apt-получить установку с PulseAudio-модуль-блютуз $ с PulseAudio -к $ pactl нагрузки-модуль-Bluetooth-устройством $ pactl load-загрузка модуля-включения-подключения

  1. подключите Bluetooth-гарнитура

Использовать blueman в паре, а подключение аудио раковину Использовать pavucontrol для изменения профиля A2DP (даже если блюман сказал "аудио профиль и")

Пожалуйста, подтвердите, что работает для вас тоже. ``

Комментарии (0)