Pulseaudio 问题:Focusrite Scarlett Solo 的音频输出随机停止

Pulseaudio 问题:Focusrite Scarlett Solo 的音频输出随机停止

我使用 Focusrite Scarlett Solo 作为耳机音频输出和麦克风输入。

音频输出随机停止,只能通过重新插入 Scarlett Solo 来重新启动。其他 USB 音频输出不会出现这种情况。它以非常不同的时间间隔随机停止:有时它可以工作几个小时,有时它会很快连续失败。我已经在 Windows 上使用了几个小时,没有出现任何问题,但不能确定这不是“运气”。

我怀疑 PulseAudio 引起了这个问题。我在网上查了一下,发现了这个帖子https://forums.linuxmint.com/viewtopic.php?t=275031使用以下命令在此处记录 PulseAudio:

sudo killall pulseaudio

sudo pulseaudio -vvvv --log-time=1 > ~/pulselog.log 2>&1

完整的日志在这里:https://pastebin.com/Mzm0X0Q6

但我认为关键部分发生在这里:

...
(  14.204|   0.617) I: [pulseaudio] module-device-restore.c: Synced.
( 882.588| 868.384) I: [pulseaudio] main.c: Got signal SIGINT.
( 882.590|   0.001) I: [pulseaudio] main.c: Exiting.
( 882.590|   0.000) I: [pulseaudio] main.c: Daemon shutdown initiated.
( 882.590|   0.000) I: [pulseaudio] module.c: Unloading "module-filter-apply" (index: #23).
... 

对我来说,这看起来像是某种崩溃或关闭,但我无法找到更多信息。我该如何继续调试这个?

崩溃后,正确的音频输出设备仍然显示在 PulseAudio 音量控制中,并且 Scarlett Solo 的麦克风输入仍然工作正常,只是音频输出不起作用。

规格:
音频设备:Focusrite Scarlett Solo
发行版:Linux Debian 10 (Gnome)
Pulseaudio 版本 12.2

我在调试 Linux 问题方面没有经验,因此感谢任何帮助或指导。

编辑:事实证明这是一个硬件问题,它发生在 Windows 上,并且在另一台 Focusrite Scarlett Solo 3rd Gen 上运行 10 个小时以上也没有发生。

答案1

问题的根源可能是 TLP(电源管理)的 USB 自动挂起功能(如果您的发行版附带该功能)。

尝试通过运行systemctl disable tlp.service并重新启动来禁用它。

如果您想保持其运行,您还可以将音频接口列入黑名单,如文档中所述:https://linrunner.de/tlp/settings/usb.html

还有一个用于调整配置的 UI,称为 tlpui。

更多信息在这里: https://wiki.archlinux.org/index.php/TLP#USB_autosuspend

答案2

将 GDB 连接到正在运行的 PulseAudio 守护进程并让它继续运行:

$ gdb -p $(pgrep pulseaudio) -ex continue /usr/bin/pulseaudio

当一个信号被传递时,GDB会捕获它并让你检查它。例如:

(gdb) ptype $_siginfo
[...]
(gdb) print $_siginfo._sifields._kill
$2 = {si_pid = 19569, si_uid = 1234}

男人签名提供了一些背景。

相关内容