当前位置: 首页 > news >正文

linux 手动安装移植 haveged,解决随机数初始化慢的问题

文章目录

    • 1、问题描述
    • 2、安装 haveged
    • 3、问题解决
    • 4、将安装好的文件跟库移植到开发板下

Haveged是一个软件工具,用于生成高质量的熵(Entropy)源,以供计算机系统使用。熵在计算机科学中指的是一种随机性或不可预测性的度量,是密码学、加密、安全和其他随机性相关应用中非常重要的组成部分。

计算机系统需要随机数来执行各种任务,如生成加密密钥、生成随机令牌、进行随机性检验等。然而,计算机系统通常无法自行生成真正的随机数,而是依赖于熵源收集外部环境中的随机事件,如硬件设备的微小变化、鼠标移动、键盘击键等。

Haveged的作用就是通过监测和利用这些随机事件,提供高质量的熵源,从而生成更安全和更强大的随机数。它使用了一系列的噪声收集技术,如时钟抖动、热噪声和其他硬件特性,以及操作系统的事件流,来增加系统的熵池。

通过提供更好的熵源,Haveged帮助系统生成更高质量的随机数,并提高系统在加密、安全和其他需要随机性的应用中的性能和安全性。它可以在各种操作系统和平台上使用,并被广泛应用于服务器、嵌入式系统和其他安全敏感的环境中。

1、问题描述

系统运行了那么久,507.628960后才初始化完,黄花菜都凉了。

[ 507.628960] random: crng init done

但是在某些时候会卡在这个log很长时间,这是因为在开机时系统中断不够或程序运行时熵不足,生成随机数非常缓慢,导致阻塞,进而导致无法开机、app无法正常运行等一系列bug。

为了解决这个问题,我们可以移植一个工具对熵池进行补熵,这样随机数生成器就会快速生成随机数,解决阻塞导致的一系列问题。

2、安装 haveged

  • 下载安装包
    下载地址(url):http://www.issihosts.com/haveged/downloads.html
    在这里插入图片描述
  • 解压
tar -xvf haveged-1.9.2.tar.gz
  • 配置configure文件
    在haveged-1.9.2里面建立一个install文件夹

./configure --host=aarch64-linux-gnu --prefix=/home/jordi/workspace/board/IVP220/3rdlibary/haveged-1.9.2/install/

–host 可以指定要移植的系统类型

  • make&&make install

可能出现版本错误:
在这里插入图片描述

3、问题解决

前面提到的版本错误是由于automake的版本不一致问题,首先查看自己的版本,这里的版本是1.16

在这里插入图片描述

1、修改configure文件,将版本改为自己的版本,

am__api_version=‘1.16’

在这里插入图片描述
修改完成后,重新进行(注意修改为自己的路径)

./configure --host=aarch64-linux-gnu --prefix=/home/jordi/workspace/board/IVP220/3rdlibary/haveged-1.9.2/install/

2、make后还是报错了在这里插入图片描述
根据错误提示,你使用的是Automake 1.16.1版本,但项目中的configure.ac文件中使用了AM_INIT_AUTOMAKE宏定义来指定Automake版本为1.15。这导致了版本不匹配的错误。

要解决这个问题,你可以按照以下步骤操作:

  1. 删除aclocal.m4文件:在终端中执行以下命令,删除现有的aclocal.m4文件:

    rm aclocal.m4
    
  2. 运行aclocal命令:执行以下命令重新生成aclocal.m4文件:

    aclocal
    
  3. 运行automake命令:再次运行automake命令以重新生成Makefile.in文件:

    automake --gnu --ignore-deps
    
  4. 再次运行make命令:现在,尝试再次运行make命令进行构建:

    make
    

4、将安装好的文件跟库移植到开发板下

  • 先查看当前的熵值
cat /proc/sys/kernel/random/entropy_avail

一般只有几十-几百

  • 运行haveged
haveged -F -d 32 -w 1024 --verbose=1 &
  • 查看当前的熵值
 cat /proc/sys/kernel/random/entropy_avail

现在有几千了

最后将 haveged -F -d 32 -w 1024 --verbose=1 & 设置为自启动就行了

相关文章:

linux 手动安装移植 haveged,解决随机数初始化慢的问题

文章目录 1、问题描述2、安装 haveged3、问题解决4、将安装好的文件跟库移植到开发板下 Haveged是一个软件工具,用于生成高质量的熵(Entropy)源,以供计算机系统使用。熵在计算机科学中指的是一种随机性或不可预测性的度量&#xf…...

如何使用llm 制作多模态

首先将任何非字符的序列信息使用特殊n个token 编码。 具体编码方法以图像为例子说明: 将固定尺寸图像如256256 的图像分割为1616 的子图像块。 将已知的所有图像数据都分割后进行str将其看做是一个长的字符,而后去重后方式一个词表。 使用特殊1024 个tok…...

k8s(二):Pod

Pod pod 是K8s中最小的可部署单元,用于容纳一个或多个容器。Pod为容器提供了一个共享的环境,包括网络命名空间、存储卷和IP地址。 pod的阶段(phase) Pending: Pod 已被 Kubernetes 系统接受,但有一个或者多个容器尚未创建亦未运行。此阶段包…...

Python 字典详解(dict)

文章目录 1 概述1.1 性质 2 常用方法2.1 以列表返回所有键:keys()2.2 以列表返回所有值:values()2.3 以列表返回所有键值对:items()2.4 返回键对应的值:get()2.5 添加键值对:setdefault()2.6 修改键值对:di…...

IPoIB在国产并行系统上的实现与优化

目录 1 国产异构众核系统 2 相关工作 3 IPoIB在国产并行系统上的实现 3.1 IPoIB协议原理...

东南大学与OpenHarmony携手共建开源生态,技术俱乐部揭牌成立并迎来TSC专家进校园

11月25日,OpenAtom OpenHarmony(以下简称“OpenHarmony”)项目群技术指导委员会(以下简称“TSC”)与东南大学携手,于东南大学九龙湖校区金智楼一楼报告厅举办了“东南大学OpenHarmony技术俱乐部成立仪式暨OpenHarmony TSC专家进校园”活动。此次盛会标志着OpenHarmony开源社区和…...

NPU、CPU、GPU算力及算力计算方式

NVIDIA在9月20日发布的NVIDIA DRIVE Thor 新一代集中式车载计算平台,可在单个安全、可靠的系统上运行高级驾驶员辅助应用和车载信息娱乐应用。提供 2000 万亿次浮点运算性能(2000 万亿次8位浮点运算)。NVIDIA当代产品是Orin,算力是…...

华清远见嵌入式学习——C++——作业6

作业要求&#xff1a; 代码&#xff1a; #include <iostream>using namespace std;class Animal { public:virtual void perform() 0;};class Lion:public Animal { private:string foods;string feature; public:Lion(){}Lion(string foods,string feature):foods(foo…...

k8s安装学习环境

目录 环境准备 配置hosts 关闭防火墙 关闭交换分区 调整swappiness参数 关闭setlinux Ipv4转发 时钟同步 安装Docker 配置Yum源 安装 配置 启动 日志 安装k8s 配置Yum源 Master节点 安装 初始化 配置kubectl 部署CNI网络插件 Node节点 检查 环境准备 准…...

RepidJson将内容写入文件简单代码示例

以下是使用RapidJSON将内容写入文件的示例代码&#xff1a; #include <rapidjson/document.h> #include <rapidjson/writer.h> #include <rapidjson/stringbuffer.h> #include <iostream> #include <fstream>using namespace rapidjson;int mai…...

golang构建docker镜像的几种方式

目前docker支持以下几种方式指定上下文来构建镜像 本地项目路径&#xff08;如&#xff1a;/tmp/xxx&#xff09;本地压缩包路径&#xff08;如&#xff1a;/tmp/xxx.tar&#xff09;docekrfile文本链接&#xff08;如&#xff1a;https://x.com/xxx/dockerfile&#xff09;压…...

golang使用sip协议 用户名和密码注册到vos3000

在Go语言中&#xff0c;要使用SIP协议进行注册&#xff0c;您可以使用第三方库&#xff0c;如github.com/cloudwebrtc/sip。以下是一个简单的示例代码&#xff0c;演示如何使用Go语言中的该库进行基本的SIP注册&#xff1a; 首先&#xff0c;您需要安装该库&#xff1a; go ge…...

第4章 互联网

文章目录 4.1 计算机网络基础 94 4.1.1 计算机网络的基本概念 94 4.1.2 局域网的基本原理 96 4.1.3 局域网协议与应用 98 4.2 Internet 100 4.2.1 TCP/IP 101 4.2.2 TCP/IP应用 106 4.2.3 网络操作系统的功能 112 4.2.4 网络安全的概念 116 4.3 计算机软件编程基础 …...

【JavaWeb】前端工程化(VUE3)

前端工程化&#xff08;VUE3&#xff09; 文章目录 前端工程化&#xff08;VUE3&#xff09;一、概述二、ECMA6Script2.1 es6的变量和模板字符串2.2 es6的解构表达式2.3 es6的箭头函数2.4 rest和spread2.5 es6的对象创建和拷贝2.6 es6的模块化处理 三、前端工程化环境搭建3.1 N…...

JAVA基础知识:异常处理

异常处理是Java编程中至关重要的一部分&#xff0c;它允许程序在出现错误或异常情况时进行适当的处理&#xff0c;以保证程序的稳定性和可靠性。本文将详细介绍Java中的异常处理机制&#xff0c;并提供相关示例代码&#xff0c;帮助读者更好地理解和应用异常处理的概念和技巧。…...

PostGIS学习教程十:空间索引

PostGIS学习教程十&#xff1a;空间索引 回想一下&#xff0c;空间索引是空间数据库的三个关键特性之一。空间索引使得使用空间数据库存储大型数据集成为可能。在没有空间索引的情况下&#xff0c;对要素的任何搜索都需要对数据库中的每条记录进行"顺序扫描"。索引通…...

LeetCode 13 罗马数字转整数

题目描述 罗马数字转整数 罗马数字包含以下七种字符: I&#xff0c; V&#xff0c; X&#xff0c; L&#xff0c;C&#xff0c;D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M …...

【动态规划】LeetCode2111:使数组 K 递增的最少操作次数

作者推荐 [二分查找]LeetCode2040:两个有序数组的第 K 小乘积 本文涉及的基础知识点 二分查找算法合集 分组 动态规划 题目 给你一个下标从 0 开始包含 n 个正整数的数组 arr &#xff0c;和一个正整数 k 。 如果对于每个满足 k < i < n-1 的下标 i &#xff0c;都有…...

SpringCloud面试题——Nacos

一&#xff1a;什么是Nacos&#xff1f; 二&#xff1a;服务心跳与服务注册原理&#xff1f; 在spring容器启动的时候&#xff0c;nacos客户端会进行两步操作。 向nacos服务端发送心跳向nacos服务端注册当前服务 服务心跳 客户端在启动的时候&#xff0c;会开启一个心跳线程…...

leetcode:统计感冒序列的数目【数学题:组合数含逆元模版】

1. 题目截图 2.题目分析 需要把其分为多个段进行填充 长为k的段&#xff0c;从两端往中间填充的方案数有2 ** (k - 1)种 组合数就是选哪几个数填哪几个段即可 3.组合数含逆元模版 MOD 1_000_000_007 MX 100_000# 组合数模板 fac [0] * MX fac[0] 1 for i in range(1, MX…...

FrankenPHP服务器性能监控终极指南:10个关键指标深度解析

FrankenPHP服务器性能监控终极指南&#xff1a;10个关键指标深度解析 【免费下载链接】frankenphp The modern PHP app server 项目地址: https://gitcode.com/GitHub_Trending/fr/frankenphp FrankenPHP作为现代化的PHP应用服务器&#xff0c;提供了强大的性能监控能力…...

GsonFormat深度解析:如何高效处理复杂JSON数据结构

GsonFormat深度解析&#xff1a;如何高效处理复杂JSON数据结构 【免费下载链接】GsonFormat 根据Gson库使用的要求,将JSONObject格式的String 解析成实体 项目地址: https://gitcode.com/gh_mirrors/gs/GsonFormat GsonFormat是一款专为Android Studio和IntelliJ IDEA设…...

如何借助Kilo Code提升开发效率:从入门到专家的资源指南

如何借助Kilo Code提升开发效率&#xff1a;从入门到专家的资源指南 【免费下载链接】kilocode Kilo Code (forked from Roo Code) gives you a whole dev team of AI agents in your code editor. 项目地址: https://gitcode.com/GitHub_Trending/ki/kilocode 开篇价值…...

如何让零基础快速掌握3D资产生成:颠覆式AI工具Hunyuan3D-2实战指南

如何让零基础快速掌握3D资产生成&#xff1a;颠覆式AI工具Hunyuan3D-2实战指南 【免费下载链接】Hunyuan3D-2 High-Resolution 3D Assets Generation with Large Scale Hunyuan3D Diffusion Models. 项目地址: https://gitcode.com/GitHub_Trending/hu/Hunyuan3D-2 技术…...

MarkItDown:文档转换工具的全方位解析与高效应用指南

MarkItDown&#xff1a;文档转换工具的全方位解析与高效应用指南 【免费下载链接】markitdown 将文件和办公文档转换为 Markdown 的 Python 工具 项目地址: https://gitcode.com/GitHub_Trending/ma/markitdown 在数字化办公与内容创作领域&#xff0c;文档格式转换是连…...

Wan2.1-umt5与Node.js后端集成:构建高并发AI服务网关

Wan2.1-umt5与Node.js后端集成&#xff1a;构建高并发AI服务网关 最近和几个做后端的朋友聊天&#xff0c;发现大家都有个共同的痛点&#xff1a;想把一些好用的AI模型能力集成到自己的业务系统里&#xff0c;但一遇到高并发场景就头疼。要么是API调用超时&#xff0c;要么是服…...

实战对比:ext4 vs NTFS vs XFS vs Btrfs vs ZFS - 哪个文件系统最适合你的SSD?

SSD文件系统终极对决&#xff1a;ext4/NTFS/XFS/Btrfs/ZFS实战指南 当你把一块崭新的SSD插入电脑时&#xff0c;系统通常会默认分配一个文件系统——但这是最佳选择吗&#xff1f;作为从业十年的存储工程师&#xff0c;我见过太多用户因为文件系统选择不当而损失30%以上的SSD性…...

3步掌握WebPShop插件:让Photoshop完美支持WebP格式图片处理 [特殊字符]

3步掌握WebPShop插件&#xff1a;让Photoshop完美支持WebP格式图片处理 &#x1f680; 【免费下载链接】WebPShop Photoshop plug-in for opening and saving WebP images 项目地址: https://gitcode.com/gh_mirrors/we/WebPShop WebPShop是一款专为Adobe Photoshop设计…...

Linux(9)操作系统

linux 之 操作系统冯若依曼体系体系结构理解数据流动操作系统什么是操作系统&#xff1f;&#xff1f;理解操作系统的调用系统调用的接口&#xff1a;冯若依曼体系 体系结构 要理解进程首先就需要了解操作系统&#xff01;&#xff01;&#xff01; 五大组件&#xff1a; ○…...

用Python脚本让Crazyflie 2.X无人机动起来:手把手教你写第一个自主飞行程序

用Python脚本让Crazyflie 2.X无人机动起来&#xff1a;从零编写自主飞行程序 当第一次看到Crazyflie这个巴掌大的无人机在桌面上悬停时&#xff0c;我意识到微小型飞行器的编程控制远比想象中更有趣。与传统无人机不同&#xff0c;Crazyflie 2.X系列通过Python脚本就能实现毫米…...