Gentoo Music Player Daemon (MPD) and ALSA installing
Решил использовать свой gentoo server box для проигрывания музыки. Купил нужные провода для соединения с системой 5.1. Дальше встал вопрос - как проигрывать музыку удалённо, управляя сервером. ПОтратил некоторое время для поиска консольного плеера, чтобы запускать его по ssh, но случайно наткрунлся на клиент-серверную программу MPD. Прочитал о программе, крайне понравилась идея и огромное количество клиентов подовсе ОС, и даже, веб клиенты, что мне особенно понравилось! Решено, надо установить эту замечательную штуку.
Утсновка Music Player Daemon под Gentoo
Сперва надо выполнить стандартный
Use Flags: aac alsa bzip2 cue curl flac id3 ipv6 lame network sqlite unicode wavpack zip -ao -audiofile -avahi -cdio -debug -ffmpeg -fifo -fluidsynth -jack -lastfmradio -libmms -libsamplerate -mad -mikmod -modplug -musepack -ogg -oss -pipe -profile -pulseaudio -sid -vorbis -wildmidi (?)
Однако, как обычно всё гладко не бывает в жизни. После установки всех необходимых сопуствующих программ система приступила к установке собственного самого mpd и на этом остановилась с ошибкой:
* ERROR: media-sound/mpd-0.15.15 failed.
* Call stack:
* ebuild.sh, line 49: Called pkg_setup
* mpd-0.15.15.ebuild, line 60: Called enewuser 'mpd' '' '' '/var/lib/mpd' 'audio'
* eutils.eclass, line 726: Called die
* The specific snippet of code:
* useradd -r ${opts} \
* -c "added by portage for ${PN}" \
* ${euser} \
* || die "enewuser failed"
* The die message:
* enewuser failed
Подтверждение этой ошибки я нашёл вот тут. Если прочитать ошибку, то видно, что проблема в невозможности создать пользователя для mpd, что он не запускался от root'а. Далее я открыл на правку файл, который и вызвал этот затык и внёс в него следующие коррективы:
if [[ -z $@ ]] ; then
useradd ${opts} \
-c "added by portage for ${PN}" \
${euser} \
|| die "enewuser failed"
else
einfo " - Extra: $@"
useradd -r ${opts} "$@" \
${euser} \
|| die "enewuser failed"
fi
На выделенной 730-й строчке я убрал параметр -r у команды useradd. Ещё раз пробуем пересобрать mpd. Всё должно сработать.
Настройка
Теперь приступаем к настройке конфигурационнго файла MPD:
music_directory "/var/lib/mpd/music"
playlist_directory "/var/lib/mpd/playlists"
db_file "/var/lib/mpd/database"
log_file "/var/log/mpd/mpd.log"
state_file "/var/lib/mpd/state"
user "mpd"
bind_to_address "localhost"
bind_to_address "/var/lib/mpd/socket"
port "6600"
log_level "default"
input {
plugin "curl"
# proxy "proxy.isp.com:8080"
# proxy_user "user"
# proxy_password "password"
}
audio_output {
type "alsa"
name "P5Q-E ALSA Device"
# device "hw:0,0" # optional
# format "44100:16:2" # optional
# mixer_device "default" # optional
# mixer_control "PCM" # optional
# mixer_index "0" # optional
}
filesystem_charset "UTF-8"
Привер вывода команды
-rw-r--r-- 1 mpd audio 2532 Mar 7 19:53 database
drwxr-xr-x 2 mpd audio 4096 Mar 7 19:35 music
drwxr-xr-x 2 mpd audio 4096 Mar 7 19:41 playlists
srw-rw-rw- 1 root root 0 Mar 7 19:53 socket
-rw-r--r-- 1 mpd audio 493 Mar 7 20:23 state
Проблемы запуска MPD - TroubleShooting
В случае возникновения каких-либо сложностей, надо смотреть вот эту ссылку.
Причём крайне помогает команда
или же занесения в конфиг /etc/mpd.conf строчки: log_level "verbose"
Так же можно посмтреть вот эту ссылку, которая описывает процесс установки и настройки (в кратце).
И наконец, крайне важная ссылка - FAQ, который помогает в поиске ошибок. Очень полезная ссылка.
А вот пример одного из ответов на вопросы, который помог лично мне. Важно собрать MPD с нужными поддерживаемыми форматами, о поддержке которых можно узнать по команде
. В общем читать надо тут.