Jackd 启动失败

Jackd 启动失败

我正在尝试设置一个设置,让 JACK 直接与 ALSA 接口,Pulseaudio 与 JACK 通信。这个设置工作正常(我不得不手动启动几次),但随着我理解 Ubuntu 守护进程设置并完善它,它jackd完全停止工作了。我正在运行 10.10。

如果我通过 ALSA 运行某些东西,声音就不会有问题。但是,当我实时运行 jack 时,/usr/bin/jackd -v -R -ch -Z -t2000 -d alsa -P我收到以下错误:

jackd watchdog: timeout - killing jackd

相反,如果我跑没有实时:/usr/bin/jackd -v -r -ch -Z -t2000 -d alsa -P我得到:

ALSA: poll time out, polled for 32032138 usecs
DRIVER NT: could not run driver cycle

在我进行这些更改之前,Jack 运行良好;虽然我没有原始配置的精确副本,但我记得运行最少的选项就可以正常工作。我见过一些文章说问题出在 ALSA 捕获上。事实上,我尝试过alsamixer一次启用捕获,一切正常!重新启动后,成功的情况没有重现,从那以后我就没能让 jack 正常工作。这应该没关系,因为指定 -P 应该可以消除任何捕获问题。

简短摘要:在任何情况下我都无法jackd工作(除非我指定-d dummy)。声音可以与其他带有 ALSA 的程序配合使用,但当我运行 JACK 时,守护进程会打开卡但会超时并死机。JACK 以前工作正常,但我不知道发生了什么变化(或者甚至不知道在哪里查看)。

我应该提一下在 CPU 速度限制开启的情况下运行,但我使用 HPET 来缓解这个问题(我之前运行过 jack,没有任何问题)。谢谢!

编辑:看起来这可能与我加载的 nvidia 模块有关;参考这里这里

答案1

众所周知,nVidia 模块在与实时进程交互时会表现异常,对系统上的其他进程产生不可预测的影响,但启动 JACK 时最常见的问题是没有配置限制以允许 JACK 消耗比常规进程更多的资源。一种解决方案是安装 ubuntustudio-settings 并在其中配置限制。另一种方法是将您的用户添加到音频组,并创建一个包含以下内容的文件 /etc/security/limits.d/audio.conf:

@audio - memlock unlimited
@audio - rtprio 99

注销并再次登录后,您应该能够实时运行 JACK(除非 nVidia 驱动程序确实是导致问题的原因)。请注意,解决问题的两种方法在最终配置中是相同的,尽管实现该结果的方法略有不同。已知较小的 memlock 值可以工作,但所需的具体值似乎因底层硬件、JACK 路由图和应用的过滤器数量而异:如果“无限制”对您来说太高,则在任意数量的 Linux 音频论坛上都有许多关于具体值的建议,但我还没有看到任何明确的指南来计算给定环境的正确值。

请注意,默认情况下 pulseaudio-module-jack 不连接到任何输出设备:测试时,请务必检查 JACK 中的音频路由,以确保输出以您可以注意到的方式呈现(工作音频输出或某些图形可视化工具) )在认为它不起作用之前。

相关内容