Jackd falha ao iniciar

2

Estou tentando ter uma configuração onde o JACK faz interface diretamente com o ALSA e o pulseaudio se comunica com o JACK. Esta configuração funcionou bem (eu tive que iniciar manualmente as coisas algumas vezes), mas como eu entendi a configuração do daemon do Ubuntu e coisas perfeitas jackd parou de funcionar completamente. Estou executando 10.10.

Se eu executar algo através da ALSA, obtenho som sem problemas. No entanto, quando eu executo o jack com o tempo real: /usr/bin/jackd -v -R -ch -Z -t2000 -d alsa -P , recebo o seguinte erro:

jackd watchdog: timeout - killing jackd

Por outro lado, se eu corro sem tempo real: /usr/bin/jackd -v -r -ch -Z -t2000 -d alsa -P eu recebo:

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

Jack estava funcionando bem antes de eu fazer essas alterações; Enquanto eu não tenho uma cópia exata da minha configuração original, lembro-me de executar o mínimo de opções funcionou bem. Eu vi alguns artigos dizendo que o problema é com a captura da ALSA. Na verdade, tentei ativar a captura em alsamixer uma vez e tudo funcionou! Na reinicialização, o sucesso não se repetiu e não consegui colocar o macaco funcionando desde então. Isso não importa, porque especificar -P deve evitar qualquer problema de captura.

Breve resumo: não consigo fazer o jackd funcionar em nenhuma circunstância (a menos que eu especifique -d dummy ). O som funciona com outros programas com o ALSA, mas quando eu executo o JACK, o daemon abre o cartão, mas expira e morre. JACK funcionou bem antes, mas não consigo descobrir o que mudou (ou onde procurar).

Devo mencionar que am estou executando com a aceleração da velocidade da CPU ativada, mas estou usando a HPET para atenuar isso (e já executei o jack sem nenhum problema antes). Obrigado!

EDIT: Parece que pode ter a ver com os módulos nvidia que eu carreguei; referências aqui e aqui

    
por wickedchicken 02.02.2011 / 21:43

1 resposta

3

Os módulos da nVidia são conhecidos por se comportarem de maneira estranha quando interagem com processos em tempo real, com efeitos imprevisíveis em outros processos no sistema, mas o problema mais comum com o início do JACK não é ter configurado limites para permitir que o JACK consuma mais recursos do que processos. Uma solução é instalar as configurações do ubuntustudio e configurar os limites nele. A outra é adicionar seu usuário ao grupo de áudio e criar um arquivo /etc/security/limits.d/audio.conf contendo o seguinte:

@audio - memlock unlimited
@audio - rtprio 99

Uma vez que você efetue logout e efetue login novamente, você poderá executar o JACK em tempo real (a menos que os drivers da nVidia sejam realmente a causa de seus problemas). Observe que os dois métodos para resolver o problema são idênticos na configuração final, embora os meios para alcançar esse resultado sejam um pouco diferentes. Valores menores para o memlock são conhecidos por funcionar, mas o valor específico requerido parece diferir dependendo do hardware subjacente, do mapa de roteamento JACK e do número de filtros aplicados: se "ilimitado" parecer alto demais para você, há um número qualquer de sugestões para valores específicos em qualquer número de fóruns de áudio do Linux, mas ainda não vi nenhum guia claro para calcular o valor correto para um determinado ambiente.

Lembre-se de que, por padrão, o jack do módulo pulseaudio não se conecta a nenhum dispositivo de saída: ao testar, verifique seu roteamento de áudio no JACK para garantir que a saída seja renderizada de maneira que você possa perceber ou alguma ferramenta de visualização gráfica) antes de pensar que não funciona.

    
por Emmet Hikory 05.07.2011 / 08:51