Установка и настройка AirPlay-приемника на Raspberry Pi 3

Raspberry Pi 3. Установка и настройка AirPlay-приемника

Дата Автор Dmitry1 комментарий 325 просмотров

В прошлом году я обозревал сетевую колонку Xiaomi Mi Smart Network Speaker, умеющую проигрывать музыку как по кабелю и Bluetooth, так и по DLNA и AirPlay протоколам, будучи подключенной к Wi-Fi сети. А в этой статье хочу рассказать как при помощи одноплатного компьютера можно сделать любую колонку или акустическую систему сетевой, добавив в нее поддержку протокола AirPlay.

Данный протокол используется в устройствах компании 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.

Установка и настройка AirPlay-приемника на Raspberry Pi 3

И если подключить к «малине» акустику, то можно воспроизводить через нее музыку с любых девайсов от 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";
}

Установка и настройка AirPlay-приемника на Raspberry Pi 3

Вот так выглядит графический интерфейс. Если запустить воспроизведение, то в нем должны появиться названия композиции и альбома, имя исполнителя и обложка. Но у меня что-то пошло не так, и при старте воспроизведения интерфейс вылетает (на само воспроизведение это не влияет).

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

Заключение

Использование Shairport Sync позволяет превратить любую колонку в сетевую, поддерживающую протокол AirPlay. Особенно полезным это окажется если в наличии имеется качественная, но старая акустика без смарт-функций, которую хочется подружить с современной техникой.

В статье приведен пример установки Shairport Sync на Raspberry Pi 3, но аналогичным способом программу можно установить и на любой другой одноплатный компьютер, например, на более дешевый и компактный Orange Pi Zero.

Raspberry Pi 3B (английская сборка)в интернет-магазине GearBest Raspberry Pi 3B (китайская сборка)в интернет-магазине GearBest

Один комментарий на «Raspberry Pi 3. Установка и настройка AirPlay-приемника»

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *