Содержание
В статье пойдёт речь о базовой настройке звуковой подсистемы минимального дистрибутива Debian на микрокомпьютере Orange Pi PC и установке программы медиаплейера. Для "движка" плейера был выбран медиа-сервер Mopidy, написанный на Python. Почитать о нём можно на сайте проекта
Предполагается, что на микрокомпьютер установлена операционная система и есть возможность подключиться к ней по ssh. Как это сделать можно почитать в статье "Установка Debian Wheezy на микрокомпьютер Orange Pi PC".
План работ.
- Установка и настройка средств ALSA.
- Установка звукового сервера Mopidy.
- Установка вэб-интерфейса к Mopidy.
- Запуск и отладка.
- Настройка Mopidy для работы с внешними программами управления.
Шаг 1. Установка и настройка средств ALSA
Включаем питание микрокомпьютера, ждём окончания процесса загрузки, подключаемся к операционке по ssh.
Сперва обновляем систему.
# apt-get update # apt-get dist-upgrade
Устанавливаем пакеты для работы ALSA.
# apt-get install alsa-base alsa-utils gstreamer0.10-alsa python-alsaaudio
На плате работает два средства вывода звука: HDMI-порт и аналоговый разъём на плате. По умолчанию вывод звука работает через HDMI. Чтобы переключить на аналоговый аудио-выход, создаём файл /etc/asound.conf с таким содержанием:
- asound.conf
pcm.!default { type hw card 0 } ctl.!default { type hw card 0 }
Запускаем alsamixer, выбираем карту audiodecodec и все регуляторы кроме "Lineout volume control" выставляем в "0". Сам "Lineout volume control" выставляем в 60….80. Если выставить больше - возрастают искажения звука.
Тестируем звук:
# speaker-test -twav -c2
Поочерёдно в левом и правом динамиках должен идти звук. Для остановки теста жмём Ctrl+C. Если звук не идёт, пробуем через alsamixer включить выход.
Теперь нужно сделать один тест - проверить, сохраняются ли настройки микшера после перезагрузки машины. Пробуем перезагрузить командой reboot. После рестарта и повторного входа в систему запускаем alsamixer.
Если настройки выхода "Lineout" снова выставились в "0" или в "100", значит скрипты сохранения и восстановления настроек микшера не срабатывают. Автор провёл исследования и выяснилось, что в версии Debian 7.9 (с alsa-base версии 1.0.25+3~deb7u1 и alsa-utils 1.0.25-4) не срабатывает восстановление настроек, хотя настройки исправно сохраняются в /var/lib/alsa/asound.conf . Причины пока не выяснены и автор для обхода данной проблемы применил "костыль": нужно в /etc/rc.local , перед оператором exit 0 поместить строку:
/usr/bin/amixer -c 0 cset numid=10 1; /usr/bin/amixer -c 0 cset numid=6 24
,здесь две команды - первая включает (unmute) выход, а вторая - выставляет уровень "Lineout" примерно в 80%. Команды будут выполняться сразу же после старта операционки и загрузки всех демонов.
Дополнительно можно посмотреть статью Audio_Codec, где описана звуковая подсистема чипа H10 (драйвер sunxi), а также raw-состояние микшера:
# amixer contents
Звуковая подсистема готова. Приступаем к установке звукового сервера Mopidy
Шаг 2. Установка Mopidy
Устанавливаем дополнительные компоненты.
# apt-get install gstreamer1.0-alsa git python python-setuptools
gstreamer1.0-alsa будет использоваться самой mopidy; git, python, python-setuptools - для работы mopidy и сборки вэб-интерфейса.
Установка mopidy
Импортируем ключ:
# wget --no-check-certificate https://apt.mopidy.com/mopidy.gpg | apt-key add -
Скачиваем sources.list для подключения к репозиторию mopidy:
- для Debian wheezy или Ubuntu 12.04 LTS:
# wget --no-check-certificate https://apt.mopidy.com/wheezy.list
- для более новых дистрибутивов (если на микрокомпьютер установлен другой дистрибутив):
# wget --no-check-certificate https://apt.mopidy.com/jessie.list
Копируем тот или иной лист в каталог /etc/apt/sources.list.d/
Либо можно не скачивать соурс-листы, а добавить строки в /etc/apt/sources.list:
- для Debian wheezy или Ubuntu 12.04 LTS:
deb http://apt.mopidy.com/ wheezy main contrib non-free deb-src http://apt.mopidy.com/ wheezy main contrib non-free
Ну и собственно установка:
# sudo apt-get update # sudo apt-get install mopidy
Производим первоначальную настройку. Редактируем файл /etc/mopidy/mopidy.conf
- mopidy.conf
[core] cache_dir = /var/cache/mopidy config_dir = /etc/mopidy data_dir = /var/lib/mopidy [logging] config_file = /etc/mopidy/logging.conf debug_file = /var/log/mopidy/mopidy-debug.log # Пути, где будут храниться медиафайлы [local] data_dir = /var/lib/mopidy/local media_dir = /var/lib/mopidy/media # Путь, где будут храниться плей-листы [m3u] playlists_dir = /var/lib/mopidy/playlists # Тип устройства вывода звука и регулятора громкости. Начальная громкость. # Громкость регулируется программно - внутри Mopidy. Если необходимо использовать # аппаратное регулирование смотрите дополнение https://github.com/mopidy/mopidy-alsamixer [audio] mixer = software mixer_volume = 80 # output = autoaudiosink output = alsasink # Настройки подключения к серверу для функции удалённого управления через вэб-интерфейс [http] enabled = true hostname = 0.0.0.0 port = 6680 static_dir = zeroconf = Mopidy HTTP server on $hostname [stream] enabled = true protocols = http https mms rtmp rtmps rtsp timeout = 5000 metadata_blacklist = # Настройки прокси-сервера: раскоментируйте и установите нужные параметры, # если доступ в Интернет происходит через прокси-сервер. # [proxy] # scheme = http # hostname = 192.168.1.1 # port = 3128 # username = # password =
Подробнее с опциями можно ознакомиться на странице.
Шаг 3. Установка вэб-интерфейса
По опыту эксплуатации медиасервера на базе дистрибутива Pi MusicBox, выбран простенький интерфейс Mopidy-MusicBox-Webclient (сайт: https://github.com/pimusicbox/mopidy-musicbox-webclient ) Более подробную инструкцию можно почитать на странице.
Переходим в какой-нибудь каталог и делаем копию исходных кодов проекта
# cd ~ # mkdir musicbox # cd musicbox # git clone https://github.com/pimusicbox/mopidy-musicbox-webclient
Производим установку:
# cd mopidy-musicbox-webclient # python setup.py install
Шаг 4. Запуск и отладка
Запускаем mopidy и проверяем работоспособность:
# /etc/init.d/mopidy start
Для начала, mopidy должен отобразиться в списке процессов. Если нет - просматриваем лог на предмет ошибок: /var/log/mopidy/mopidy.log
Запускаем браузер и обращаемся по адресу устройства: http://192.168.1.10:6680/mopidy/
Отобразится страница интерфейса управления сервера. Если Mopidy-MusicBox-Webclient был установлен корректно, то появится ссылка на интерфейс ("musicbox_webclient"). Переходим на неё.
Если микрокомпьютер подключен к Интернету и сеть правильно настроена, можно перейти на пункт меню "Streams" и прослушать какую-нибудь станцию. Либо можно скопировать MP3-файлы в каталог /var/lib/mopidy/media через scp или посредством usb-флешки, перейти на "Browse" > "Files" > "Media" и выбрать mp3-файл. Всё должно проигрываться.
Дополнительные средства управления
Управление с помощью программ
Сервером можно управлять по сети с помощью внешних программ, например через протокол, реализованный в MPD. Подробнее о способах управления можно почитать на сайте проекта, а для примера реализуем управление через программу с графическим интерфейсом - Sonata.
Сперва в конфигурационном файле /etc/mopidy/mopidy.conf добавим блок с параметрами для протокола MPD:
- mopidy.conf
[mpd] enabled = true hostname = 0.0.0.0 port = 6600 password = 1234 max_connections = 20 connection_timeout = 60 zeroconf = Mopidy MPD server on $hostname command_blacklist = listall listallinfo
, где значение параметра password - это пароль на доступ на управление, его нужно будет прописать в профиле соединения программы Sonata.
Теперь, на своём компьютере, откуда будет идти управление, устанавливаем собственно программу:
# apt-get install sonata
Открываем через правую кнопку мыши меню "Соединение", создаём профиль и вводим адрес и пароль сервера.
Обзор других программ управления с графическим интерфейсом можно найти здесь.
На этом реализация базового варианта плейера завершена. Функционал имеет такие возможности:
- Прослушивание треков в формате mp3 из каталогов (включая примонтированных) на накопителях (флешка микрокомпьютера или внешняя usb-флешка). Естественно, вы должны создать программную инфраструктуру для реализации различных удобств по доступу к медиафайлам - будь-то автоматическое монтирование флешек и указание Mopidy директории, либо монтирование какого-то сетевого ресурса.
- Прослушивание потоковых радиостанций как с плей-листов, так и с установленных через вэб-интерфейс во внутреннюю базу адресов станций.
- Управление посредством вэб-интерфейса или внешних программ по протоколу MPD.
В режиме воспроизведения файлов, нагрузка на процессор составляет около 15%.


