![“连接 pulseaudio 失败” - 也无法启动 pulseaudio-x11](https://linux22.com/image/1581103/%E2%80%9C%E8%BF%9E%E6%8E%A5%20pulseaudio%20%E5%A4%B1%E8%B4%A5%E2%80%9D%20-%20%E4%B9%9F%E6%97%A0%E6%B3%95%E5%90%AF%E5%8A%A8%20pulseaudio-x11.png)
我使用的是 Devuan ASCII (~= Debian Stretch)。在我的浏览器和媒体播放器中,音频似乎可以工作,或者至少 - 播放可以工作。但是,如果我尝试运行pavucontrol
进行一些设置 - 通常有效 - 它会告诉我:
连接到 pulseaudio 失败
在这种情况下等等。如果 pulseaudio 崩溃等等,也会发生这种情况。如果是这种情况,则 PulseAudio 应该再次自动生成,或者如果没有配置,您应该手动运行 start-pulseaudio-x11。
因此,我不知道自动生成是否已配置,但其中/etc/pulse/client.conf
显示:
; autospawn = yes
并且daemon.conf
它没有提到自动生成。无论如何,它的名称中没有进程pulse
,也没有内核模块。
snd
以下是名称中包含以下内容的内核模块:
nd_hda_codec_hdmi 49152 2
snd_hda_codec_realtek 90112 1
snd_hda_codec_generic 69632 1 snd_hda_codec_realtek
snd_usb_audio 180224 0
snd_usbmidi_lib 28672 1 snd_usb_audio
snd_hda_intel 36864 1
snd_rawmidi 32768 1 snd_usbmidi_lib
snd_seq_device 16384 1 snd_rawmidi
snd_hda_codec 135168 4 snd_hda_intel,snd_hda_codec_hdmi,snd_hda_codec_generic,snd_hda_codec_realtek
snd_hda_core 86016 5 snd_hda_intel,snd_hda_codec,snd_hda_codec_hdmi,snd_hda_codec_generic,snd_hda_codec_realtek
snd_hwdep 16384 2 snd_hda_codec,snd_usb_audio
snd_pcm 110592 5 snd_hda_intel,snd_hda_codec,snd_usb_audio,snd_hda_core,snd_hda_codec_hdmi
snd_timer 32768 1 snd_pcm
snd 86016 14 snd_hda_intel,snd_hwdep,snd_hda_codec,snd_usb_audio,snd_timer,snd_rawmidi,snd_hda_codec_hdmi,snd_hda_codec_generic,snd_usbmidi_lib,snd_seq_device,snd_hda_codec_realtek,snd_pcm
soundcore 16384 1 snd
usbcore 253952 8 uvcvideo,usbhid,snd_usb_audio,usb_storage,xhci_pci,snd_usbmidi_lib,uas,xhci_hcd
因此,我尝试重新启动该服务,结果如下:
$ start-pulseaudio-x11
Connection failure: Connection refused
pa_context_connect() failed: Connection refused
如果我以 root 身份尝试执行此操作,则会得到:
# start-pulseaudio-x11
XDG_RUNTIME_DIR (/run/user/1000) is not owned by us (uid 0), but by uid 1000! (This could e g happen if you try to connect to a non-root PulseAudio as a root user, over the native protocol. Don't do that.)
Connection failure: Connection refused
pa_context_connect() failed: Connection refused
我尝试的另一件事:
$ pulseaudio --start --verbose
E: [pulseaudio] main.c: Daemon startup failed.
但那里是正在发生一些有趣的事情:/var/log/syslog
正在被越来越多的以下内容填充:
Jan 28 22:01:16 myhostname pulseaudio[22085]: [pulseaudio] cli-command.c: stat('/usr/share/pulseaudio/default.pa'): No such file or directory
Jan 28 22:01:16 myhostname pulseaudio[22085]: [pulseaudio] main.c: Failed to initialize daemon.
Jan 28 22:01:16 myhostname pulseaudio[22082]: [pulseaudio] main.c: Daemon startup failed.
因此,重生尝试不断失败,并且缺少一个文件。
我应该怎么办?
答案1
我遇到了类似的问题,但是我没有 default.pa 文件。
我发现以下步骤有效。在终端中:
apt-get purge pulseaudio
然后,在
$HOME/.config
删除整个脉冲文件夹。
然后重新安装 pulseaudio:
apt-get install pulseaudio
启动时,pulseaudio 会抱怨如果从终端调用它无法“打开 cookie 文件”,但它会重新创建整个文件夹结构。再次运行它,它将恢复正常操作,并启用声音(希望如此)。
答案2
此解决方案归功于 # 上的“wabbit”[电子邮件保护]
您可能有一个名为
$HOME/.config/pulse/default.pa
删除它,pulseaudio 应该会自行重生,或者您可以使用类似pactl info
或 之类的命令启动它pulseaudio
。当发生这种情况时,pavucontrol
音量控制 GUI 也应该会再次工作。
为了确保守护进程已启动,请查看/var/log/syslog
;您应该看到如下行:
Jan 29 00:56:34 myhostname pulseaudio[19553]: [pulseaudio] source.c: Default and alternate sample rates are the same.
有可能
Jan 29 00:56:36 myhostname pulseaudio[19563]: [pulseaudio] pid.c: Daemon already running.
答案3
sudo mkdir -p /run/user/1000/pulse
sudo chown -R $USER:$USER /run/user/1000
pulseaudio --start