После обновления до 16.04 перестал работать режим bluetooth audio A2DP

29

У меня есть хороший приемник звука Bluetooth, подключенный к моей стереосистеме HiFi, и я имел возможность подключить его в 14.04 в качестве приемника A2DP с хорошим качеством.

После обновления до 16.04 устройство подключается только как гарнитура, и при попытке переключить его в режим A2DP в системном журнале появляется эта ошибка:

May 21 11:35:50 RRyS pulseaudio[6159]: [pulseaudio] module-bluez5-device.c: Refused to switch profile to a2dp_sink: Not connected

и качество звука ужасное. Как я могу это исправить?

Rmano
источник
Надеюсь, это кому-нибудь пригодится. Я потерял 3 часа копаться в нем ... Я люблю обновления! ;-)
Rmano

Ответы:

39

Для меня работает подключение устройства Bluetooth, переключение в режим HSP / HFP, отключение, повторное подключение, а затем переключение в режим A2DP.

rmfought
источник
4
Тоже самое. Тем не менее, это не должно быть так, и он работал должным образом в предыдущей версии.
Эльдад-
Для меня это тоже сработало. Но очень большая боль в a ** для чего-то, что работало (почти) безупречно в 15.10 и раньше.
Доланор
О, поверь мне, я согласен. это огромная боль. Единственный дистрибутив, который я нашел, который в настоящее время корректно обрабатывает BT, это Solus OS.
rmfought
2
Это супер странно, но это сработало!
ArcaneDominion
1
Святое дерьмо. Не ожидал, что это сработает, но это сработало.
Парт Тхаккар
35

По этому поводу открыто несколько ошибок, проверьте, например, эту (начатую в 15.05) и другую, довольно старую ; причины в целом не совсем понятны.

Прежде чем приступить к изменению системных файлов, вы также можете проверить отсутствие звука в динамике Bluetooth в Ubuntu 16.04 (кажется, это другая ошибка), а Bluetooth 16DP не работает на 16.04 (решено в комментариях при обновлении ядра).

Исправление, которое сработало для меня, заключается в следующем - спасибо пользователю RobertFM на панели запуска и SimFox3 на форумах Arch . Все следующие инструкции должны выполняться из корневой оболочки ( sudo -i). Позаботьтесь и тройной проверки.

  1. Прежде всего, сделайте резервную копию этих файлов (вы никогда не знаете):

    cp /etc/bluetooth/audio.conf /etc/bluetooth/audio.conf.bak
    cp /etc/pulse/default.pa /etc/pulse/default.pa.bak
    cp /usr/bin/start-pulseaudio-x11 /usr/bin/start-pulseaudio-x11.bak
    
  2. Отредактируйте /etc/bluetooth/audio.confи сделайте его похожим на этот:

    # Configuration file for the audio service
    # This section contains options which are not specific to any
    # particular interface
    [General]
    Enable=Gateway,Source
    
    # Switch to master role for incoming connections (defaults to true)
    Master=true
    
    # If we want to disable support for specific services
    # Defaults to supporting all implemented services
    #Disable=Gateway,Source,Socket
    Disable=Socket
    
    # SCO routing. Either PCM or HCI (in which case audio is routed to/from ALSA)
    # Defaults to HCI
    #SCORouting=HCI
    
    # Automatically connect both A2DP and HFP/HSP profiles for incoming
    # connections. Some headsets that support both profiles will only connect the
    # other one automatically so the default setting of true is usually a good
    # idea.
    AutoConnect=true
    
    # Headset interface specific options (i.e. options which affect how the audio
    # service interacts with remote headset devices)
    [Headset]
    
    # Set to true to support HFP, false means only HSP is supported
    # Defaults to true
    HFP=true
    
    # Maximum number of connected HSP/HFP devices per adapter. Defaults to 1
    MaxConnected=2
    
    # Set to true to enable use of fast connectable mode (faster page scanning)
    # for HFP when incoming call starts. Default settings are restored after
    # call is answered or rejected. Page scan interval is much shorter and page
    # scan type changed to interlaced. Such allows faster connection initiated
    # by a headset.
    FastConnectable=true
    
    # Just an example of potential config options for the other interfaces
    #[A2DP]
    #SBCSources=1
    #MPEG12Sources=0
    
  3. Отредактируйте /etc/pulse/default.paи закомментируйте строку

    #load-module module-bluetooth-discover
    

    (вам действительно нужно добавить только #в начале)

  4. Отредактируйте /usr/bin/start-pulseaudio-x11и добавьте строку /usr/bin/pactl load-module module-bluetooth-discoverпосле загрузки модуля module-x11-xsmp; на практике вы должны отредактировать файл ближе к концу, чтобы он был похож на строфу

    if [ x"$SESSION_MANAGER" != x ] ; then
        /usr/bin/pactl load-module module-x11-xsmp "display=$DISPLAY session_manager=$SESSION_MANAGER" > /dev/null
        # add this line here:
        /usr/bin/pactl load-module module-bluetooth-discover
    fi
    
  5. Перезагружать.

    Теперь вы сможете настроить устройство на A2DP и ​​наслаждаться музыкой высокого качества:

    Настройки звука

    Обратите внимание, что иногда вам нужно отключить и снова подключить ваше устройство, чтобы снова включить A2DP:

    Устройства Bluetooth

    ... да, это банка ошибок. Но когда это работает, это работает прекрасно.

  6. Проблемы после перезагрузки

    После всего этого иногда кажется, что трюк срабатывает только после следующей перезагрузки. В таком случае попробуйте следовать ответу rmfought :

    Для меня работает подключение устройства Bluetooth, переключение в режим HSP / HFP, отключение, повторное подключение, а затем переключение в режим A2DP.

    ... у меня тоже работает (опять же когда-нибудь). Я должен был даже разомкнуть парный ключ один раз.

  7. Если это все еще не работает ...

    Если это также не работает для вас, вы можете попробовать этот скрипт - его автор постоянно обновляет его.

Rmano
источник
5
audio.conf отсутствует в Ubuntu 16.04, только main.conf, это будет работать?
Йоаким Коед
2
@JoakimKoed --- вы правы, я проверил --- у меня был, audio.conf-removeвероятно, остаток от обновления. Я просто воссоздал его - так что теперь я сомневаюсь, может быть, просто пункты 3 и 4 необходимы?
Rmano
1
Шаги 3 и 4 не помогли мне, и я воссоздал audio.conf, как указано выше, и не исправил. Удаление устройства Bluetooth и исправление ошибок, но делать это каждый раз, когда вы хотите использовать звук Bluetooth, не представляется возможным.
Томас Карлайл
@ThomasCarlisle жаль это слышать - здесь это сработало (не нужно заново связываться) после первого раза. Должно быть другое дело ...
Rmano
1
Brilliant! Это делает трюк со мной! Я предлагаю вам добавить ссылку на это в своем ответе, поскольку все вместе, кажется, дает полностью рабочее решение проблемы. Ура!
Романовский
5

Это не обязательно решение для тех, кому нужен микрофон, но для меня это работало в Ubuntu 16.04:

sudo nano /etc/bluetooth/audio.conf

А потом добавить Disable=Headsetпод [General].

[General]
Disable=Headset

И перезапустите службу Bluetooth

sudo service bluetooth restart

И все заслуги этого парня: https://jimshaver.net/2015/03/31/going-a2dp-only-on-linux/

helgis
источник
К сожалению, у меня ничего не вышло. Мой значок док-станции Bluetooth неактивен ... Может быть, это драйвер / модуль? XPS 13 9350 и Ubuntu 16.04.
Доланор
@Dolanor Не уверен, что это все еще проблема, но если значок док-станции окрашен в серый цвет, это, скорее всего, означает, что ваш bluetooth-адаптер имеет программную блокировку. Попробуйте, rfkill unblock bluetoothа может даже bluetoothctlи тогда power on(в bluetoothctl-CLI).
FMaz
Это сработало в моём случае zorinos 12
FDisk
На Ubuntu 18 нет /etc/bluetooth/audio.confфайла. Я добавил Disable=Headsetк /etc/bluetooth/main.conf, перезапустить службу, подключенного мои наушники, но звук был профиль по умолчанию off. Не уверен, что это сработало?
Дан Даскалеску