Ja mam tylko doświadczenia z pakietem mpd-mini. To całkowicie wystarcza dla radia MP3 lub AAC. Usługa mpd jest domyślnie uruchamiana na koncie mpd. Aby możliwe było odtwarzanie poprzez ALSA użytkownik musi należeć do grupy systemowej audio której domyślnie w OpenWRT nie ma. Ewentualnie można też mpd uruchomić na koncie root-a ale jest to mniej "bezpieczne".
Grupę audio można dodać "ręcznie" edytując plik /etc/group. Można też zainstalować paczki shadow-groupadd oraz shadow-usermod i dokonać modyfikacji za pomocą poleceń groupadd oraz usermod:
groupadd -r audio
usermod -a -G audio mpd
Jeżeli chcemy zmienić konto na którym działa usługa mpd to trzeba zmodyfikować plik /etc/init.d/mpd i zmienić USER oraz GROUP:
Na koniec trzeba zatrzymać i uruchomić usługę ponownie (nie restart):
service mpd stop
service mpd start
Wydaje mi się, że do odtwarzania radia internetowego opcja playlist_directory jest zbędna. Jednak jeżeli w konfigu nie ma tej opcji to trzeba też zmodyfikować /etc/init.d/mpd i wywalić/zakomentować linijki:
#create mpd directories from config
pld=$(grep ^playlist_directory "$CONFIGFILE" | cut -d "\"" -f 2 | sed "s/~/\/root/g")
if [ ! -d "$pld" ]; then
mkdir -m 0755 -p "$pld"
chown $USER:$GROUP $pld
fi
W sekcji audio_output można też ustawić mixer_type na hardware:
audio_output {
type "alsa"
name "Sound card"
device "hw:0"
mixer_type "hardware"
mixer_device "hw:0"
mixer_control "Digital"
auto_resample "no"
}
mixer_control trzeba zmienić w zależności od posiadanej karty.
Poniżej moja pełna konfiguracja mpd (z pakietu mpd-mini):
log_level "error"
bind_to_address "127.0.0.1"
zeroconf_enabled "no"
replaygain "off"
volume_normalization "no"
audio_buffer_size "128"
connection_timeout "120"
input {
plugin "file"
enabled "no"
}
input {
plugin "alsa"
enabled "no"
}
input {
plugin "curl"
enabled "yes"
}
resampler {
plugin "internal"
enabled "yes"
}
decoder {
plugin "mad"
enabled "yes"
}
decoder {
plugin "vorbis"
enabled "no"
}
decoder {
plugin "oggflac"
enabled "no"
}
decoder {
plugin "flac"
enabled "no"
}
decoder {
plugin "opus"
enabled "no"
}
decoder {
plugin "faad"
enabled "yes"
}
decoder {
plugin "pcm"
enabled "no"
}
playlist_plugin {
name "extm3u"
enabled "no"
}
playlist_plugin {
name "m3u"
enabled "no"
}
playlist_plugin {
name "pls"
enabled "no"
}
playlist_plugin {
name "xspf"
enabled "no"
}
playlist_plugin {
name "asx"
enabled "no"
}
playlist_plugin {
name "rss"
enabled "no"
}
playlist_plugin {
name "flac"
enabled "no"
}
playlist_plugin {
name "cue"
enabled "no"
}
playlist_plugin {
name "embcue"
enabled "no"
}
audio_output {
type "alsa"
name "Sound card"
device "hw:0"
mixer_type "hardware"
mixer_device "hw:0"
mixer_control "Digital"
auto_resample "no"
dop "no"
replay_gain_handler "none"
}