本着完全公开的精神,我刚刚在ubuntu论坛上发布了这个问题,但我认为更多的人在做这方面的工作不会有什么影响。
我有一个多座位的设置工作得很好。热插拔输入设备按预期工作。唯一的问题,我仍然无法解决,是获得每个座位的音频。
以下是我尝试让音频工作的一个总结:
这些尝试都没有成功,所以我现在向社会求助。建议的方法很有可能起作用,我只是把它的某些方面搞砸了,idk。这是拼图的最后一部分,我需要它才能更新MultiseatX页面,以包含Ubuntu12.04的说明。
我对这种情况的理解:对脉冲音频的访问仅限于以ConsoleKit (关于ACL的一些内容)标记的活动会话。CK一次只能将一个会话标记为活动。生活中这个简单的事实让我相信,解决方案应该包括将脉冲音频作为一个系统范围的实例运行。每个用户都应该连接到脉冲服务器,并被限制在所有硬件的子集上。也许每个用户通过本地主机idk连接到脉冲服务器。我知道,无论我的尝试和失败的结果,我总是能够使用sudo aplay -D plughw:0,0 /usr/share/sounds/alsa/Front_Center.wav来播放任何硬件。
我在抓吸管,现在我可以从头上拔出最后几根头发了。求你了,帮我弄清楚,这样我们才能分享财富。所需的任何其他信息将应您的要求提供。
发布于 2012-10-02 15:39:02
我花了很多时间在网上进行研究,测试各种设置,并与脉冲音频开发人员交谈。这一切的底线是,在正常用户模式下运行脉冲音频将只允许ConsoleKit标记的活动会话访问音频硬件。由于当前的ConsoleKit一次只能将一个会话标记为活动,这意味着我们必须运行一个系统范围的脉冲音频实例。好处是:每个座位都可以有单独的音频。缺点:所有音频硬件都可供任何用户使用,并且可以随意操作。对于网吧或其他公共场合来说,这不是一个理想的情况,因为安全是一个真正的问题。在创建站点安全策略时,请记住这一点。可能是谨慎的做法是,仅限于管理员执行pavucontrol。
与往常一样,对所有默认配置文件进行备份。如果您在没有备份的情况下修改了您的信任,您可以使用apt-get -d安装脉冲音频检索脉冲音频包。这将只下载包(到/var/cache/ configs /apt),您可以提取内容来检索默认的信任。请注意,client.conf不包括在其中。
要将脉冲音频作为一个系统范围的守护进程运行,我们需要编辑几个文件。
(1) /etc/默认/脉冲音频
PULSEAUDIO_SYSTEM_START=12. /etc/脉冲/daemon.conf -参见man脉冲-daemon.conf以获取更多信息。
daemonize = yes
local-server-type = system3.) /etc/脉冲/客户
autospawn = no我们还需要将用户添加到脉冲访问组中。
sudo usermod -a -G pulse-access <username>现在所有用户都可以访问音频硬件,我们需要选择每个用户将使用的硬件。这可以使用pavucontrol来完成。请注意,设置是存储在每个用户,将不会跟随座位。如果用户切换座位,您将需要重新选择所需的音频硬件。
的补充评论
我曾希望有一个更优雅的解决方案,使每个座位的音频工作。在多个座位上使用全系统的脉冲音频有许多缺点,并且在重新启动之间不完全稳定。我试图启动一个系统范围的实例,并让用户实例通过本地主机作为服务器连接到它。这似乎不起作用,因为当脉冲音频-启动运行时,它来源于daemon.conf。
当运行普通的每个用户的脉冲音频时,我们看到的问题是,一个座位可以访问硬件,而其他所有的座位都有虚拟输出。这是因为ConsoleKit没有完全注意到座位。CK认为我们所有的座位都是seat1的会话,只能将一个会话标记为活动。运行getfacl /dev/snd/*可以看出这一事实。我突然想到,我们可能能够编辑特定用户使用的适当/dev/snd/文件的acl。这是我没有探讨过的一种选择。请考虑通过探索这一假设并与您的发现一起编辑这份文件,为多座位的事业做出贡献。
ConsoleKit、GDM-2.3和GDM-3.x的多座位分支确实存在,可以提供自动多座位功能。
1.)最好也不允许用户加载模块DISALLOW_MODULE_LOADING=1。
2.)就像我的示例文件中所看到的,autospawn = no并不是完全必要的。它不会引起任何问题。
发布于 2019-08-29 06:37:11
最近,我正试图用PulseAudio和Multiseat解决这个问题。考虑到没有优雅的解决方案,我的解决办法是使用网络。
这个解决方案适合我的情况,因为我是用户,最经常在机器和我的座位是最经常登录。我的座位是左撇子配置的,没有其他人用过。
在我的~/.config/pulse/default.pa中,我复制了/etc/pulse/default.pa的系统配置,并添加了以下行:
load-module module-native-protocol-tcp auth-anonymous=1 auth-ip-acl=127.0.0.1在其他用户的脉冲音频设置中,添加一个隧道--或者几个隧道,如果这是您需要的--附带一些内容:
load-module module-tunnel-sink server=127.0.0.1 sink=alsa_output.pci-0000_00_XX.X.iec958-stereo更改接收器名以与计算机中的接收器名称匹配。您可以决定配置一个更友好的名称--这意味着您应该在您的脉冲音频设置文件中配置它--但是我只是使用pacmd list-sinks来查看它。
这不是一个优雅的解决方案,我可能会尝试使用@Anthony在我的下一个平台中建议的系统范围的配置,但是如果您有很多卡片并且只想共享一个或几个接收器/源,这是一个更“外科”的解决方案。
https://askubuntu.com/questions/192522
复制相似问题