나는 Firewire 믹싱 콘솔을 가지고 있고 콘솔이 켜지자마자 전체 오디오 체인(alsa -> pulseaudio -> jackd -> Firewire)을 설정하는 스크립트를 호출하는 udev 규칙을 작성했습니다.
jackd
이제 나는 시작하는 동안 몇 초 후에 죽는다는 것을 알았습니다 . 오류 메시지가 포함된 출력을 캡처했습니다. 테스트를 위해 udev 이벤트를 가짜로 만들었고 udevadm trigger
모든 것이 잘 작동했습니다.
이로 인해 (실제) udev 이벤트가 발생하는 순간과 장치가 실제로 준비되는 순간 사이에는 약간의 시간이 걸린다고 믿게 되었습니다. 내 가짜 udev 이벤트에는 이 문제가 발생하지 않았습니다. 콘솔이 켜져 있고 /dev/fw1이 항상 존재하고 준비되어 있었기 때문입니다.
실제로 sleep 2
스크립트에 를 추가하면 문제가 해결되었지만 이 솔루션이 만족스럽지 않습니다. 과부하 상태에서는 3~4초 정도 걸릴 수 있기 때문에 깨지기 쉬워 보입니다. 그리고 sleep
내 작업을 너무 관대하게 처리하면 불필요한 지연 시간이 많이 발생합니다.
그렇다면 장치가 실제로 언제 준비되었는지 알 수 있는 방법이 있습니까?