Беспроводные технологии становятся все более распространенными с каждым днем. В данной статье пойдет речь о том, как подключается беспроводная гарнитура в Linux посредством технологии Bluetooth.
В Linux с Bluetooth-устройствами взаимодействует подсистема Bluez. В новые дистрибутивы интегрирована новая ее версия — Bluez5, которая в отличии от предыдущей не имеет поддержки протокола HFP/HSP (головной телефон с микрофоном для связи по Skype). Но профиль A2DP (наушники) через новый Bluez работает отлично и сравнительно легко настраивается. Следует также учесть, что Bluez5 работает только с Pulseaudio, поэтому все махинации с ALSA, описания которых в достаточном количестве можно найти в сети Интернет, здесь неуместны.
Итак, настройка беспроводной Bluetooth-гарнитуры в Linux проходит таким образом:
- Убедитесь, что у вас установлены зависимости pulseaudio-alsa, bluez, bluez-libs и bluez-utils.
- Запустите службу Bluetooth нижеприведенной командой.
sudo systemctl start bluetooth
- Теперь используем встроенный в Bluez функционал для управления подсистемой Bluetooth.
sudo bluetoothctl
Вышеприведенная команда перемещает пользователя в консоль управления Bluetooth, все последующие команды будут выполняться в данной консоли.
- Выполняем поочередно команды.
power on
agent on
default-agent
scan on
- Переводим гарнитуру в режим сопряжения, для чего зажимаем на ней кнопку вызова на 5-7 секунд, пока светодиод не начнет непрерывно мигать. В консоли bluetoothctl должно появиться новое устройство. В моем случае это «[NEW] Device 00:0D:FD:5E:D5:3E Nokia BH-111».
- Нас интересуют 12 цифр, обозначающих MAC-адрес устройства. Скопируйте адрес своего девайса, подставьте его в нижеприведенную команду и выполните.
pair 00:0D:FD:5E:D5:3E
- Теперь можно соединиться с гарнитурой (опять же, MAC-адрес нужно подставить свой).
connect 00:0D:FD:5E:D5:3E
Если все прошло успешно, то в консоли bluetoothctl появится уведомление, типа «[CHG] Device 00:0D:FD:5E:D5:3E Connected: yes» , а в регуляторе громкости Pulseaudio (pavucontrol) в «Устройствах Вывода» станет доступной Bluetooth-гарнитура. Через pavucontrol можно переводить звук на гарнитуру и обратно на стандартные колонки. Данный гайд был создан на основе информации из Arch Linux Wiki, где также рассмотрены другие способы подключения Bluetooth-гарнитуры к ПК с операционной системой Linux.
Пользоваться BlueTooth в Linux удобно через Blueman
Blueman — это полнофункциональный менеджер Bluetooth, написанный на GTK. Последняя стабильная версия Blueman совместима со стеком Bluez4, а поддержка Bluez5 на данный момент находится в разработке. Исходя из этого следует, что Blueman следует устанавливать только поверх вручную собранного Bluez4, скачать который можно здесь (в разделе «Old Versions»).
После установки Blueman из Менеджера пакетов, каковым в Sabayon является Rigo, он появляется в автозапуске. Лучше пересоздать файл запуска, указав в нем команду blueman-applet
, потому как автоматически созданный значок запуска может не работать. Запустить Менеджер настройки Blueman можно с помощью команды blueman-manager
, или найти его в меню в разделе «Настройки» (Xfce). Чтобы запустить процедуру поиска Bluetooth-устройств, нужно нажать на значок линзы в левом верхнем углу менеджера. После того, как будет найдено устройство, нужно добавить его к списку известных, используя значок плюса возле линзы. Далее — стандартные процедуры: сопряжение (ПКМ на устройстве -> Pair) и добавление в список доверенных (ПКМ на устройстве -> Trust). После успешного выполнения всех вышеперечисленных операций можно пользоваться всеми возможностями подключенного девайса (передачей файлов, просмотром файловой системы, использованием в качестве модема, передачей звука и так далее).
Чтобы не приходилось каждый раз включать Bluetooth в Linux при старте системы, необходимо активировать соответствующую службу командой
sudo systemctl enable bluetooth
Это актуально для Sabayon Xfce, но для Xubuntu, где, кстати Blueman является встроенным инструментом управления Bluetooth, нужно выполнить
sudo /etc/init.d/bluetooth start
Следовательно, для того, чтобы Bluetooth в Xubuntu включался при запуске, нужно добавить вышеприведенную команду в rc.local по аналогии с описанным здесь.
Blueman сконфигурирован по умолчанию на использование Nautilus в качестве файлменеджера для подключенных файловых систем. В Xfce используется Thunar, поэтому скрипт монтирования должен быть изменен, соответствующим образом. Нужно создать файл «obex_thunar.sh» со следующим содержимым:
#!/bin/bash
fusermount -u ~/bluetooth
obexfs -b $1 ~/bluetooth
thunar ~/bluetooth
Теперь следует переместить obex_thunar.sh в нужное расположение — «/usr/local/bin» и сделать его исполняемым:
sudo chmod +x /usr/local/bin/obex_thunar.sh
В завершении следует изменить команду в самом Blueman: ПКМ на иконке Blueman в трее -> Локальные службы -> Передача -> Дополнительно -> в графе «команды запуска» подставляем «obex_thunar.sh %d
» (без кавычек).
Тонкая настройка PulseAudio
Большинство пользователей компьютера знают, что любая звуковая карта содержит входы (микрофон, Line-in) и выходы (Line-out, наушники, S/PDIF). Типовая конфигурация для гнезд звуковой карты в PulseAudio выглядит следующим образом:
- Card (звуковая карта со всеми выходами и входами);
- Sink (устройство, принимающее звуковой поток, как например, колонки, наушники, линейный выход);
- Source (источник, с которого поступает звуковой поток, как например, микрофон, линейный вход).
Тонкая настройка PulseAudio начинается с задания «default Source» и «default Sink» — это будут устройства по умолчанию для ввода и вывода звука соответственно. Следует заметить, что Sink — это скорее абстрактный объект приема звукового потока и не обязательно описывает физический порт на звуковой карте, например, звук может выводиться через FIFO-файл или напрямую в сеть для реализации multicast-вещания. Все эти возможности обеспечиваются модулями PulseAudio.
Идем дальше. При обычном запуске приложения, работающего с PulseAudio, оно создает в дефолтном Sink’е своего рода «вход», который называют «Sink Input» (может быть создано несколько таких входов, отдельных для каждого звукового потока). А когда приложение работает на прием звука (например, «Звукозапись»), оно создает, так сказать, «выход» в Source’е по умолчанию — Source-Output. PulseAudio перенаправляет потоки на устройство, с которым связан дефолтный Sink, и мы слышим звук. Таким образом медиаплеер «Totem» создаcт Sink-Input, а, например, Skype — как Sink-Input, так и Source-Output.
На момент написания статьи практически все Linux-приложения, использующие звуковые устройства, могут работать с PulseAudio напрямую (не через ALSA, как это было ранее) — и Skype, и Wine, и уж тем более VLC. Поэтому писать о перенаправлении звукового потока из ALSA сейчас актуально только в редких случаях. А следовательно давайте перейдем к инструментам управления PulseAudio, а именно — к «pactl
«, «PAVU Control» и «pacmd
«.
Допустим, нам нужно изменить источник звука по умолчанию, чтобы работал микрофон в Skype. Дело в том, что Skype использует только дефолтный Source, а он не обязательно будет связан с микрофоном (как минимум, присутствует так же Line-in), и нашей задачей является переключение «умолчания» именно на микрофон. Давайте для начала запустим PAVU Control из консоли (программа должна быть в репозиториях, если она не интегрирована в дистрибутив):
pavucontrol
и перейдем на вкладку «Устройства Ввода». Здесь представлены все доступные Source’ы, среди которых должен быть и подключенный микрофон. В правом верхнем углу колонки каждого устройства есть «заветная» кнопочка с зеленым кружком и галочкой — «Set as fallback». Ее нажатие как раз и переключит ввод звука на данное устройство, но это будет действовать только до перезагрузки системы. Давайте теперь назначим микрофон устройством ввода по умолчанию строго, для чего выполним в терминале команду
pactl list
В консоли отобразится большой список всех доступных в системе устройств ввода-вывода звука. Нас интересуют разделы, начинающиеся с «Source», один из которых содержит информацию о микрофоне (например, в моем случае — это «Source #4»). Понять, что это именно тот самый микрофон (может быть их несколько), можно по строке «Description:…», в которой отображается название устройства, а мы его видели в PAVU Control (в моем случае — это «Camera Analog Mono»). Теперь нужно скопировать вывод строки «Name:…» и выполнить в терминале:
pacmd set-default-source скопированное_значение
Так выполняется в PulseAudio настройка микрофона и всех других дефолтных звуковых устройств — после перезагрузки «Set as fallback» в PAVU Control сразу будет установлен на микрофоне, и звук в Skype будет поступать именно через это устройство!
Раздельная регулировка звука в Linux
Всем, кто пользуется Linux, известно, что уже довольно долгое время во всех дистрибутивах используются две звуковые подсистемы: Pulse и ALSA. Кому-то их совместная работа покажется вполне удобной и допустимой, а кто-то будет сетовать на тот факт, что громкость изменяется не плавно и не во всех приложениях одинаково — именно для таких людей хочу описать, как настраивается раздельная регулировка звука в Linux.
Хочу начать с того, что в моем дистрибутиве — Sabayon Xfce — главной подсистемой выступает Pulse, то есть общую громкость я изменяю через него. В связи с этим все ползунки в Alsa Mixer всегда выставлены на максимум, и изменение громкости через PAVU Control абсолютно никак на них не отражается. Для того, чтобы сделать тоже самое, нужна соответствующая настройка PulseAudio через файл «analog-output.conf.common», отвечающий за интеграцию ALSA с Pulse. Итак, следует выполнить в терминале:
sudo leafpad /usr/share/pulseaudio/alsa-mixer/paths/analog-output.conf.common
, где вместо Leafpad может быть любой текстовый редактор.
Открывшийся конфигурационный файл настроек PulseAudio нужно пролистать до содержимого типа
[Element PCM]
switch = mute
volume = merge
override-map.1 = all
…
Искомая опция «связи двух подсистем» заключена в строке «volume = merge», и для того, чтобы эту связь сбросить, нужно изменить «merge» на «ignore». То есть код должен принять следующий вид
volume = ignore
Таким образом, Pulse теперь не будет связан с микшером PCM подсистемы ALSA, и ползунок микшера можно «зафиксировать». Для получения полностью раздельной регулировки звука в Linux аналогичные действия нужно проделать и по отношению к другим микшерам ALSA:
[Element Master]
switch = mute
volume = ignore
[Element Front]
switch = mute
volume = ignore
Сохраните конфиг и закройте, после чего следует перезагрузиться, предварительно выставив громкость во всех ползунках по своему усмотрению. После следующего старта системы изменение громкости через Pulse уже никак не будет влиять на ALSA. Чтобы сохранить настройки ALSA на системном уровне, необходимо выполнить команду:
sudo alsactl store
Статья мне понравилась, всё написано толково. Можно самому настроить гарнитуру. Хотя я ни когда не пользовался ей.