如何知道設備何時準備就緒

如何知道設備何時準備就緒

我有火線混合控制台,我編寫了一個 udev 規則,一旦控制台打開,它就會調用一個腳本來設定整個音訊鏈(alsa ->pulseaudio ->jackd ->firewire)。

現在我注意到,雖然jackd啟動了,但幾秒鐘後它就消失了。我捕獲了它的輸出,它包含一條錯誤訊息。為了進行測試,我通過偽造了 udev 事件udevadm trigger,一切正常。

這讓我相信,從(真正的)udev 事件觸發到設備實際準備好之間只需要一些時間。我偽造的 udev 事件沒有遇到這個問題,因為控制台已開啟並且 /dev/fw1 始終存在並準備就緒。

事實上,sleep 2在我的腳本中添加 a 解決了問題,但我對這個解決方案並不滿意。它看起來很脆弱,因為在重負載下我可能需要三到四秒。而且對我的過於慷慨sleep造成了很多不必要的延遲。

那麼,有什麼方法可以知道設備何時真正準備好呢?

相關內容