我不知怎么弄坏了 Kubuntu 22.04 上的所有声音

我不知怎么弄坏了 Kubuntu 22.04 上的所有声音

这是我在这个论坛上的第一篇帖子,不幸的是,这是一篇求助文章。两天前,我试图在我的 Kubuntu 机器上安装远程管理工具 (XRDP),但出现了一些问题。我从 Windows 机器连接到 Kubuntu 机器后,它的屏幕变黑了。我无法重新打开它,而且从 Windows 机器上我也无能为力。

最后我只好按住电源按钮 5 秒钟来关闭 Kubuntu。重启后,整个音频系统都坏了。声音设置和音量管理器显示除了 Dummy Output 之外没有输出设备。

从那时起,我尝试了以下方法,这些方法都是从网上的几个不同来源收集的。立即引起我注意的是,inxi -SMA 显示 ALSA 和 PipeWire 声音服务器都在运行。据我所知,我从未对 PipeWire 做过任何事情,我期望在这里看到 PulseAudio 服务器在运行。这可能是正常的,但对于 Linux 的所有事情,我仍然是个新手,所以不能确定这是否正常。

inxi -SMA

Audio:
Device-1: Intel Xeon E3-1200 v3/4th Gen Core Processor HD Audio
driver: snd_hda_intel
Device-2: Intel 8 Series/C220 Series High Definition Audio
driver: snd_hda_intel
Sound Server-1: ALSA v: k5.15.0-41-generic running: yes
Sound Server-2: PipeWire v: 0.3.48 running: yes

sudo alsa force-reload
rebooted - No result

sudo apt-get install --reinstall alsa-base pulseaudio + sudo alsa force-reload
Rebooted - No result

pulseaudio --start
No result

mv ~/.config/pulse ~/.config/old_pulse
No result

Opened alsamixer in the console
See included pictures 

systemctl status pulseaudio

Unit pulseaudio.service could not be found.

sudo systemctl enable pulseaudio.socket

Failed to enable unit: Unit file pulseaudio.socket does not exist.

systemctl --user start pulseaudio.service/socket
      
Invalid unit name "pulseaudio.service/socket" escaped as "pulseaudio.service-socket" (maybe you should use systemd-escape?). 
Failed to start pulseaudio.service-socket.service: Unit pulseaudio.service-socket.service not found.

sudo systemctl --user unmask pulseaudio

Failed to connect to bus: $DBUS_SESSION_BUS_ADDRESS and $XDG_RUNTIME_DIR not defined (consider using --machine=<user>@.host --user to connect to bus of other user)

systemctl --user status pulseaudio.service
× pulseaudio.service - Sound Service
Loaded: loaded (/usr/lib/systemd/user/pulseaudio.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Thu 2022-07-14 14:35:12 CEST; 20s ago
TriggeredBy: × pulseaudio.socket
Process: 4580 ExecStart=/usr/bin/pulseaudio --daemonize=no --log-target=journal (code=exited, status=1/FAILURE)
Main PID: 4580 (code=exited, status=1/FAILURE)
CPU: 19ms

Jul 14 14:35:12 Kubuntu systemd[1317]: pulseaudio.service: Scheduled restart job, restart counter is at 5.
Jul 14 14:35:12 Kubuntu systemd[1317]: Stopped Sound Service.
Jul 14 14:35:12 Kubuntu systemd[1317]: pulseaudio.service: Start request repeated too quickly.
Jul 14 14:35:12 Kubuntu systemd[1317]: pulseaudio.service: Failed with result 'exit-code'.
Jul 14 14:35:12 Kubuntu systemd[1317]: Failed to start Sound Service.

事实证明 pulseaudio-enable-autospawn.service 不知何故被屏蔽了。我以前遇到过这个问题,花了一段时间才弄清楚如何取消屏蔽。现在我尝试按照此处建议的步骤取消屏蔽服务:systemctl,如何揭露但它就是不起作用。

file /lib/systemd/system/pulseaudio-enable-autospawn.service    
/lib/systemd/system/pulseaudio-enable-autospawn.service: symbolic link to /dev/null
Shows that there is a sym link to dev/null which is why the unmask command won’t work as I understand it. 

按照上面链接中的说明,我尝试删除符号链接。

sudo rm /lib/systemd/system/pulseaudio-enable-autospawn.service
[sudo] password for <username>: 
There was no output here, which should mean the command was success, right?

Next step was
systemctl status pulseaudio-enable-autospawn.service 
Unit pulseaudio-enable-autospawn.service could not be found.

然后尝试了以下操作:

systemctl status | grep pulse

           │   │ │ │ ├─3540 pulseaudio --start
           │   │ │ │ ├─3544 /usr/libexec/pulse/gsettings-helper
           │   │ │ │ └─7650 grep --color=auto pulse
           │   │ ├─7132 journalctl -q --no-tail --output=json --cursor=s=78e72f498f7945ebb33faf7eb0033abd;i=2c906;b=09a3abafd9944308b57118d761ce1ecb;m=d5b2d7f;t=5e3afa75d18e6;x=6bd340f3a4273938 --follow -- _SYSTEMD_UNIT=pulseaudio-enable-autospawn.service + COREDUMP_UNIT=pulseaudio-enable-autospawn.service + UNIT=pulseaudio-enable-autospawn.service
           │   │ └─7133 journalctl -q --no-tail --output=json --cursor=s=78e72f498f7945ebb33faf7eb0033abd;i=2c906;b=09a3abafd9944308b57118d761ce1ecb;m=d5b2d7f;t=5e3afa75d18e6;x=6bd340f3a4273938 --follow -- _SYSTEMD_UNIT=pulseaudio-enable-autospawn.service + COREDUMP_UNIT=pulseaudio-enable-autospawn.service + UNIT=pulseaudio-enable-autospawn.service

我不确定我在这里看到的是什么,也许有人可以理解它。

此时我已经筋疲力尽,沮丧到几乎想要重新安装 Kubuntu,并重新设置。我花了几个小时搜索互联网,尝试了所有可能的建议。

据我所知,问题始于 pulseaudio-enable-autospawn.service 被屏蔽。说实话,如果我在尝试揭露它时出现问题,我不会感到惊讶,两天后我可能就不再那么清晰地思考了。

在此处输入图片描述

在此处输入图片描述

在此处输入图片描述

在此处输入图片描述

在此处输入图片描述

在此处输入图片描述

在此处输入图片描述

在此处输入图片描述

__

快速更新;我再次启动计算机去做其他事情,但出于好奇,我查看了那个烦人的 pulseaudio-enable-autospawn.service。令我惊讶的是,它不再被屏蔽,而且实际上也在运行。仍然没有任何可见的输出设备,所以我查看了其他与声音相关的服务。结果发现/usr/lib/systemd/user/pulseaudio.service and/usr/lib/systemd/user/pipewire-pulse.service` 处于非活动状态。我启动了它们,声音恢复了,我的联想 ThinkCentre 的内置扬声器和 HDMI 输出都再次正常工作。

我不知道这是怎么发生的,而且我很确定重启后它会再次损坏。另外,底部面板中的标准音量控制仍然没有显示输出设备,但我希望这是以后的快速修复。

我仍然很好奇到底出了什么问题,所以如果有人能发现问题,请随时发表评论。如果幸运的话,它可以帮助防止将来出现此问题,无论是对其他人还是我自己。

正如所料,重新启动 Kubuntu 后问题又出现了。Pulseaudio 服务已启用,但登录后不会自动启动。

我尝试了另外几件事:

systemctl --user start pulseaudio.service  

Job for pulseaudio.service failed because the control process exited with error code. 
See "systemctl --user status pulseaudio.service" and "journalctl --user -xeu pulseaudio.service" for details.

systemctl --user status pulseaudio

× pulseaudio.service - Sound Service
     Loaded: loaded (/usr/lib/systemd/user/pulseaudio.service; enabled; vendor preset: enabled)
     Active: failed (Result: exit-code) since Thu 2022-07-14 19:31:08 CEST; 10min ago
TriggeredBy: × pulseaudio.socket
    Process: 9101 ExecStart=/usr/bin/pulseaudio --daemonize=no --log-target=journal (code=exited, status=1/FAI>
   Main PID: 9101 (code=exited, status=1/FAILURE)
        CPU: 108ms

Jul 14 19:31:08 Kubuntu systemd[1328]: pulseaudio.service: Scheduled restart job, restart counter is at 5.
Jul 14 19:31:08 Kubuntu systemd[1328]: Stopped Sound Service.
Jul 14 19:31:08 Kubuntu systemd[1328]: pulseaudio.service: Start request repeated too quickly.
Jul 14 19:31:08 Kubuntu systemd[1328]: pulseaudio.service: Failed with result 'exit-code'.
Jul 14 19:31:08 Kubuntu systemd[1328]: Failed to start Sound Service.

pulseaudio –start

E: [pulseaudio] main.c: Daemon startup failed.

systemctl --user status pulseaudio.socket

× pulseaudio.socket - Sound System
     Loaded: loaded (/usr/lib/systemd/user/pulseaudio.socket; enabled; vendor preset: enabled)
     Active: failed (Result: service-start-limit-hit) since Thu 2022-07-14 19:31:08 CEST; 14min ago
   Triggers: ● pulseaudio.service
     Listen: /run/user/1000/pulse/native (Stream)

Jul 14 19:31:05 Kubuntu systemd[1328]: Listening on Sound System.
Jul 14 19:31:08 Kubuntu systemd[1328]: pulseaudio.socket: Failed with result 'service-start-limit-hit'.

基本上,Pulseaudio 服务无法启动。唯一发生的事情是内置扬声器开始发出噼啪声。

再次重启,这次我可以手动启动服务,声音又恢复正常了。我使用应用程序“Cockpit”(见下面的屏幕截图)来启动它,因为我不再确定如何以正确的方式启动服务。

在此处输入图片描述

现在的问题是 Pulseaudio 服务无法自行启动,今天我已经尝试修复它了。希望在接下来的几天里有人能给我指明正确的方向...

按照要求:

dpkg -l | grep pipewire
ii  libpipewire-0.3-0:amd64                       0.3.48-1ubuntu1                             amd64        libraries for the PipeWire multimedia server
ii  libpipewire-0.3-common                        0.3.48-1ubuntu1                             all          libraries for the PipeWire multimedia server - common files
ii  libpipewire-0.3-modules:amd64                 0.3.48-1ubuntu1                             amd64        libraries for the PipeWire multimedia server - modules
ii  pipewire:amd64                                0.3.48-1ubuntu1                             amd64        audio and video processing engine multimedia server
ii  pipewire-bin                                  0.3.48-1ubuntu1                             amd64        PipeWire multimedia server - programs
ii  pipewire-media-session                        0.4.1-2ubuntu1                              amd64        example session manager for PipeWire
ii  pipewire-pulse                                0.3.48-1ubuntu1                             amd64        PipeWire PulseAudio daemon

同时,我找到了一个小的解决方法,可以暂时解决这个问题。登录 Kubuntu 后,没有输出设备。当我发出命令“systemctl --user stop pipewire-pulse”然后发出“systemctl --user start pulseaudio”时,一切恢复正常。我不确定为什么,但似乎只要 pipewire-pulse 服务正在运行,pulseaudio 服务就无法启动。

感谢您建议屏蔽 pipewire-pulse.service 和 pipewire-pulse.socket,没人管。我稍后会尝试并报告我的发现。

-编辑

关于 PulseAudio,我没什么可报告的了。决定尝试 PipeWire,到目前为止效果很好。认为这个问题已经解决了。

答案1

从 Debian Stable (11) 移至 Testing (12) 后,我的声音 (AMD Renoir Radeon High Definition Audio) 出现故障。inxi -SMA已报告服务器 PipeWire。apt purge pipewire服务器为 PulseAudio 后,声音又恢复正常。

相关内容