Установка и настройка AirPlay-приемника на Raspberry Pi 3
Опубликовано: 01.09.2018
В прошлом году я обозревал сетевую колонку Xiaomi Mi Smart Network Speaker , умеющую проигрывать музыку как по кабелю и Bluetooth, так и по DLNA и AirPlay протоколам, будучи подключенной к Wi-Fi сети. А в этой статье хочу рассказать как при помощи одноплатного компьютера можно сделать любую колонку или акустическую систему сетевой, добавив в нее поддержку протокола AirPlay.
AirPlay - iPhone и iPad на Windows!!!! [запись экрана iPhone/iPad/iPod Touch]
Данный протокол используется в устройствах компании Apple и позволяет буквально парой прикосновений к экрану смартфона или планшета переключать воспроизведение со встроенного динамика на внешнюю акустику. При этом саму акустическую систему не нужно как-то настраивать — достаточно, чтобы она была подключена к той же локальной сети, а дальше iPhone сделает все сам.
Что нам понадобится
Для осуществления описываемых в этой статье действий понадобится:
Raspberry Pi 3 Model B Локальная сеть iPhone, iPad или iTunes на компьютере Наушники или колонки, подключаемые к 3.5мм аудиоразъему Звуковая карта для Raspberry Pi (опционально) Дисплей для Raspberry Pi (опционально)Удаленно управлять «малиной» удобнее всего по SSH или через Webmin .
Установка и настройка Shairport Sync
Для поднятия на Linux-системах AirPlay-приемника используется приложение Shairport Sync , в свою очередь являющееся форком уже заброшенного и не обновляющегося Shairport .
Перед началом установки традиционно обновим уже установленные в системе пакеты:
sudo apt-get update sudo apt-get dist-upgradeТеперь установим все необходимое для работы Shairport Sync:
sudo apt-get install build-essential git autoconf automake libtool libdaemon-dev libasound2-dev libpopt-dev libconfig-dev avahi-daemon libavahi-client-dev libssl-devСкопируем с гитхаба репозиторий с исходным кодом:
git clone https://github.com/mikebrady/shairport-sync.gitПерейдем в папку с исходниками, сконфигурируем и соберем приложение:
cd shairport-sync autoreconf -i -f ./configure --sysconfdir=/etc --with-alsa --with-avahi --with-ssl=openssl --with-metadata --with-systemd makeСоздадим отдельную группу и отдельного пользователя специально для Shairport:
getent group shairport-sync &>/dev/null || sudo groupadd -r shairport-sync >/dev/null getent passwd shairport-sync &> /dev/null || sudo useradd -r -M -g shairport-sync -s /usr/bin/nologin -G audio shairport-sync >/dev/nullУстановим приложение и запустим в качестве системного сервиса:
sudo make install sudo systemctl enable shairport-syncТеперь осталось только перезагрузить Raspberry Pi и все готово:
sudo rebootЕсли установка пакета прошла успешна, то после перезагрузки в списке доступных AirPlay-устройств на iPhone/iPad или в iTunes появится новая колонка с именем Raspberrypi.
И если подключить к «малине» акустику, то можно воспроизводить через нее музыку с любых девайсов от Apple.
Но для более комфортного пользования нужно произвести некоторые настройки.
Отключение энергосбережения Wi-Fi
Если Raspberry Pi 3 подключена к локальной сети по Wi-Fi (к слову, при возможности лучше подключать кабелем по Ethernet — стабильнее будет работать), то нужно отключить энергосбережение Wi-Fi адаптера. Иначе при отсутствии сетевой активности адаптер будет пытаться уйти в режим сна и в это время «малинка» будет пропадать из списка AirPlay-устройств.
Поэтому отредактируем файл конфигурации:
sudo nano /etc/network/interfacesНайдем в нем строку «iface wlan0 inet manual» и добавим сразу же после нее следующую строку:
wireless-power offНа этом данная часть настройки завершена.
Улучшение качества звука
Встроенная звуковая карта в Raspberry Pi 3 оставляет желать лучшего, а установленный по умолчанию драйвер и вовсе ужасен. Если планируется использовать «малину» в качестве AirPlay-ресивера для действительно хорошей акустики, то есть смысл докупить к ней хорошую звуковую карту (такие производит, например, Suptronics).
Во всех остальных случаях нужно хотя бы сменить стандартный драйвер на более свежий, который уже входит в дистрибутив Raspbian, но выключен по умолчанию.
Для этого открываем файл config.txt:
sudo nano /boot/config.txtИ дописываем в конец следующую строку:
audio_pwm_mode=2Затем нужно будет перезагрузиться. После перезагрузки «малина» заработает уже с другим драйвером и звук на 3.5мм аудиовыходе станет более-менее приличным.
Для еще одного улучшения качества звука нужно исправить файл конфигурации самого Shairport Sync:
sudo nano /etc/shairport-sync.confВ котором нужно найти строку:
// volume_range_db = 60 ;И заменить ее на строку:
volume_range_db = 30 ;Обратите внимание, что нужно не только поменять значение с 60 на 30, но и удалить два слеша в самом начале строки, т.е. раскомментировать этот параметр.
Изменение названия AirPlay-ресивера
Изначально наша AirPlay-колонка будет носить сетевое имя устройства, на котором развернут Shairport (в случае с «малиной» это имя по умолчанию Raspberrypi).
Если хочется дать ей более звучное название, то нужно отредактировать файл конфигурации:
sudo nano /etc/shairport-sync.confНайти в нем строку:
// name = "%H"Раскомментировать эту строку и ввести вместо %H свое название:
name = "My AirPlay Speaker"Установка графического интерфейса для Shairport Sync
Если к «малине» подключен мини-дисплей, то можно приспособить его для вывода метаданных о транслируемых треках.
Для этого нужно загрузить еще один репозиторий:
git clone https://github.com/tchapi/shairport-sync-uiУстановить фреймворк Qt:
sudo apt-get install qt4-defaultИ скомпилировать его из исходников:
cd shairport-sync-ui ./compile.sh && ./run-gui.shА затем добавить в автозагрузку, отредактировав файл конфигурации:
sudo nano ~/.config/lxsession/LXDE-pi/autostartИ внеся в него следующую строку перед строкой @screensaver:
@/home/pi/shairport-sync-ui/build/release/shairport-sync-uiА затем отредактировать конфигурацию shairport:
sudo nano /etc/shairport-sync.confНайдя в файле строки:
metadata = { // enabled = "no"; // include_cover_art = "no"; }И заменив их на:
metadata = { enabled = "yes"; include_cover_art = "yes"; }Вот так выглядит графический интерфейс. Если запустить воспроизведение, то в нем должны появиться названия композиции и альбома, имя исполнителя и обложка. Но у меня что-то пошло не так, и при старте воспроизведения интерфейс вылетает (на само воспроизведение это не влияет).
Возможно нужно еще покопаться в конфигурации, дополню статью если найду рабочее решение.
Заключение
Использование Shairport Sync позволяет превратить любую колонку в сетевую, поддерживающую протокол AirPlay. Особенно полезным это окажется если в наличии имеется качественная, но старая акустика без смарт-функций, которую хочется подружить с современной техникой.
В статье приведен пример установки Shairport Sync на Raspberry Pi 3, но аналогичным способом программу можно установить и на любой другой одноплатный компьютер, например, на более дешевый и компактный Orange Pi Zero .
Raspberry Pi 3B (английская сборка)в интернет-магазине GearBest Raspberry Pi 3B (китайская сборка)в интернет-магазине GearBest