LINUX.ORG.RU

Не работает звук в новом сеансе, запущенном ctrl+alt+f1.

 , ,


0

1

Здравствуйте! Имеется компьютер с установленным Linux Mint 17.3 Mate. 90% времени используется как медиацентр. На нем установлен Kodi, и созданы два пользователя: основной (созданный при установке), и Kodi (систему настроил так, чтобы при включении компьютера по умолчанию грузился сеанс Kodi, не спрашивая пароль и т.д.) Иногда мне бывает нужно переключиться на основного пользователя, я жму ctrl+alt+f1, ввожу логин-пароль, далее startx. Запускается Mate, и всё бы хорошо, но в этом новом сеансе не работает звук (при этом если что-то играет в сеансе Kodi, оно не замолкает при переключении с помощью ctrl+alt+f8 к этой новой сессии). Хотелось бы настроить так, чтобы звук работал во всех сеансах. На всякий случай добавил обоих пользователей в группу аудио, но это не помогло.

На всякий случай добавил обоих пользователей в группу аудио

не надо так делать

Хотелось бы настроить так, чтобы звук работал во всех сеансах

system wide pulseaudio

buttface

пишу сюда чтоб скор капнул.)

Bad_ptr ★★★★★
()

Добавь start-pulseaudio-x11 в .xinitrc. Если mate не создает при запуске consolekit сессию, то это тоже нужно будет сделать за него exec ck-launch-session dbus-launch --sh-syntax --exit-with-session /usr/bin/mate

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

system wide pulseaudio

О,круто, спасибо!

- add to every user on the system the groups 'pulse' and 'pulse-access' - edit etc/pulse/daemon.conf

change 'daemonize = no' to 'daemonize = yes'

change 'system-instance = no' to 'system-instance = yes'

- edit /etc/init/pulseaudio.conf

uncomment the 'start on runlevel [2345]'

- delete .pulse in your home directory and do the same fore other users

- reboot the system

Еще хотелось узнать, можно ли сделать чтобы при переключении сеансов звук в предыдущих сеансах выключался? Это уже не критично, но если возможность есть, будет замечательно.

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

Если нужно отключение звука с неактивных сеансов, то никаких system wide, только consolekit (см. мой предыдущий коммент).

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

на сайте freedesktop.org не рекомендуют

Кажется мне, что это относится к system-wide PulseAudio, а по умолчанию оно уже давно от пользователя запускается. Никаких особых битов на бинарнике нет, поэтому если пользователя исключить из audio, звук отвалится. Возможно, это как-то зависит от дистрибутива.

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

Никаких особых битов на бинарнике нет

Так там наверное модные aclы используются или ещё какая магия.

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

Так там наверное модные aclы используются или ещё какая магия.

Capabilities, наверное, имел в виду? Их тоже нет:

$ /sbin/getcap /bin/ping
/bin/ping = cap_net_raw+ep
$ /sbin/getcap /usr/bin/pulseaudio 
$ 
i-rinat ★★★★★
()
Последнее исправление: i-rinat (всего исправлений: 1)
Ответ на: комментарий от i-rinat

Ну а оно не может динамически меняться? Consolekit-ом или logind-ом каким-нибудь? Т.е. права получает процесс, и то только пока текущим является терминал с залогиненым пользователем от имени которого запущен процесс.

Bad_ptr ★★★★★
()
Последнее исправление: Bad_ptr (всего исправлений: 1)
Ответ на: комментарий от i-rinat

Доступ рулится consolekit'ом через ACL (access control list). По умолчанию доступ выставляется активной сессии.

kash@tv ~ $ getfacl /dev/snd/controlC0
getfacl: Removing leading '/' from absolute path names
# file: dev/snd/controlC0
# owner: root
# group: audio
user::rw-
user:chrome:rw-
group::rw-
mask::rw-
other::---

Khorynthium
()
Ответ на: комментарий от i-rinat

Хитро.

Причём, я так понимаю, разные пользователи (т.е. разные сессии) по одному и тому же пути видят разные ACL.

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

Ну а оно не может динамически меняться? Consolekit-ом или logind-ом каким-нибудь? Т.е. права получает процесс, и то только пока текущим является терминал с залогиненым пользователем от имени которого запущен процесс.

Я так понимаю, именно это и происходит. На файлах в /dev/snd/* выставляются ACL, причём каждая сессия logind/ConsoleKit видит свой ACL. Но как конкретно эта магия реализована, я не знаю. Я её только сейчас обнаружил.

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

Проверил сейчас, одинаковые. Если под одним пользователем в цикле запустить getfacl, а потом переключиться на другого и обратно, видно, что права менялись.

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