rng-tools 在arm linux(uclibc 库)上实现交叉编译 用于解决linux系统熵严重不足的问题

本文介绍了解决系统熵不足的问题,通过修改rng-tools6.5并成功交叉编译,使其支持arm-linux-gcc。文章详细描述了编译libsysfs和rng-tools的过程,以及如何使用rngd来增加系统熵。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

由于使用tunnel隧道工具进行加密传输,但是运行的时候,提示系统熵不足,导致程序无法运行,解决方法就是使用rng-tools的rngd来自动增加系统的熵,尝试了rng-tools交叉编译,发现只支持GNU libc版本的arm-linux-gnueabi-gcc,并不支持uclibc版本的arm-linux-gcc交叉编译,所以重新修改了实现。

如果直接使用原版本编译 rng-tools 6.5,就会提示编译错误argp.h: No such file or directory 主要是main参数的解析API部分不兼容,所以我们重新修改了rng-tools 6.5的实现,下载连接在这里 rng-tools,编译方法如下:

先编译libsysfs,由于rng-tools需要依赖这个包:

libsysfs下载地址:https://sourceforge.net/projects/linux-diag/files/sysfsutils/2.1.0/sysfsutils-2.1.0.tar.gz/download

#gnuzip sysfsutils-2.1.0.tar.gz
#cd sysfsutils-2.1.0
#./configure --host=arm-linux --prefix=$PWD/install
#make
#make install

至此,就会在sysfsutils-2.1.0/install目录下生成所有的库文件

接下来我们编译rng-tools,注意sysfsutils-2.1.0和rng-tools在同一个目录

#git clone https://github.com/actg/rng-tools.git
#cd rng-tools
#export LDFLAGS=-L../sysfsutils-2.1.0/install/lib/
#export CPPFLAGS=-I../sysfsutils-2.1.0/install/include
#./configure --host=arm-linux --prefix=$PWD/install --without-libgcrypt --without-nistbeacon
#make
#make install

至此,就会在sysfsutils-2.1.0/install目录下生成rngd可执行文件,使用方法如下:

rngd使用方法:
  • 如果你的硬件支持/dev/hwrng硬件真随机数,那么直接运行就可以自动默认设置为后台daemon程序,会增加系统的熵值,在很多例如加密的应用中非常有用。
/sbin/rngd
  • 如果你的硬件不支持/dev/hwrng真随机数,那么使用linux的伪随机数也可以,使用方法:
/sbin/rngd -r/dev/urandom
查看系统熵值是多少
cat /proc/sys/kernel/random/entropy_avail
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值