Интернет радио проекта YMPD

ZAZ-965

Десептикон
#1
На Armbian для управления музыкальным плеером mpd я использую легкий веб-клиент YMPD. Взяв за основу Makefile из Entware мной была выполнена адаптация для сборки в OpenWrt.
Так как в OpenWrt ранее было установлено радио WiFiRadio.su необходимо убрать его из автозагрузки. Запускаем программу mc открываем для редактирования /etc/rc.local и комментируем (добавляем в начале строки символ #) запуск скрипта /etc/wifiradio/load.sh
edit_rc-local-png.125

Сохраняем измененный файл и останавливаем воспроизведение
Bash:
root@WifiRadio:~# mpc stop
Далее следует скачать готовый пакет со страницы ресурсов на свой компьютер. Распаковаваем ympd_1.3.0-20160214-2_i386_pentium4.zip (и для упрощения укорачиваем имя до ympd.ipk). Для того, чтобы скопировать ympd.ipk в файловую систему OpenWrt потребуется программа WinSCP. WinSCP - это графический клиент SFTP (SSH File Transfer Protocol) и SCP (Secure Copy Protocol) протоколов для Windows с открытым исходным кодом. Скачиваем портативную версию программы, запускаем, указываем тип протокола, IP адреси имя пользователя
wincsp_login-png.127

Подключаемся к виртуальной машине с OpenWrt. Копируем файл ympd.ipk в файловую систему роутера в папку /tmp
wincsp_transfer-png.128

Набираем в консоли команду обновления списка доступных пакетов и команду установки новой программы
Bash:
root@WifiRadio:~# opkg update
root@WifiRadio:~# opkg install /tmp/ympd.ipk
 

Вложения

Последнее редактирование:

ZAZ-965

Десептикон
#2
Перезагружаем виртуальную машину.
Так как у нас уже есть готовый плейлист от WifiRadio.su, загружаем его
Bash:
root@WifiRadio:~# mpc load playlist
loading: playlist
Переходим в браузере по адресу http://192.168.1.200:8080 и нас встречает интерфейс YMPD

В этом интерфейсе можно добавлять и удалять станции, сохранять плейлист и т.д..
Чтобы плейлист автоматически загружался при загрузке машины можно добавить соответствующие команды в /etc/rc.local
Код:
mpc add playlist


Если есть желающие протестировать данный пакет на своем роутере - создаем в этом разделе новое сообщение c полным названием и ревизией вашего роутера.
 
#3
Спасибо, отличная работа. Хотелось бы протестировать такой же пакет на роутере Youhua WR1200JC, прошивка pandorabox 19.02.
Полное название прошивки PandoraBox-ralink-mt7621-wr1200js-2019-02-01-git-0231ad4b5-squashfs-sysupgrade.bin
 
#5
Так и есть,
Base on LEDE/OpenWrt (19.02, r4802, 2019-02-01-git-93f2639a7)
но пока это одна из немногих прошивок, с которой роутер более менее работает адекватно. Index of /pandorabox/
cat /proc/version
Linux version 3.14.79 (lintel@lintel-dev-vm) (gcc version 5.5.0 (PandoraBox GCC 5.5.0 2019-02-01-git-93f2639a7) ) #0 SMP Fri Feb 1 20:24:57 2019
если поможет, вот ссылка Index of /pub/linux/mips/kernel/v3.x
 
Последнее редактирование:

ZAZ-965

Десептикон
#6
Репозитория с исходным кодом я не нашел. Судя по версии ядра - это форк OpenWrt 14.07 Судя по пакетам версия libmpdclient_2.7 тоже старая. А версии mpd-mini/full_0.20.21 новее чем в OpenWrt 18.06 (mpd 0.20.9).
У вас на роутере звук настроен? Если нет, установите пакеты
Bash:
opkg update
opkg install mpd-full mpc kmod-usb-core kmod-usb-audio kmod-sound-core alsa-utils libopenssl
И напишите версии пакетов libc, libopenssl, libmpdclient (например, вызвав команды)
Код:
opkg info libc | grep Version
opkg info libopenssl | grep Version
opkg info libmpdclient | grep Version
 
#7
Звук был настроен, пакеты указанные выше установлены. Сейчас просто при запуске роутера запускается радио из rc.local.
Bash:
sleep 7
amixer -c 0 -- sset Speaker Playback Volume 50%
sleep 5
curl http://nashe.streamr.ru/nashe-128.mp3 | madplay - -Q --no-tty-control &
Код:
opkg info libc | grep Version
Version: 1.0.31-1
opkg info libopenssl | grep Version
Version: 1.0.2o-1
opkg info libmpdclient | grep Version
Version: 2.7-2
 

ZAZ-965

Десептикон
#8
Собрал YMPD в OpenWrt 18.06 для Youhua WR1200JC (mt7621) ympd для 18.06.2/mipsel_24kc. Но OpenWrt считает этот процессор mipsel_24kc архитектурой, а PandoraBox собирает как mipsel_1004kc_dsp. Не знаю получится ли запустить.
 
Последнее редактирование:

ZAZ-965

Десептикон
#10
opkg не дает установить пакет для другой архитектуры. Можно попробовать распаковать ympd_1.3.0-20160214-2_mipsel_24kc.ipk винраром, извлечь файл ympd, с помощью WinSCP поместить его в /tmp на роутере, изменить права chmod 755 /tmp/ympd и попробовать запустить.
Или в качестве радио можно попробовать WifiRadio.SU - Интернет радио своими руками
По PandoraBox есть русско/англоязычные форумы?
 

ZAZ-965

Десептикон
#12
Порылся в инете на предмет что же это за архитектура mipsel_1004kc_dsp. И вот что нашел - How to install IPK on MT7621 router и OpenWRT IPK Architecture Converter С помощью ipk конвертера конвертировал ympd и libmpdclient (более новая версия, возможно придется предварительно удалить старую).
Т.е., IMHO, MediaTek лицензировал архитектуру как mipsel_1004kc, Ralink (уже давно как подразделение MediaTek) как ramips_1004kc и т.д.
 

Вложения

#13
ympd пакет установился, libmpdclient обновил. При входе 192.168.1.1:8080 ничего, конфигурация старая.
появился mpd.conf-opkg, по конфигу похож на mpd.conf, но там ничего не менял
Bash:
#
Сonfiguration file for MPD-Full.

music_directory "/home/mpd/music"
playlist_directory "/home/mpd/playlists"

db_file            "/usr/share/mpd/database"
log_file    "/usr/share/mpd/mpdlog"
pid_file    "/usr/share/mpd/mpdpid"
state_file    "/usr/share/mpd/state"

user    "root"
#group    "nogroup"
#bind_to_address     "localhost"  #для работы на локальном компьютере
bind_to_address     "any"        # для доступа любого клиента из сети
port    "6600"
auto_update    "yes"
auto_update_depth "5"

audio_output {
type    "alsa"
name    "My ALSA Device"
device    "hw:0,0"        # optional
format "44100:16:2"
mixer_type "software"
mixer_device    "default"   # optional
mixer_control    "PCM"        # optional
mixer_index    "0"        # optional
}

filesystem_charset    "UTF-8"
id3v1_encoding    "ISO-8859-1"

volume_normalization "yes"  #"no"

audio_buffer_size "4096"
 

ZAZ-965

Десептикон
#14
ympd запущен?
Bash:
root@WifiRadio:~# ps |grep ympd
 3445 root      3868 S    /usr/bin/ympd -w 8080 -h localhost -p 6600
 4337 root       924 R    grep ympd
Если нет, запустите
Код:
/etc/init.d/ympd start
 
Последнее редактирование:

ZAZ-965

Десептикон
#16
У вас не запущен ympd. Попробуйте в командной строке выполнить
Bash:
root@WifiRadio:~# ympd
MPD Connecting to 127.0.0.1:6600
MPD connected.
# An example configuration file for MPD.
# Read the user manual for documentation: User’s Manual — Music Player Daemon 0.22 documentation


playlist_directory "/etc/wifiradio"

bind_to_address "any"
port "6600"

input {
plugin "curl"
}

audio_output {
type "alsa"
name "My ALSA Device"
device "hw:0,0" # optional
mixer_type "hardware" # optional
mixer_device "default" # optional
mixer_control "Speaker" # optional
mixer_index "0" # optional
}
 

ZAZ-965

Десептикон
#18
При установке все было сделано верно? Какие сообщения выдавались? Что выдает
Bash:
root@WifiRadio:~# opkg info ympd
Package: ympd
Version: 1.3.0-20160214-2
Depends: libc, libmpdclient, libopenssl, libpthread
Status: install user installed
Architecture: i386_pentium4
Installed-Time: 1558078647
Файл устанавливается в /usr/bin/ympd Посмотрите, может конвертер неверно установил атрибуты.
 
#19
Так и есть, в /usr/bin/ympd , права 0755
Bash:
#opkg info ympd
Package: ympd
Version: 1.3.0-20160214-2
Depends: libc, libmpdclient, libopenssl, libpthread
Status: install user installed
Architecture: mipsel_1004kc_dsp
Installed-Time: 1558430448
 
#20
В /etc/init.d/ympd
Bash:
#!/bin/sh /etc/rc.common
# Copyright (C) 2007-2019 OpenWrt.org
START=95
USE_PROCD=1
PROG=/usr/bin/ympd
ARGS="-w 8080 -h localhost -p 6600"
start_service() {
procd_open_instance
procd_set_param command "$PROG" "$ARGS"
procd_close_instance
}
 
Вверх