如何知道设备何时准备就绪

如何知道设备何时准备就绪

我有火线混合控制台,我编写了一个 udev 规则,一旦控制台打开,该规则就会调用一个脚本来设置整个音频链(alsa ->pulseaudio ->jackd ->firewire)。

现在我注意到,虽然jackd启动了,但几秒钟后它就消失了。我捕获了它的输出,它包含一条错误消息。为了进行测试,我通过伪造了 udev 事件udevadm trigger,一切正常。

这让我相信,从(真正的)udev 事件触发到设备实际准备好之间只需要一些时间。我伪造的 udev 事件没有遇到这个问题,因为控制台已打开并且 /dev/fw1 始终存在并准备就绪。

事实上,sleep 2在我的脚本中添加 a 解决了问题,但我对这个解决方案并不满意。它看起来很脆弱,因为在重负载下我可能需要三到四秒。而且对我的过于慷慨sleep造成了很多不必要的延迟。

那么,有什么方法可以知道设备何时真正准备好呢?

相关内容