В духе полного раскрытия, я только что разместил этот вопрос на форумах Ubuntu, но я думаю, что больше людей, работающих над этим, не повредит.
У меня есть установка на несколько мест, работающая довольно хорошо. Горячее подключение устройств ввода работает как положено и так далее. Единственная проблема, которую я до сих пор не могу решить, это получить аудио для каждого места.
Вот краткое изложение моих попыток заставить аудио работать:
Сделайте ~ / .pulse / default.pa динамически настроенным в зависимости от того, в каком $ DISPLAY пользователь входит в систему.
- Смотрите этот pastebin для деталей.
Загрузите pulseaudio как общесистемный экземпляр.
- Не могу заставить это работать. Ни одно из аудиооборудования не было доступно пользователям.
Используйте правила udev, чтобы отмечать места в ConsoleKit. Следующие рекомендации udev можно найти здесь: http://www.freedesktop.org/wiki/Software/systemd/multiseat
- Я не думал, что это сработает, хотя кто-то "гарантированно" сработал в irc.freenode #pulseaudio
Ни одна из этих попыток не принесла успеха, поэтому сейчас я обращаюсь к сообществу за помощью. Вполне возможно, что предложенные методы работают, и я только что испортил некоторые аспекты, idk. Это последняя часть головоломки, которая необходима, прежде чем я смогу перейти и обновить страницу MultiseatX, чтобы включить инструкции для Ubuntu 12.04.
Мое понимание ситуации: доступ к pulseaudio ограничен активным сеансом, как отмечено в ConsoleKit (что-то о ACL). CK может пометить только один сеанс как активный за один раз. Этот простой маленький факт жизни заставляет меня поверить, что решение должно включать в себя PulseAdio, работающий как общесистемный экземпляр. Каждый пользователь должен подключаться к импульсному серверу и быть ограниченным подмножеством всего оборудования. Возможно, каждый пользователь подключается к импульсному серверу через localhost, idk. Я знаю, что независимо от моих попыток и их неудачных результатов, я всегда мог использовать sudo aplay -D plughw:0,0 /usr/share/sounds/alsa/Front_Center.wav
что-нибудь для воспроизведения на любом оборудовании.
Я хватаюсь за соломинку и теперь до последних волосков, которые я могу вырвать из головы. Пожалуйста, помогите мне понять это, чтобы мы могли поделиться богатством. Любая дополнительная необходимая информация будет предоставлена по вашему запросу.
источник
/etc/pulse
не в HOME, а в.Ответы:
Я провел много часов, исследуя онлайн, тестируя различные установки и общаясь с разработчиками Pulseaudio. Суть в том, что запуск pulseaudio в обычном пользовательском режиме позволит только активному сеансу, отмеченному ConsoleKit, получить доступ к аудиооборудованию. Поскольку текущий ConsoleKit может помечать только один сеанс как активный за раз, это означает, что мы должны запустить общесистемный экземпляр pulseaudio. Плюс: у каждого места может быть индивидуальный звук. Недостаток: ВСЕ аудиоустройства доступны для любого пользователя и могут манипулировать по желанию. Это не идеальная ситуация для интернет-кафе или других общественных мест, где безопасность является реальной проблемой. Помните об этом при создании политики безопасности вашего сайта. Было бы целесообразно ограничить выполнение pavucontrol только для администраторов.
Как всегда, сделайте резервную копию всех ваших файлов конфигурации по умолчанию. Если вы работали с вашими конфигами без резервного копирования, вы можете получить пакет pulseaudio с помощью apt-get -d install pulseaudio. Это загрузит пакет (только в / var / cache / archives / apt), и вы сможете извлечь содержимое для получения настроек по умолчанию. Имейте в виду, что client.conf там не включен.
Чтобы запустить pulseaudio как системный демон, нам нужно отредактировать несколько файлов.
1.) / etc / default / pulseaudio
2.) /etc/pulse/daemon.conf - для получения дополнительной информации см. Man pulse-daemon.conf.
3.) /etc/pulse/client.conf
Нам также нужно добавить пользователей в группу импульсного доступа.
Теперь, когда все пользователи имеют доступ к аудиооборудованию, нам нужно выбрать оборудование, которое будет использовать каждый пользователь. Это можно сделать с помощью pavucontrol. Пожалуйста, имейте в виду, что настройки хранятся на пользователя и не будут следовать за местом. Если пользователи поменялись местами, вам нужно будет повторно выбрать нужное аудиооборудование.
Дополнительные комментарии на Pulseaudio
Я надеялся, что будет более элегантное решение для получения звука на место. Использование общесистемного Pulseaudio в мультисайтах имеет много недостатков и не является полностью стабильным между перезагрузками. Я попытался запустить общесистемный экземпляр, чтобы пользовательские экземпляры подключались к нему как к серверу через локальный хост. Это, похоже, не работает, так как при запуске pulseaudio --start он создает источник daemon.conf.
Что касается ConsolKit
Проблема, которую мы видим при запуске обычного импульса для пользователя, заключается в том, что одно рабочее место имеет доступ к оборудованию, а все остальные имеют фиктивный выход. Это связано с тем, что ConsoleKit не полностью осведомлен о месте. CK считает все наши места сеансами места 1 и может отметить только одну сессию как активную. Этот факт можно увидеть, запустив getfacl / dev / snd / *. Мне пришла в голову мысль, что мы можем отредактировать acl соответствующих файлов / dev / snd /, основываясь на том, что $ DISPLAY использует конкретный пользователь. Это вариант, который я не исследовал. Пожалуйста, рассмотрите возможность внесения вклада в проблему множественности мест, исследуя эту гипотезу и редактируя документ со своими результатами
Существуют многосетевые ветки для ConsoleKit , GDM-2.3 и GDM-3.x , которые должны обеспечивать автоматическую функциональность нескольких мест.
Дополнительные замечания
1.) Было бы целесообразно также запретить пользователям загружать модули DISALLOW_MODULE_LOADING = 1.
2.) autospawn = no не совсем необходим, как видно из моего файла примера. Это не вызывает никаких проблем.
источник
В ConsoleKit есть патч для добавления поддержки нескольких мест; это позволит ему сообщать обо всех активных местах как активных. Возможно, это решит вашу проблему. Требуется сотрудничество с диспетчером отображения, и есть патч для старых версий GDM, который добавляет эту поддержку.
Я получил многозадачность, работая в Natty (11.04), используя модифицированные пакеты ConsoleKit и GDM из PPA . Я еще не обновил Natty - мне потребовалось много времени, чтобы понять, как заставить его работать, и я беспокоюсь, что LightDM не будет работать с пропатченным ConsoleKit.
РЕДАКТИРОВАТЬ: я должен отметить, что Fedora 17 имеет некоторые впечатляющие функции многоуровневых, некоторые из которых будут в Quantal. У них есть вики-страница, описывающая их подход . Ubuntu не может просто скопировать подход Fedora, потому что это потребует значительных изменений; Fedora использует systemd и GDM, а Ubuntu использует upstart и LightDM.
источник
Недавно я пытался решить проблему с PulseAudio и Multiseat. Видя, что не было элегантного решения, мой обходной путь должен был использовать сеть.
Это решение подходит для моего сценария, поскольку я являюсь пользователем, который чаще всего находится в машине, а мое место чаще всего регистрируется. И мое место настроено для левой руки, и никто другой не использует его.
По моему
~/.config/pulse/default.pa
я скопировал конфигурацию системы/etc/pulse/default.pa
и добавил следующую строку:В настройках pulseaudio других пользователей добавьте туннель - или несколько, если это то, что вам нужно - с чем-то вместе:
Измените имя раковины так, чтобы оно совпадало с именем на вашем компьютере. Вы можете решить настроить более дружественное имя - что означает, что вы должны настроить это в своем файле настроек pulseaudio - но я просто использовал данное имя, просматривая его
pacmd list-sinks
.Это не элегантное решение, я, вероятно, попытаюсь использовать общесистемную конфигурацию, как предложено @Anthony в моей следующей установке, но если у вас много карт и вы просто хотите использовать один или несколько приемников / источников, это более «хирургическое» решение.
источник