LINUX.ORG.RU

PulseAudio + Bluetooth-наушники: не используется микрофон

 , , , ,


0

5

Lenovo V510, Calculate Linux, PulseAudio, JBL E45BT. При Bluetooth-подключении (профиль «Гарнитура HSP/HFP») микрофон не воспринимается, т.е. Audacity не начинает запись вовсе - не просто тишина, а линия времени не удлиняется.

Что делать? Спасибо.

Что делать? Спасибо.

Обматерить поттеринга с его пульсаудио и авторов bluez заодно. Блюпуп-наушники в линуксе работают как попало.

Потом выложи выхлоп pactl list sources

anonymous ()

Уже много раз обсуждали. Значит твоя гарнитура поддерживает только один из профилей (hsp или hpf, я забыл какой именно). А pulseaudio на данный момент поддерживает только другой из них.

Самый лёгкий способ — сменить наушники (если есть возможность в магазине проверить). Либо искать костыльные решения (не знаю, насколько они работоспособны, у меня в своё время получилось завести, но очень коряво).

te111011010 ()
Ответ на: комментарий от anonymous

А вообще, гуглить. Проблема стара как мир, никто и не собирается её нормально решать в ближайшее время. Кучи инструкций и доков в Сети.

anonymous ()
Ответ на: комментарий от te111011010

Завтра сделаю скриншоты, но, как я уже сказал, в устройствах ввода наушники есть (вместе с качелькой уровня усиления, но без индикации уровня входящего звука), а во вкладке «Конфигурация» режим «Гарнитура HSP/HFP».

kuraga ()
Последнее исправление: kuraga (всего исправлений: 1)
Ответ на: комментарий от te111011010

Что-то я ничего не добился.

Учитывая, что у меня еще шум вместо звука с микрофона ноутбука, то решил попытаться перейти на Alsa.

Там количество проблем то же, но они другие: ALSA + Bluetooth-наушники: аудиоустройство Bluealsa не видно, хотя оно работает

kuraga ()

В дополнение к моему комментарию. Документация ещё говорит, что ofono добавляет в pulseaudio поддержку HFP, но как-то у меня оно не добавило. Т.е. профиль так и остался недоступен, хотя пульса ofono вроде как признала.

xaizek ★★★★★ ()

Думаю проблема в том, что он цепляет не тот профиль. У меня такая же проблема, но я забил, т.к. микрофон на компе не особо нужен, а с телефоном оно работает.

sergej ★★★★★ ()
Ответ на: комментарий от kuraga

О, спасибо, а я оригинальные пытался портировать. Может с этими более удачно выйдет. Возможно, что надо "headset" option of module-bluetooth-discover подправить. Эффектом от патча должно быть «available: yes» в выводе (при подключенном устройстве):

pactl list | grep -C2 A2DP

Напротив headset_head_unit: (или аналогичное название).

xaizek ★★★★★ ()
Ответ на: комментарий от xaizek

Можете даже использовать мой https://github.com/kuraga/pulseaudio/releases/tag/v13.0-hfp-v7, рибэйз тех патчей на 13.0.

надо "headset" option of module-bluetooth-discover подправить

А это как сделать? :)

Кстати, у меня там были ошибки в /var/log/messages, которых, кажется, раньше не было… Кажется, kernel: Bluetooth: unknown opcode <...>.

А не подскажите, как/где смотреть более подробный логи bluetoothd и bluealsa?

P.S. А еще не подскажите, где в коде поменять написание версии (pulseaudio --version)? Чтобы мне понимать, что патчи точно применились…

Спасибо!

kuraga ()
Ответ на: комментарий от kuraga

рибэйз тех патчей на 13.0

Та у меня 9.0, т.е. это бэкпорт и оригиналы мне и нужны. Я думал, что патчи старее. Может поэтому с трудом накладывается.

как/где смотреть более подробный логи bluetoothd и bluealsa?

Если запускать руками в консоли, то bluealsa всё туда и выводит. bluetoothd надо для этого передать -nd. Я так делал.

А это как сделать? :)

Найти строчку с module-bluetooth-discover в /etc/pulse/defaults.pa и дописать headset=native в конец. Хотя, может оно и не надо, вроде патчи меняют значение этой опции по умолчанию.

kernel: Bluetooth: unknown opcode <…>

У меня hci0: hardware error какой-то есть, но я игнорирую.

где в коде поменять написание версии

Вообще оно там генерируется (в configure.ac прописан вызов git-version-gen), но можно попробовать в src/pulse/version.h после конфигурирования.

xaizek ★★★★★ ()
Ответ на: комментарий от xaizek

как/где смотреть более подробный логи bluetoothd и bluealsa?

Если запускать руками в консоли, то bluealsa всё туда и выводит. bluetoothd надо для этого передать -nd. Я так делал.

Ой, имел ввиду PulseAudio, а не Bluealsa :) Ну оно log-level в /etc/pulse/daemon.conf.

kuraga ()
Ответ на: комментарий от xaizek

Эх, так ничего и не вышло…

Ну, A2DP работает, как и раньше. Но не HSP, HFP…

Пробовал:

  1. Без патча, headset=native.
  2. Без патча, headset=ofono.
  3. С патчем.
  4. С патчем, headset=ofono.
  5. С патчем, headset=native.
  6. С патчем, отключенным при компиляции ofono, headset=native. Это добавляет режим Headset (HFP). При подключении - ошибка (полный лог):
Jan 13 12:52:24 node-calculate2 pulseaudio[5755]: [pulseaudio] protocol-native.c: Application "Blueman" requests card profile change. card = bluez_card.5C_FB_7C_6A_01_38, profile = handsfree
Jan 13 12:52:24 node-calculate2 pulseaudio[5755]: [pulseaudio] module-bluez5-device.c: Refused to switch profile to handsfree: Not connected
  1. С патчем, отключенным при компиляции ofono, headset=native, enable_native_hfp_hf=false (тык). Это добавляет режим Headset (HSP). Подключение происходит. Звука нет. Лог.
kuraga ()
Ответ на: комментарий от kuraga

Чтоб его… А pactl list | grep -C2 A2DP хоть начало правильный вывод давать? Я когда ofono тыкал пытался разобраться почему профиль всё ещё available: no. Если с патчем оно yes, то это хоть что-то.

xaizek ★★★★★ ()
Ответ на: комментарий от xaizek

Полагаю, A2DP и без патча был.

Звуковая плата №4
	Имя: bluez_card.5C_FB_7C_6A_01_38
	Драйвер: module-bluez5-device.c
	Модуль-владелец: 39
	Свойства:
		device.description = "JBL E45BT"
		device.string = "5C:FB:7C:6A:01:38"
		device.api = "bluez"
		device.class = "sound"
		device.bus = "bluetooth"
		device.form_factor = "headset"
		bluez.path = "/org/bluez/hci0/dev_5C_FB_7C_6A_01_38"
		bluez.class = "0x240404"
		bluez.alias = "JBL E45BT"
		device.icon_name = "audio-headset-bluetooth"
		device.intended_roles = "phone"
	Профили:
		headset_head_unit: Headset (HSP) (аудиоприёмников: 1, источников: 1, приоритет: 40, доступен: да)
		a2dp_sink: Воспроизведение высокого качества (приёмник A2DP) (аудиоприёмников: 1, источников: 0, приоритет: 60, доступен: да)
		off: Выключено (аудиоприёмников: 0, источников: 0, приоритет: 0, доступен: да)
	Активный профиль: a2dp_sink
	Порты:
		headset-output: Гарнитура (priority: 0, latency offset: 0 usec)
			Входит в профиль(и): headset_head_unit, a2dp_sink
		headset-input: Гарнитура (priority: 0, latency offset: 0 usec)
			Входит в профиль(и): headset_head_unit
kuraga ()
Ответ на: комментарий от kuraga

Да, a2dp нативный и должен всегда быть, если устройство его поддерживает.

Кстати это сообщение:

module-bluez5-device.c: Refused to switch profile to handsfree: Not connected

Приходит при:

        if (!d->transports[*p] || d->transports[*p]->state <= PA_BLUETOOTH_TRANSPORT_STATE_DISCONNECTED) {

Т.е. транспорт либо отсутствует, либо не подключён. Но выше по логу:

Jan 13 12:51:15 node-calculate2 pulseaudio[5755]: [pulseaudio] bluez5-util.c: Transport /org/bluez/hci0/dev_5C_FB_7C_6A_01_38/fd38 state: disconnected -> idle

Был и пропал что ли…

xaizek ★★★★★ ()
Ответ на: комментарий от xaizek

@xaizek, надеюсь, Вы не против: в письме разрабам поставил Ваш e-mail (с Тостера) в копию :)

UPD: только оно не дошло… Нашел другой.

kuraga ()
Последнее исправление: kuraga (всего исправлений: 2)
Ответ на: комментарий от kuraga

openmailbox кажется последний раз умер. Не против, конечно, мне тоже интересно заставить это работать (хотя и не нужно по факту, просто не понравилось, что не работает).

xaizek ★★★★★ ()
Ответ на: комментарий от xaizek

Я тут понял, что я слепой и пропустил секцию по настройке ofono в документации. Может кто-то тоже так делал, там надо ещё и эмулятор телефона устанавливать, настраивать и запускать, чтобы ofono работало. Чё-то у меня оно всё равно не заработало, но у других людей может быть иная ситуация.

xaizek ★★★★★ ()