Есть ответы
Как включить передачу aptX по Bluetooth на Ubuntu?

Игорь Сотников Linux
469
4

Купил наушники Sony WH-1000XM5, заявлена поддержка aptX и LDAC. На Windows все работает и в диспетчере устройств виден кодек. Поставил Ubuntu 22.04, наушники подключаются, звук есть, но по факту идет SBC - это слышно ухом и подтверждается в pactl list | grep codec.

Пробовал ставить pipewire вместо pulseaudio, но после перезагрузки bluetooth вообще отвалился и пришлось откатывать. Есть рабочая инструкция как включить aptX по bluetooth на Ubuntu без сноса системы?

UPDATE: Метод с pipewire-media-session сработал. aptX включился, LDAC тоже заработал после отдельного шага. Спасибо всем кто отписался.
0
Участник • 2 ответа

Перезагрузись и попробуй bluetoothctl заново. Обычно помогает.

37
Эксперт • 1 ответ

aptX на Linux через PulseAudio не работает никак, это принципиальное ограничение стека. PulseAudio умеет только SBC и A2DP-SBC-XQ.

Полноценный путь такой:

  1. Убедись что pulseaudio полностью снесен, а не работает параллельно:
    systemctl --user stop pulseaudio.socket pulseaudio.service
    systemctl --user disable pulseaudio.socket pulseaudio.service
    systemctl --user mask pulseaudio
  2. Ставь pipewire и весь стек:
    sudo apt install pipewire pipewire-audio-client-libraries pipewire-pulse wireplumber libspa-0.2-bluetooth
  3. После установки перезапускай только так, не через reboot:
    systemctl --user daemon-reload
    systemctl --user --now enable pipewire pipewire-pulse wireplumber
  4. Проверяй кодек:
    pactl list | grep -i codec

Если после этого все равно SBC - проблема в том, что bluetooth-модуль не поддерживает aptX на уровне firmware. У некоторых чипов Intel это лечится обновлением firmware через linux-firmware пакет, у других никак.

LDAC на XM5 требует отдельного модуля libldac, который в Ubuntu репозиториях есть только в 23.04+. На 22.04 придется собирать из PPA.

Аватар Антон

Норм, на 22.04 pipewire-pulse идет как сокет, не как сервис напрямую. Убери его из команды, остальные два включай.

Аватар Игорь Сотников

На шаге 3 вылезает `Failed to enable unit: Unit file pipewire-pulse.service does not exist` - это норм?

11
Участник • 2 ответа

Чуть проще через PPA если лень возиться руками:

sudo add-apt-repository ppa:pipewire-debian/pipewire-upstream
sudo apt update && sudo apt install pipewire pipewire-audio libspa-0.2-bluetooth

После этого маскируй pulseaudio как написали выше и перелогинься. У меня на 22.04 с Jabra Evolve2 85 aptX заработал именно через PPA, из основного репо кодеки почему то кривые.

10
Участник • 1 ответ

Важный момент который обычно пропускают: после переключения на pipewire надо явно прописать разрешенные кодеки в конфиге, иначе он все равно выберет SBC как самый совместимый.

Создай файл /etc/pipewire/media-session.d/bluez-monitor.conf (или допиши в существующий) такой блок:

properties = {
    bluez5.codecs = [ aptx aptx_hd ldac aac sbc_xq sbc ]
}

Порядок важен - что левее, то приоритетнее. После этого systemctl --user restart pipewire и переподключи наушники.

Написать ответ

Премодерация гостей

Вы отвечаете как гость. Ваш ответ будет скрыт до проверки модератором. Чтобы ответ появился сразу и вы получали репутацию — войдите в аккаунт.

Будьте вежливы и соблюдайте правила платформы.