Я пытаюсь запустить mpd на fedora 23 с помощью alsa (pulseaudio удален). Однако при запуске mpd от имени пользователя "mpd" я получаю

alsa_output: Error opening default ALSA device: Permission denied

Поэтому я запустил его как пользователь root, и все в порядке. Хорошо, проблема с разрешениями - просто я не понимаю, почему она не работает как пользователь mpd - разрешения выглядят нормально для меня:

/dev/snd:
total 0
crw-rw----+ 1 root audio 116,  0 Jan  1  1970 controlC0
crw-rw----+ 1 root audio 116, 16 Jan  8 20:38 pcmC0D0p
crw-rw----+ 1 root audio 116, 17 Jan  1  1970 pcmC0D1p
crw-rw----+ 1 root audio 116,  1 Jan  1  1970 seq
crw-rw----+ 1 root audio 116, 33 Jan  1  1970 timer
[root@sh02 ~]# grep audio /etc/group
audio:x:63:isaac,mpd
[root@sh02 ~]# getenforce 
Permissive

И, конечно же, я перезагрузил компьютер, чтобы убедиться, что все правильно инициализировано. Кто-нибудь понял, чего не хватает, чтобы позволить mpd получить доступ к моему аудио устройству? Я мог бы, вероятно, добавить некоторые acl, чтобы разрешить явный доступ к mpd - но в моем понимании членство в группе должно быть достаточным ???

РЕДАКТИРОВАТЬ Это разрешения файла конфигурации mpd:

-rw-r-----. 1 root root system_u:object_r:mpd_etc_t:s0 13585 Jan  8 22:04 /etc/mpd.conf

Обратите внимание, что mpd может работать как пользователь mpd, если используется плагин импульсного выхода. Но поскольку пульс заикался и иногда не запускался, я решил не использовать пульс, а использовать выход alsa.

В домах нет файлов .mpdconf.

2 ответа2

2

Добавление acls для явного разрешения mpd доступа к звуковым устройствам решило проблему:

sudo setfacl -m u:mpd:rw /dev/snd/*

Делая это, Бевор был похож на это:

# file: dev/snd/controlC0
# owner: root
# group: audio
user::rw-
user:lightdm:rw-
group::rw-
mask::rw-
other::---

# file: dev/snd/pcmC0D0p
# owner: root
# group: audio
user::rw-
user:lightdm:rw-
group::rw-
mask::rw-
other::---

# file: dev/snd/pcmC0D1p
# owner: root
# group: audio
user::rw-
user:lightdm:rw-
group::rw-
mask::rw-
other::---

# file: dev/snd/seq
# owner: root
# group: audio
user::rw-
user:lightdm:rw-
group::rw-
mask::rw-
other::---

# file: dev/snd/timer
# owner: root
# group: audio
user::rw-
user:lightdm:rw-
group::rw-
mask::rw-
other::---

Поскольку mpd уже был членом аудиогруппы, этих acls должно было быть достаточно. Я дам награду тому, кто сможет объяснить, что здесь происходит.

-1

Вы должны добавить пользователя в аудио группу:

usermod -aG audio [пользователь]

Выйдите из системы и вернитесь обратно. Вы должны быть в состоянии использовать аудио.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .