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?