PulseAudio + Bluetooth-наушники: не используется микрофон
Lenovo V510, Calculate Linux, PulseAudio, JBL E45BT. При Bluetooth-подключении (профиль «Гарнитура HSP/HFP») микрофон не воспринимается, т.е. Audacity не начинает запись вовсе — не просто тишина, а линия времени не удлиняется.
Обматерить поттеринга с его пульсаудио и авторов bluez заодно. Блюпуп-наушники в линуксе работают как попало.
Потом выложи выхлоп pactl list sources
Уже много раз обсуждали. Значит твоя гарнитура поддерживает только один из профилей (hsp или hpf, я забыл какой именно). А pulseaudio на данный момент поддерживает только другой из них.
Самый лёгкий способ — сменить наушники (если есть возможность в магазине проверить). Либо искать костыльные решения (не знаю, насколько они работоспособны, у меня в своё время получилось завести, но очень коряво).
Хотя конкретно твоя модель, если верить офсайту, поддерживает и hsp, и hfp. По логике должна работать.
pavucontrol что показывает? Ты в нём переключаешь на hsp/hfp?
- Проверить что микрофон точно работает.
- Покрутить всё что можно при включении соответствующего профиля в pavucontrol.
Ну и да, что-то такое, надеюсь, у тебя уже установлено pulseaudio-bluetooth.
А вообще, гуглить. Проблема стара как мир, никто и не собирается её нормально решать в ближайшее время. Кучи инструкций и доков в Сети.
Микрофон работает: при использовании с Windows. Со смартфоном. В pavucontrol «Гарнитура HSP/HFP».
А где смотреть ошибки в данном случае?
В pavucontrol «Гарнитура HSP/HFP».
А где смотреть ошибки в данном случае?
Для начала посмотри, что на вкладке Input devices.
Завтра сделаю скриншоты, но, как я уже сказал, в устройствах ввода наушники есть (вместе с качелькой уровня усиления, но без индикации уровня входящего звука), а во вкладке «Конфигурация» режим «Гарнитура HSP/HFP».
kuraga ( 05.01.20 03:45:47 MSK )
Последнее исправление: kuraga 05.01.20 03:46:20 MSK (всего исправлений: 1)
А ты поставил это устройство как устройство по умолчанию?
Да. Для верности даже, в последствии отключил все остальные устройства вообще.
А в других приложениях, кроме audacity, проверял? Желательно тех, у кого нативная поддержка pulseaudio (если правильно помню, в audacity только через маршрутизацию в alsa).
Нет, только ещё в Скайпе. Спасибо, погуглю, посмотрю.
Что-то я ничего не добился.
Учитывая, что у меня еще шум вместо звука с микрофона ноутбука, то решил попытаться перейти на Alsa.
В дополнение к моему комментарию. Документация ещё говорит, что ofono добавляет в pulseaudio поддержку HFP, но как-то у меня оно не добавило. Т.е. профиль так и остался недоступен, хотя пульса ofono вроде как признала.
UPD: а нет, шума с микрофона ноутбука нет.
Думаю проблема в том, что он цепляет не тот профиль. У меня такая же проблема, но я забил, т.к. микрофон на компе не особо нужен, а с телефоном оно работает.
О, спасибо, а я оригинальные пытался портировать. Может с этими более удачно выйдет. Возможно, что надо «headset» option of module-bluetooth-discover подправить. Эффектом от патча должно быть «available: yes» в выводе (при подключенном устройстве):
Напротив headset_head_unit: (или аналогичное название).
надо «headset» option of module-bluetooth-discover подправить
Кстати, у меня там были ошибки в /var/log/messages , которых, кажется, раньше не было… Кажется, kernel: Bluetooth: unknown opcode <. >.
А не подскажите, как/где смотреть более подробный логи bluetoothd и bluealsa?
P.S. А еще не подскажите, где в коде поменять написание версии ( pulseaudio —version )? Чтобы мне понимать, что патчи точно применились…
Та у меня 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 после конфигурирования.
как/где смотреть более подробный логи bluetoothd и bluealsa ?
Если запускать руками в консоли, то bluealsa всё туда и выводит. bluetoothd надо для этого передать -nd . Я так делал.
Ой, имел ввиду PulseAudio, а не Bluealsa 🙂 Ну оно log-level в /etc/pulse/daemon.conf .
Ну, A2DP работает, как и раньше. Но не HSP, HFP…
- Без патча, headset=native .
- Без патча, headset=ofono .
- С патчем.
- С патчем, headset=ofono .
- С патчем, headset=native .
- С патчем, отключенным при компиляции 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
- С патчем, отключенным при компиляции ofono, headset=native , enable_native_hfp_hf=false (тык). Это добавляет режим Headset (HSP) . Подключение происходит. Звука нет. Лог.
P.S. А вот даже любопытно, в Ubuntu работает.
Чтоб его… А pactl list | grep -C2 A2DP хоть начало правильный вывод давать? Я когда ofono тыкал пытался разобраться почему профиль всё ещё available: no . Если с патчем оно yes , то это хоть что-то.
Полагаю, 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
Да, a2dp нативный и должен всегда быть, если устройство его поддерживает.
module-bluez5-device.c: Refused to switch profile to handsfree: Not connected
if (!d->transports[*p] || d->transports[*p]->state
Т.е. транспорт либо отсутствует, либо не подключён. Но выше по логу:
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
Как настроить Bluetooth на Arch Linux / BlackArch
Для того, чтобы Bluetooth заработал на Arch Linux / BlackArch нам нужно установить bluez и bluez-utils. Оба пакета доступны в официальных репозиториях. Также многие гарнитуры не будут работать без пакета pulseaudio-bluetooth. В принципе, этого достаточно, если вы хотите настраивать Bluetooth в командной строке. Но я рекомендую ещё и blueman, который не только имеет графический пользовательский интерфейс, но ещё и множество утилит, позволяющих использовать Bluetooth для обмена файлами, подключения к Интернету и т. д. Таким образом, конечная команда будет выглядеть так:
sudo pacman -S bluez bluez-utils pulseaudio-bluetooth blueman
Нам нужно запустить службу bluetooth:
sudo systemctl start bluetooth
А также добавить её в автозагрузку:
sudo systemctl enable bluetooth
Если вы хотите настраивать Bluetooth в командной строке, то наберите:
Для дополнительной помощи наберите:
Ещё для любителей командной строки пригодятся команды:
Также нам доступен понятный и многофункциональный графический интерфейс:
Модули позволяют решать большинство популярных задач:
Если вы в качестве наушников используете беспроводную гарнитуру и при этом у вас очень плохой звук (как из старого радио), то перейдите в настройки звука, выберите там гарнитуру и в настройке «Режим» выберите «Воспроизведение высокого качества (приёмник A2DP)»:
Если не работают кнопки Bluetooth гарнитуры на Arch Linux / BlackArch
Для начала убедитесь, что вы подключили гарнитуру именно как гарнитуру, а не как наушники. Также попробуйте кнопки громкости — если они работают, то значит всё в порядке — обмен данными происходит, просто нужно настроить соответствущие программы.
Я покажу как это делать на примере DeeDBeeF.
Переходим в «Правка» → «Настройки» → «Горячие клавиши».
Выбираем «Добавить». Нажмите «Сочетание клавиш» и после этого нажмите кнопку на гарнитуре, которую вы хотите настроить под определённое действие. Везде ставьте галочку, что это «Глобальная горячая клавиша».
Полезный совет: Некоторые кнопки на гарнитуре (например, следующий трэк, предыдущий трэк) работают ТОЛЬКО если играет музыка. Я угробил пару часов на гугление и копание в настройках драйверов и сочетаний клавиш, прежде чем понял это.
Надеюсь, я помог сберечь ваше время. Вот так получилось у меня: