Como saber quando um dispositivo está pronto

2

Eu tenho console de mixagem firewire e escrevi uma regra do udev que chama um script para configurar toda a cadeia de áudio (alsa - pulseaudio - > jackd - > firewire) assim que o console é ligado. / p>

Agora notei que, enquanto jackd é iniciado, ele morre alguns segundos depois. Eu capturei sua saída e ela continha uma mensagem de erro. Para testes, eu falsifiquei o evento do udev via udevadm trigger e tudo funcionou bem.

Isso me fez acreditar que leva apenas algum tempo entre o momento em que o evento do udev (real) é acionado e quando o dispositivo está realmente pronto. Meu evento do udev falsificado não sofreu com esse problema, porque o console estava ligado e / dev / fw1 estava presente e pronto o tempo todo.

De fato, adicionar um sleep 2 ao meu script resolveu o problema, mas não estou satisfeito com essa solução. Parece frágil, porque sob carga pesada eu poderia precisar de três ou quatro segundos. E sendo generoso demais com sleep , eu acumulo muitas latências desnecessárias.

Então - existe alguma maneira de saber quando um dispositivo está realmente pronto?

    
por Martin Drautzburg 01.05.2013 / 08:52

0 respostas