由3.10升级到4.14内核后,启动系统random的初始化需要比较长的时间。通过dmesg | grep -I randdom 发现需要400多秒才能初始化完成。
dmesg | grep -i random
[    0.051406] random: get_random_bytes called from setup_net+0x33/0x120 with crng_init=0
[    0.637733] random: hwclock: uninitialized urandom read (8 bytes read)
[    0.821425] random: sh: uninitialized urandom read (8 bytes read)
[   11.923501] random: fast init done
[   13.111697] random: modprobe: uninitialized urandom read (8 bytes read)
[   20.464349] random: modprobe: uninitialized urandom read (8 bytes read)
[   20.475650] random: head: uninitialized urandom read (8192 bytes read)
[   23.335865] random: modprobe: uninitialized urandom read (8 bytes read)
[   28.286856] random: modprobe: uninitialized urandom read (8 bytes read)
[   28.747431] random: modprobe: uninitialized urandom read (8 bytes read)
[   33.718262] random: modprobe: uninitialized urandom read (8 bytes read)
[   33.736726] random: modprobe: uninitialized urandom read (8 bytes read)
[  429.269251] random: crng init done

所以一些应用程序在调用random的函数可能会阻塞。
通过调查发现有两个解决方案,内核的方式和用户态的方式
方案一:打入以下内核patch
内核的patch:https://lkml.org/lkml/2018/7/17/1279
增加了config RANDOM_TRUST_CPU这个选项,默认此选择没有打开。
大致的意思是,此选项是信任cpu处理器的厂商,他们会产生没有危险用户的random的行为。也列举了反例,列举了美国制裁中国,中国决定自给自足CPU。凭什么就相信intel,不相信解放军控制的公司等

用户态的方案:
Haveged使用HAVEGE(HArdware Volatile Entropy Gathering and Expansion)来维护一个1M的随机字节池,
当/dev/random中的随机位供应低于设备的低水位时(/proc/sys/kernel/random/entropy_avail),这个随机字节池用于填充/dev/random。
容器里可以使用如下:
1 wget http://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/h/haveged-1.9.1-1.el7.x86_64.rpm
2 rpm -ivh haveged-1.9.1-1.el7.x86_64.rpm
3 运行haveged -w 1024 -v 1

服务器可以使用:
yum install haveged -y
systemctl start haveged
systemctl enable haveged

uninitialized urandom read相关推荐

  1. Vivado工程配置petalinux实现linux下网卡驱动

    0.说明 基于Vivado工程配置petalinux实现linux下控制PL端GPIO 完成对linux网卡的驱动 实验内容: 完成一个vivado工程,导出硬件信息 创建petalinux工程,导入 ...

  2. 【Linux 系统启动优化测试工具的使用——grabserial 】

    Linux 系统启动优化测试工具的使用--grabserial Linux 系统启动优化测试工具的使用--grabserial 1.grabserial工具安装 2.grabserial工具使用 3. ...

  3. SD/eMMC初始化流程、读写流程(dwc mshc)

    目录 1.芯片简介 1.1 模块与接口 1.2 SD/eMMC初始化流程 1.3 SD/eMMC数据传输流程 1.3.1 传输模式 2.调试问题 2.1 uboot 2.1.1 连续读4个以上bloc ...

  4. USB出现“can‘t set config #1, error -12”问题的探索

    现象: 公司一台Linux设备的U口突然出现故障,原来共16路USB端口都是正常的,出问题后只有7个正常,其余均不能使用.而且每次可用与不可用的数量不变,总是7个可用.9个不可用,但是具体的口并不固定 ...

  5. sim_com AT

    不支持:AT+QNWINFO查询模式 使用AT+CSQ:查询信号为99(不可达) sim_com +CPSI: NR5G_SA,<Operation Mode>[,<MCC>- ...

  6. Sipeed MaixSense:Allwinner R329 (一)官方Debian系统--AIPU的基本使用--图像识别

    文章目录 前言 官方Debian 重新划分分区 为了主机编译,增加SWAP SWAP分区设置 Debian系统下zhouyi AIPU的使用 官方自带的模型:aipu.bin 周易demo代码 3D模 ...

  7. Hi3518EV300芯片linux系统配置USB Camera功能

    Hi3518EV300芯片linux系统配置USB Camera功能 一,安装好虚拟机VMware® Workstation 15 Pro 和Ubuntu16.04 64位版本:并且安装应用软件,配置 ...

  8. Openwrt Kernel panic - not syncing: Fatal exception 解决方案

    0.故障发生 在清空闪存芯片后,只写入breed和固件后,启动过程中发生故障 1.尝试解决方案 校验固件完整 确保MAC信息存在 确保ART信息存在,可被读取(重要) 2.报错日志 [ 0.00000 ...

  9. r329开发板部署aipu模型

    上篇文章r329模拟仿真实现了在模拟器上仿真网络,现在申请到了开发板,就有机会在上面测试下了. 本文需要的原材料 r329开发板 sd 卡 sd卡读卡器 typec的usb线 一台windows电脑 ...

最新文章

  1. flutter ios启动白屏_Flutter技术架构概览
  2. 是什么在吞食我们的科研时间2019-11-24
  3. SecurtCRT连接服务器自动断开
  4. java3D反恐精英3_统一5.3.0f4错误CS0029;不能隐式转换'UnityEngine.Vector3'类型为'float'...
  5. pdfbox java.lang.outofmemoryerror_java - PDFBox 2.0.1挂起渲染pdf页面 - 堆栈内存溢出
  6. 事件库之Redis自己的事件模型-ae
  7. 35.Linux/Unix 系统编程手册(下) -- 进程的优先级和调度
  8. .net session超时设置 sessionState的相关属性
  9. CPC软件使用 专利申请说明书附图插入(简单粗暴)CPC软件安装
  10. [Python GUI]Python内置图形界面tkinter Eye-Hand Coordination--游戏实战1
  11. ubuntu 安装python mysqldb
  12. 新闻分类:多分类问题
  13. re匹配截至到第一个中文_Python正则表达式:re模块常用方法详解
  14. 语音特征信号分类---BP神经网络---MATLAB实现
  15. 2021-2027全球与中国β-雌二醇 (CAS 50-28-2)市场现状及未来发展趋势
  16. STM32开发方式及基本介绍
  17. 天猫精灵 python_跟着小狂玩天猫精灵智能设备对接--硬件篇
  18. 【好记性不如烂笔头】快速排序(三)非递归实现随机快排
  19. 多角度分析如何解决建筑/基础设施/三维可视化/BIM设计图形工作站慢卡顿问题
  20. cocoscreator 音频管理cc.audioEngine

热门文章

  1. 虚拟磁盘管理器 服务器运行失败,Xp系统运行虚拟磁盘管理器出现故障怎么办
  2. 数据录入界面的设计!!
  3. 华为给博士毕业生开出天价年薪!为何博士级员工离职率依旧高达21.8%
  4. html字母显示红色,css中字体红色如何实现?
  5. 原型和原型链原型继承_原型制作的最甜蜜的一面
  6. 107+今日闲情:想吃我没那么容易.(16年分析解答)
  7. 【洞见研报】研报速读:专精特新政策研究报告——专、精、特、新、链、品六大新维度
  8. 企鹅寨 is what?
  9. 解读到底什么是硬件工程师?
  10. x11vnc 在 Debian 更新 编译 安装