デバイスの準備ができたかどうかを知る方法

デバイスの準備ができたかどうかを知る方法

私は Firewire ミキシング コンソールを持っており、コンソールの電源がオンになるとすぐにオーディオ チェーン全体 (alsa -> pulseaudio -> jackd -> firewire) を設定するためのスクリプトを呼び出す udev ルールを作成しました。

jackd起動後、数秒後に停止することに気付きました。出力をキャプチャしたところ、エラー メッセージが含まれていました。テストのために、udev イベントを偽装したところudevadm trigger、すべて正常に動作しました。

これにより、(実際の) udev イベントが起動してからデバイスが実際に準備できるまでの間に、少し時間がかかるだけだと信じるようになりました。コンソールがオンになっていて、/dev/fw1 が常に存在して準備できていたため、私の偽の udev イベントではこの問題は発生しませんでした。

確かに、sleep 2スクリプトに を追加することで問題は解決しましたが、この解決策には満足していません。負荷が大きい場合、3 秒または 4 秒かかる可能性があるため、脆弱に見えます。また、 を寛大にしすぎると、sleep不要な遅延が大量に発生します。

では、デバイスが実際に準備できたかどうかを知る方法はあるのでしょうか?

関連情報