Pulseaudio 在启动时不加载设置

Pulseaudio 在启动时不加载设置

我最近遇到了 Pulseaudio 的问题,每次我启动机器时,Pulseaudio 都不会加载我对 default.pa 和 system.pa 所做的更改,我创建了一个重新映射源模块来加载自定义设置,因为我的笔记本电脑的麦克风输入只在正确的频道上工作,所以我不得不对其进行配置。每次我重新安装操作系统时,我总是这样做,而且它起作用了,直到最近才起作用。

以下是 pacmd list-sources | grep name 的输出:

    name: <alsa_output.pci-0000_00_1f.3.analog-stereo.monitor>
    name: <alsa_input.pci-0000_00_1f.3.analog-stereo>

以下是我对 default.pa 所做的更改

load-module module-remap-source master=alsa_input.pci-0000_00_1f.3.analog-stereo source_name=mono channels=1 channel_map=right

set-default-source mono

我在 journalctl 上找到的一小段输出

Sep 01 21:54:23 MIYUKI pulseaudio[1244]: Most likely this is a bug in the ALSA driver 'snd_hda_intel'. Please report this issue to the ALSA developers.
Sep 01 21:54:23 MIYUKI pulseaudio[1244]: We were woken up with POLLOUT set -- however a subsequent snd_pcm_avail() returned 0 or another value < min_avail.
Sep 01 21:55:23 MIYUKI pulseaudio[1244]: ICE default IO error handler doing an exit(), pid = 1244, errno = 11
Sep 01 21:55:23 MIYUKI systemd[1233]: pulseaudio.service: Main process exited, code=exited, status=1/FAILURE
Sep 01 21:55:23 MIYUKI systemd[1233]: pulseaudio.service: Failed with result 'exit-code'.
Sep 01 21:55:23 MIYUKI systemd[1233]: pulseaudio.service: Failed to schedule restart job: Unit pulseaudio.socket is masked.
Sep 01 21:55:23 MIYUKI systemd[1233]: pulseaudio.service: Failed with result 'exit-code'.
Sep 01 21:55:50 MIYUKI pulseaudio[1201]: Master source not found.
Sep 01 21:55:50 MIYUKI pulseaudio[1201]: Failed to load module "module-remap-source" (argument: "master=alsa_input.pci-0000_00_1f.3.analog-stereo source_name=mono channels=1 channel_map=right"): initialization failed.
Sep 01 21:55:50 MIYUKI pulseaudio[1201]: Source mono does not exist.
Sep 01 21:55:50 MIYUKI pulseaudio[1201]: Failed to load module "module-alsa-card" (argument: "device_id="0" name="pci-0000_00_1f.3" card_name="alsa_card.pci-0000_00_1f.3" namereg_fail=false tsched=no fixed_latency_range=no ignore_dB=no deferred_volume=yes use_ucm=no avoid_resampling=no card_properties="module-udev-detect.discovered=1""): initialization failed.
Sep 01 21:55:54 MIYUKI pulseaudio[1201]: After module unload, module 'module-null-sink' was still loaded!
Sep 01 21:55:54 MIYUKI systemd[1171]: pulseaudio.service: Succeeded.
Sep 01 21:55:54 MIYUKI pulseaudio[1249]: Master source not found.
Sep 01 21:55:54 MIYUKI pulseaudio[1249]: Failed to load module "module-remap-source" (argument: "master=alsa_input.pci-0000_00_1f.3.analog-stereo source_name=mono channels=1 channel_map=right"): initialization failed.
Sep 01 21:55:56 MIYUKI plasma_session[1337]: org.kde.plasma.session: Starting autostart service  "/etc/xdg/autostart/pulseaudio.desktop" ("/usr/bin/start-pulseaudio-x11")
Sep 01 22:02:12 MIYUKI systemd[1238]: pulseaudio.service: Succeeded.

我已经尝试将设置移动到其他文件夹(如~/.config/pulse),取消屏蔽并屏蔽该过程,但仍然没有运气。唯一的解决方法是在我的登录脚本(.zlogin 或 .zprofile)中添加新行:

pulseaudio --kill
pulseaudio --start

奇怪的是,在我关闭 pulseaudio 之后它就起作用了。但每次我登录时都会执行该脚本,我不希望这样,每次我运行新的终端会话时它都会让我烦恼(因为当我打开终端会话时脚本也会执行,比如在 Android Studio 或 Visual Studio Code 上)并且它会一直显示弹出窗口。抱歉我的英语不好。有人知道怎么解决这个问题吗?

答案1

我可以通过运行以下命令解决启动问题:

sudo addgroup $USER audio

此外,您还可以期望重新生成其配置设置:

rm -rf ~/.pulse ~/.config/pulse

现在尝试看看您是否可以重新启动 pulseaudio 服务:

systemctl --user restart pulseaudio

如果服务可以成功重启,您现在可以尝试看看它是否也可以在重启后启动。

答案2

我遇到了和你一样的问题。我使用的是 Ubuntu 20.04,对我而言,我对 default.pa 所做的更改如下:

load-module module-echo-cancel source_name=noechosource sink_name=noechosink
set-default-source noechosource
set-default-sink noechosink

此外,这些更改也包含在 system.pa 中。就像您的情况一样,每次我登录时,我都必须执行pulseaudio -k以使 pulseaudio 加载这些设置。我为解决这个问题所做的就是修改~/.profile并在文件末尾添加以下几行:

chrome_open=$(pgrep chrome)
if [ -z "$chrome_open" ]
then
    pulseaudio -k
fi

因此,每次我登录时,如果 Chrome 未打开,就会执行此命令。我使用此 if 语句是因为如果 Chorme 已打开并pulseaudio -k执行,则需要重新加载它。我不知道这是否是最好的解决方案,但它对我有用,我希望这个答案能对我们这样的人有所帮助。

相关内容