LINUX.ORG.RU

[gentoo] MPD не видит музыки прописанной в ~/.mpdconf

 


0

0

Привет. таки осилил я MPD, но осталась маленькая проблема.

В общем если путь к моей коллекции ($HOME/music) указать напрямую в /etc/mpd.conf то все отлично и колпекция видится - музыка играется, но если в /etc/mpd.conf оставить путь по умолчанию (/var/lib/mpd/music), а путь к коллекции указать в ~/.mpdconf (как оно и должно быть по идее), то в ncmpc и sonata'е музыки нифига нет.

Короче где может быть проблема? MPD пускаю из /etc/init.d/mpd при старте системы, причем если MPD пустить из под юзверя то коллекция видна но нет доступа к аудиодевайсам. Такое ошущение что он просто игнорирует мой ~/.mpdconf.

Вот мой /etc/mpd.conf

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"
error_file "/var/log/mpd/mpd.error.log"

pid_file "/var/run/mpd/mpd.pid"
state_file "/var/lib/mpd/state"

user "mpd"
port "6600"
log_level "default"

audio_output {
type "alsa"
name "My ALSA Device"
}

mixer_type "alsa"
mixer_device "default"
mixer_control "Master"

filesystem_charset "UTF-8"

а это мой ~/.mpdconf

music_directory "~/music"
playlist_directory "~/.mpd/playlists"
db_file "~/.mpd/database"

mpd --create-db и от рута и от себя делал.

★★★★★

music_directory "~/music"
playlist_directory "~/.mpd/playlists"
state_file "~/.mpd/mpdstate"
db_file "~/.mpd/mpd.db"
log_file "~/.mpd/mpd.log"
error_file "~/.mpd/mpd.error"
pid_file "~/.mpd/mpd.pid"
user "user"
bind_to_address "127.0.0.1"
#bind_to_address "10.0.0.2"
#bind_to_address "192.168.0.1"
port "6600"


Обрати внимание на параметр user
P.S. каталоги и файлы ему нужно создавать самостоятельно

legalize
()
Ответ на: комментарий от legalize

>Обрати внимание на параметр user

С этого места поподробнее пожалуйста.

>P.S. каталоги и файлы ему нужно создавать самостоятельно

Это я уже понял.

fat_angel ★★★★★
() автор топика
Ответ на: комментарий от fat_angel

Как ты мог увидеть, в приведенном мной конфиге указан пользователь mpd - некий "user". Припиши туда свой юзерней и покажи как mpd ругается.

legalize
()

А что вы хотите? Права какие на оные директории и девайсы? mpd (пользователь) читать из вашего хомяка не может. Я в сое время решил просто. Ссоздал /home/mpd с музыкальной файлопомойкой (владелец mpd).

marsijanin ★★
()

Кажется я понял в чем проблема, MPD читает первый попавшийся ему конфиг (в случает /etc/init.d/mpd это /etc/mpd.conf при запуске от обычного юзверя это ~/.mpdconf если есть, если нет то тотже /etc/mpd.conf) и на этом успокаивается, поэтому и не переопределяется music_directory. Придется MPD пускать от пользователя (через .bashrc), а не как системный сервис. Если гдето ошибся поправте.

fat_angel ★★★★★
() автор топика
Ответ на: комментарий от marsijanin

>Права какие на оные директории и девайсы?

На чтение везде есть.

>Ссоздал /home/mpd с музыкальной файлопомойкой

А не проще /var/lib/mpd/music использовать? Прижелании можно отдельным разделом примонтировать.

fat_angel ★★★★★
() автор топика
Ответ на: комментарий от fat_angel

У меня запускается от пользователя, а в ~/music помимо каталогов с музыкой валяется еще линк на каталог с музыкой на другом винте.

legalize
()

Посмотри внимательнее в скрипт запуска mpd (/etc/init.d/mpd). Там проверяется наличие /etc/mpd.conf (если его нет - ошибка), и запускается только с ним.

lv ★★
()
Ответ на: комментарий от lv

>Посмотри внимательнее в скрипт запуска mpd (/etc/init.d/mpd). Там проверяется наличие /etc/mpd.conf (если его нет - ошибка), и запускается только с ним.

Уже видел.

fat_angel ★★★★★
() автор топика
Ответ на: комментарий от fat_angel

Короче в .bashrc прописал строку вида "mpd", а в .bash_logout "mpd --kill" и состряпал такой .mpdconf

music_directory "~/music"
playlist_directory "~/.mpd/playlists"
db_file "~/.mpd/database"
log_file "~/.mpd/mpd.log"
error_file "~/.mpd/mpd.error"

pid_file "~/.mpd/mpd.pid"
state_file "~/.mpd/state"

user "nika"
#bind_to_address "localhost"
port "6600"

audio_output {
type "alsa"
name "My ALSA Device"
# device "hw:0,0" # optional
# format "44100:16:2" # optional
}

mixer_type "alsa"
mixer_device "default"
mixer_control "Master"

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

#metadata_to_use "artist,album,title,track,name,genre,date,composer,performer ,disc"

fat_angel ★★★★★
() автор топика
Ответ на: комментарий от fat_angel

Тоже вполне себе подход. Просто, насколько я понял, mpd - это именно системный сервис, открывающий порт с музыкой, на который уже может коннектиться и слушать её кто угодно (точнее, кому позволят настройки). Поэтому при запуске в качестве системного сервиса, используется именно конфиг в /etc (пускается-то от рута, хоть потом и можно сменит EUID). ~/.mpdconf же предназначен для запуска из под пользователя, в качестве "локального проигрывателя".

Лично я не стал заморачиваться - свалил всё в /var/lib/mpd/ и слегка подправил /etc/mpd.conf

lv ★★
()
Ответ на: комментарий от lv

На буке не так уж и много людей работает в конкретный момент времени, так что пойдет. Хотя создать отдельный раздел и примонтировать его в /var/lib/mpd/music тоже можно (благо юзается LVM).

fat_angel ★★★★★
() автор топика
Ответ на: комментарий от fat_angel

Кстати, как решил проблему с кодировками в тагах? Подавляющее большинство - это cp-1251. id3v1_encoding "CP-1251" не помогает.. Конвертил всё в UTF-8 или ещё как?

lv ★★
()
Ответ на: комментарий от lv

>Кстати, как решил проблему с кодировками в тагах? ... Конвертил всё в UTF-8 или ещё как?

Конечно перегонял в UTF-8 (и одновременно немилосердно убивал id3v1), это позволяет раз и навсегда решить проблему с кодировками почти во всех плеерах, плюс музыки с русскими тегами у меня не так уж много.

fat_angel ★★★★★
() автор топика
Ответ на: комментарий от fat_angel

А такое при работающем mpd нормально:

ps ax | grep mpd 

32212 ?        S      0:00 /usr/bin/mpd --no-create-db /etc/mpd.conf
32215 ?        SL     0:01 /usr/bin/mpd --no-create-db /etc/mpd.conf
32216 ?        S      0:02 /usr/bin/mpd --no-create-db /etc/mpd.conf

А то у меня ncmpc коннектится нормально, а mpc выдаёт:

vlad@hp_530 ~ $ mpc
MPD_HOST and/or MPD_PORT environment variables are not set
error: problems getting a response from "localhost" on port 6600 : Connection refused

хотя mpd висит именно на localhost:6600

vlad@hp_530 ~ $ netstat -l
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 *:4581                  *:*                     LISTEN      
tcp        0      0 localhost:6600          *:*                     LISTEN 
...

В чём может быть проблема?

lv ★★
()
Ответ на: комментарий от lv

Пропиши в файле /etc/env.d/99local

MPD_HOST="localhost"
MPD_PORT="6600"

если этого файла нет - создай. После чего

env-update && source /etc/profile

хотя мне еще потребовалась перезагрузка, ибо сеть начала "чудить".

fat_angel ★★★★★
() автор топика
Ответ на: комментарий от fat_angel

Ну так он даже без этих переменных пытается связаться с mpd через localhost:6600 - по умолчанию. Просто mpd не отвечает. Как вариант - старая версия mpc... mpd-0.13.1 / mpc-0.12.0. Хотя и это навряд ли..

PS Попробовал проинитить переменные окружения (хост и порт) - сообщение об их неинициализированности пропало, но

error: problems getting a response from "localhost" on port 6600 : Connection refused

осталось..

lv ★★
()
Ответ на: комментарий от fat_angel

Кстати чтото меня смущает дикое потребление процессора - 30...50%, правда частота снижена до 800 МГц но имхо это всеравно много. У кого-нибудь такое есть?

fat_angel ★★★★★
() автор топика
Ответ на: комментарий от fat_angel

это именно mpd потребляет? у меня такое было иногда, когда я его на паузу ставил, а потом суспендил ноут. Перегружал mpd и всё ok. Если не он - то может быть operapluginwrapper или operaplugincleaner (какие-то проблемы с флешем). Посмотреть, что проц грузит можно при помощи top (ну это на всякий случай :))

lv ★★
()
Ответ на: комментарий от lv

ну с operaplugin* это, конечно, если оперу используешь :)

lv ★★
()
Ответ на: комментарий от lv

Именно MPD. Причем по окончаннии проигрывания или приостановки на паузу загрузка CPU спадает, htop подтверждает все это.

fat_angel ★★★★★
() автор топика
Ответ на: комментарий от fat_angel

Хотя, сейчас попробовал перезапустить mpd и загрузка которую дает именно mpd упала до 3-8%. Ну ладно понаблюдаю еще за ним.

fat_angel ★★★★★
() автор топика
Ответ на: комментарий от fat_angel

Кстати сейчас попробовал создать симлинки в /var/lib/mpd/music - все работает. Достаточно запустить команду "find /home/юзверь/music/ -maxdepth 1 -type d -exec ln -s '{}' \; && rm music"

fat_angel ★★★★★
() автор топика
Ответ на: комментарий от fat_angel

Можно даже еще проще "find /home/nika/music/ -mindepth 1 -maxdepth 1 -type d -exec ln -s '{}' \;"

fat_angel ★★★★★
() автор топика
Ответ на: комментарий от lv

>А это зачем было? :))

Если поиск делать без -mindepth то в результат включается и корневая директория, соответственно удаляем лишний симлинк на нее.

fat_angel ★★★★★
() автор топика
Ответ на: комментарий от lv

>Проблема решена - в MPD_HOST прописал 127.0.0.1. Так ему почему-то понятнее :)

система без IPv6 собрана?

в /etc/hosts закоментируй:

#::1 localhost

dimlight
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.