V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
muooOOO
V2EX  ›  Linux

buildroot 构建的系统,启动后会卡住,直到出现 random: nonblocking pool is initialized 才能进入系统

  •  
  •   muooOOO · 2021-01-06 18:50:02 +08:00 · 2595 次点击
    这是一个创建于 1410 天前的主题,其中的信息可能已经有所发展或是发生改变。
    • 可以确定的是在我把 openssh 编译进文件系统之后出现的这个现象.
    • 发现是在 rcS 脚本启动 SSH 服务的时候卡住的
    • 在这之前能直接进入系统,但是也会出现 random: nonblocking pool is initialized

    这个 random: nonblocking pool is initialized 到底是什么东西 跟 SSH 又有啥关系?

    8 条回复    2021-01-06 22:16:24 +08:00
    Osk
        1
    Osk  
       2021-01-06 19:06:33 +08:00 via Android
    盲猜和 /dev/random urandom 有关,考虑搞一些用户空间的程序加快熵的生成。

    嵌入式系统的随机数来源比较少,不像桌面系统
    azenk
        2
    azenk  
       2021-01-06 19:07:09 +08:00 via Android
    什么 CPU ?多少 RAM ?是性能不行吧。
    Osk
        3
    Osk  
       2021-01-06 19:11:41 +08:00 via Android
    如果是随机数相关的话,参考下
    ://wiki.archlinux.org/index.php/Random_number_generation
    ooxxcc
        4
    ooxxcc  
       2021-01-06 19:18:32 +08:00 via iPhone
    缺熵

    可以考虑安装 haveged
    lff0305
        5
    lff0305  
       2021-01-06 20:04:46 +08:00
    添加启动参数 -Djava.security.egd=file:/dev/urandom

    几年前在客户的 vmware 环境遇到过类似的问题( Oracle JDBC 连接很慢,非常慢)
    qieqie
        6
    qieqie  
       2021-01-06 22:02:05 +08:00
    这个是在 boot rootfs 启动 ssh 中调用了 getrandom()这个系统调用时候卡住的,装一个 systemd 可以解决。
    比较麻烦的方法就是装一个 EGD 这样的生成程序,然后重新编译 openssh,--with-egd-pool
    qieqie
        7
    qieqie  
       2021-01-06 22:08:35 +08:00
    装了 EGD 可能还需要调整一下启动的优先级啥的,所以还是在你构建系统的时候把 systemd 加进去省事~
    jworg
        8
    jworg  
       2021-01-06 22:16:24 +08:00   ❤️ 1
    所以为啥不用 dropbear 呢,都上 buildroot 了,我自己构建的整套也每次开机都用这个打印,也照样用
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2786 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 12:41 · PVG 20:41 · LAX 04:41 · JFK 07:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.