![如何才能更快地初始化随机非阻塞池?](https://linux22.com/image/130340/%E5%A6%82%E4%BD%95%E6%89%8D%E8%83%BD%E6%9B%B4%E5%BF%AB%E5%9C%B0%E5%88%9D%E5%A7%8B%E5%8C%96%E9%9A%8F%E6%9C%BA%E9%9D%9E%E9%98%BB%E5%A1%9E%E6%B1%A0%EF%BC%9F.png)
我的 Buildroot 为 Zynq 板生成的 Linux 和 rootfs 映像存在问题。问题是随机非阻塞池在启动后大约 2 分钟生成,就在我收到如下内核消息之后:
random: nonblocking pool is initialized
这很烦人,因为它阻止了 TCF Agent 启动,并且我必须等待远程运行任何内容,或者在前 2 分钟内使用 scp。
我使用的是 Buildroot 2017.08。我能用它做些什么吗?
答案1
虚拟机和物联网设备中的熵通常可能还不够。
安装haveged
。
从man haveged
:
NAME
haveged
- 生成随机数并提供给 Linux 的随机设备。描述
haveged
使用 HAVEGE(硬件易失性熵收集和扩展)算法生成不可预测的随机数流,该随机数流是从硬件事件对隐藏处理器状态(缓存、分支预测器、内存转换表等)的间接影响中获取的。该算法在用户空间中运行,文件系统访问输出流不需要特殊权限。Linux 汇集随机性以通过
/dev/random
和/dev/urandom
设备接口进行分配。填充池的标准机制/dev/random
可能不足以满足对高需求或有限用户交互的系统的需求。在这些情况下,每当随机位的供应低于设备的低水位线时,haveged
可以作为特权守护进程运行以填充池。/dev/random
/dev/random