如何调试Pulse Audio的问题?


13

我已经在机器上安装了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.

感谢您的答复。只有B登录到我的系统。他没有声音。我从B注销,然后重新登录为A。现在A发出声音了。基本上,A在同一系统中始终有音频,而B没有声音。甚至在重新启动B之后也没有声音
Senthil Kumaran 2012年

就像我之前说过的,对于B,耳机未在声音设备中列出。而对于A,列出了耳机。
Senthil Kumaran

能否请您简要介绍一下如何“检查是否在音频组中添加了用户”。而且,当我尝试在终端(从User_B)中执行pulseaudio -k时:E:[pulseaudio] main.c:无法杀死守护进程:没有这样的过程
Senthil Kumaran 2012年

我也在脉冲音频日志中找到了这个。当我运行时: pulseaudio --log-level = 4 --log-target = stderr我在日志中发现以下错误行: E:[pulseaudio] module-dbus-protocol.c:dbus_server_listen()失败:org.freedesktop .DBus.Error.BadAddress:抽象套接字名称太长E:[pulseaudio] module-dbus-protocol.c:启动本地D-Bus服务器失败。E:[pulseaudio] module.c:无法加载模块“ module-dbus-protocol”(参数:“”):初始化失败。E:[pulseaudio] main.c:模块加载失败。E:[pulseaudio] main.c:初始化守护程序失败。
Senthil Kumaran

1
在评论中总结评论。
塔卡特2012年

Answers:


16

此初步答案概述了调试仅在为该用户加入域的环境中可用于一个用户的声音的步骤。稍后可能需要扩展。

万一只有一个用户有声音,我们可能在此一个用户帐户的设置中配置有误。我们需要从受影响的用户帐户中采取以下步骤以进一步了解问题。

  1. 脉冲音频是否在运行?
    通常,通过访问顶部栏中的声音菜单,您会看到这一点。或者,我们可以在终端中发出以下命令:

    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 <options>
    

要完成的


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

# load-module module-dbus-protocol

但是,我们(以及我们的应用程序)将无法使用D-Bus控制PulseAudio。


Ubuntu 17.10,仍然是实际程序。它帮助了我。
hariprasad 18'Apr

我不完全确定是什么原因造成的。这些是我尝试过的。.pulse在主文件夹中创建了一个文件夹。符号链接到.configln -s /home/<user>/.pulse /home/<user>/.config/pulse。当我使用i3时,添加exec /usr/bin/pulseaudio --start --log-target=syslog了在启动时启动Pulseaudio的功能。(Ubuntu 18.04)
Hari KT

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.