如何调试Pulse Audio的问题?

我在我的机器上安装了Ubuntu 11.10。 我以USER_A身份登录。 我的外部音频设备是耳机,我能够正确听到音频。

我需要将我的Ubuntu机器加入窗口的域(我的办公室服务器)。 我按照http://www.ghacks.net/2010/04/21/join-a-ubuntu-machine-to-a-windows-domain/中解释的步骤操作,并成功将我的ubuntu机器加入了Windows域。

sudo apt-get install likewise-open5 sudo domainjoin-cli join DOMAIN USER_B 

现在,当我以USER_B身份登录时,该用户在同一台​​计算机上没有音频。

我与我的User_A帐户交叉检查。 User_A的声音没有问题。 仅对于User_B,没有音频。

当我检查User_B的声音设置时,硬件,输入和输出中没有列出任何设备。 而对于用户A,我的耳机列在输入和输出中。

任何人都可以请帮助我。 为什么User_B没有声音?

您能否详细介绍一下如何“检查音频组中是否添加了用户”。

当我尝试在终端中执行pulseaudio -k时(来自User_B)

 E: [pulseaudio] main.c: Failed to kill daemon: No such process 

我也在脉冲音频日志中找到了这个。 当我跑:

 pulseaudio --log-level=4 --log-target=stderr 

我在日志中发现以下错误行:

 E: [pulseaudio] module-dbus-protocol.c: dbus_server_listen() failed: org.freedesktop.DBus.Error.BadAddress: Abstract socket name too long E: [pulseaudio] module-dbus-protocol.c: Starting the local D-Bus server failed. E: [pulseaudio] module.c: Failed to load module "module-dbus-protocol" (argument: ""): initialization failed. E: [pulseaudio] main.c: Module load failed. E: [pulseaudio] main.c: Failed to initialize daemon. 

此初步答案总结了仅在为此用户加入域的环境中调试一个用户可用声音所涉及的步骤。 可能需要稍后延长。

如果我们只有一个用户的声音,我们可能在这个用户帐户的设置中有一些错误的配置。 我们需要从受影响的用户帐户中执行以下步骤以进一步了解问题。

  1. pulseaudio一直在运行吗?
    通常你会看到从顶部栏中访问声音菜单。 或者,我们可以在终端中发出以下命令:

     pulseaudio -k 

    如果pulseaudio没有运行,将会出错。 此外,此命令负责停止和重新生成pulseaudio,以防它挂起。

  2. pulseaudio守护程序的用户设置是否有错误?
    要测试这个,我们必须重命名受影响用户的HOME中的settings目录,然后重新启动pulseaudio(参见1. ):

     mv ~/.pulse ~/.pulse.bad 

    要么

     mv ~/.config/pulse ~/.config/pulse.bad ## for newer releases 
  3. ALSA的频道是否静音?
    我们可以在终端中打开alsamixer来调整通道音量,并在通道意外静音时取消静音:

     alsamixer 
  4. 确保用户不在 “音频”组中
    audio组中的用户可以独占访问pulseaudio服务器。 其他用户在此用户使用它时无法访问它。 因此,用户不应该在audio组中。

  5. 手动启动Pulseaudio
    如果pulseaudio没有运行,我们也可以从命令行启动守护进程

     pulseaudio -D 

    Pulseaudio然后使用默认设置并启动它的守护进程。 我们还可以将此命令发送到我们的自动启动应用程序,以克服在加载桌面之前pulseaudio无法运行的情况。

  6. 浏览日志文件
    Pulseaudio将在系统启动时加载,并在用户登录时加载。 因此,只能从启动pulseaudio上生成的日志中读取错误。 请参阅本指南,了解如何生成pulsaudio日志脚本 。 总之,我们必须小心pulseaudio不重生我们可能会以详细模式运行它:

     pulseaudio -vvvv  

要完成的


在问题中给出的情况下,我们可以看到pulseaudio无法运行,因为它无法启动D-Bus服务。 这可能是由于用户HOME的路径损坏或过长造成的( 请参阅错误#872992 )。 作为一种解决方法,我们可以通过在/etc/pulse/default.pa注释掉以下行来发出没有​​D-Bus控制的pulseaudio,如下所示:

 # load-module module-dbus-protocol 

然而,我们(和我们的应用程序)将无法使用D-Bus控制pulseaudio。

在我的Debian系统上,我能够根据比我聪明的人的建议,将$ HOME / .pulse /文件夹和$ HOME / .pulse-cookie文件从$ USER_A复制到$ $。 USER_B,适当地选择它们。