为什么我在Linux实时控制器上启动时观察到抖动?



主要软件: LabVIEW Modules>>LabVIEW Real-Time Module
主要软件版本: 2014
主要软件修正版本: N/A
次要软件: N/A

问题: 在我的Linux Real-Time控制器启动后的最初几分钟,我看到我的实时VI中的抖动。可能是什么原因?

解答:

         这种抖动的原因可能与启动时Linux实时控制器的随机种子生产有关。在系统每次启动时,Linux从IO活动获得随机字节存储到/dev/random和/dev/urandom。此操作无具体限制;它可能发生在任何位置,需要从几秒到几个小时,但平均来说,需要几分钟。如果这个过程在实时应用程序开始执行之前没有完成,它可能在相当慢的循环速率下引起实时高优先级VI的抖动。例如,在启动后几分钟内,您可能会看到FPGA中实时VI在1kHz的循环中产生偶发延迟。

        有几种方法可以防止这种情况对系统产生负面影响: ·

此问题存在于所有版本的NI Linux Real-Time

人工生成随机种子

        如果发现由此过程引起的抖动在你的系统上是不可预测的,那么想要消除这种不确定性,您可以自己生成人工随机种子。重要的是注意人工生成随机种子具有安全隐患 - 生成假熵理论上使用任何随机生成的数据,如SWS / AWS中的X509证书,SSL会话密钥和密码更可预测,因此更容易受到暴力破解。

        见附件一个简单的C示例程序。此程序需要以root用户身份运行。



相关链接:

http://www.ni.com/product-documentation/53098/en/

https://decibel.ni.com/content/groups/ni-linux-real-time

http://www.ni.com/tutorial/52578/en/



附件:
seed_fake_entropy.c




报告日期: 08/09/2016
最近更新: 01/22/2017
文档编号: 7C8EGQ3G