uninitialized urandom read
由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相关推荐
- Vivado工程配置petalinux实现linux下网卡驱动
0.说明 基于Vivado工程配置petalinux实现linux下控制PL端GPIO 完成对linux网卡的驱动 实验内容: 完成一个vivado工程,导出硬件信息 创建petalinux工程,导入 ...
- 【Linux 系统启动优化测试工具的使用——grabserial 】
Linux 系统启动优化测试工具的使用--grabserial Linux 系统启动优化测试工具的使用--grabserial 1.grabserial工具安装 2.grabserial工具使用 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 ...
- USB出现“can‘t set config #1, error -12”问题的探索
现象: 公司一台Linux设备的U口突然出现故障,原来共16路USB端口都是正常的,出问题后只有7个正常,其余均不能使用.而且每次可用与不可用的数量不变,总是7个可用.9个不可用,但是具体的口并不固定 ...
- sim_com AT
不支持:AT+QNWINFO查询模式 使用AT+CSQ:查询信号为99(不可达) sim_com +CPSI: NR5G_SA,<Operation Mode>[,<MCC>- ...
- Sipeed MaixSense:Allwinner R329 (一)官方Debian系统--AIPU的基本使用--图像识别
文章目录 前言 官方Debian 重新划分分区 为了主机编译,增加SWAP SWAP分区设置 Debian系统下zhouyi AIPU的使用 官方自带的模型:aipu.bin 周易demo代码 3D模 ...
- Hi3518EV300芯片linux系统配置USB Camera功能
Hi3518EV300芯片linux系统配置USB Camera功能 一,安装好虚拟机VMware® Workstation 15 Pro 和Ubuntu16.04 64位版本:并且安装应用软件,配置 ...
- Openwrt Kernel panic - not syncing: Fatal exception 解决方案
0.故障发生 在清空闪存芯片后,只写入breed和固件后,启动过程中发生故障 1.尝试解决方案 校验固件完整 确保MAC信息存在 确保ART信息存在,可被读取(重要) 2.报错日志 [ 0.00000 ...
- r329开发板部署aipu模型
上篇文章r329模拟仿真实现了在模拟器上仿真网络,现在申请到了开发板,就有机会在上面测试下了. 本文需要的原材料 r329开发板 sd 卡 sd卡读卡器 typec的usb线 一台windows电脑 ...
最新文章
- flutter ios启动白屏_Flutter技术架构概览
- 是什么在吞食我们的科研时间2019-11-24
- SecurtCRT连接服务器自动断开
- java3D反恐精英3_统一5.3.0f4错误CS0029;不能隐式转换'UnityEngine.Vector3'类型为'float'...
- pdfbox java.lang.outofmemoryerror_java - PDFBox 2.0.1挂起渲染pdf页面 - 堆栈内存溢出
- 事件库之Redis自己的事件模型-ae
- 35.Linux/Unix 系统编程手册(下) -- 进程的优先级和调度
- .net session超时设置 sessionState的相关属性
- CPC软件使用 专利申请说明书附图插入(简单粗暴)CPC软件安装
- [Python GUI]Python内置图形界面tkinter Eye-Hand Coordination--游戏实战1
- ubuntu 安装python mysqldb
- 新闻分类:多分类问题
- re匹配截至到第一个中文_Python正则表达式:re模块常用方法详解
- 语音特征信号分类---BP神经网络---MATLAB实现
- 2021-2027全球与中国β-雌二醇 (CAS 50-28-2)市场现状及未来发展趋势
- STM32开发方式及基本介绍
- 天猫精灵 python_跟着小狂玩天猫精灵智能设备对接--硬件篇
- 【好记性不如烂笔头】快速排序(三)非递归实现随机快排
- 多角度分析如何解决建筑/基础设施/三维可视化/BIM设计图形工作站慢卡顿问题
- cocoscreator 音频管理cc.audioEngine
热门文章
- 虚拟磁盘管理器 服务器运行失败,Xp系统运行虚拟磁盘管理器出现故障怎么办
- 数据录入界面的设计!!
- 华为给博士毕业生开出天价年薪!为何博士级员工离职率依旧高达21.8%
- html字母显示红色,css中字体红色如何实现?
- 原型和原型链原型继承_原型制作的最甜蜜的一面
- 107+今日闲情:想吃我没那么容易.(16年分析解答)
- 【洞见研报】研报速读:专精特新政策研究报告——专、精、特、新、链、品六大新维度
- 企鹅寨 is what?
- 解读到底什么是硬件工程师?
- x11vnc 在 Debian 更新 编译 安装