CPU는AMD GX-412TC SoC:
GX-412TC GE412TIYJ44JB 4 6W 2MB 1.0GHz/ 1.4GHz N/AN/A DDR-1333 0-90°C
다음이 없습니다 rdrand
:
grep rdrand /proc/cpuinfo
# nothing
syslog
머신 부팅 후 다음 메시지가 표시됩니다 .
kernel: random: dd: uninitialized urandom read (512 bytes read)
kernel: random: cryptsetup: uninitialized urandom read (32 bytes read)
이 메시지는 정확히 무엇을 의미하며, 이에 대해 어떻게 해야 합니까?
를 의미 dd
하고 cryptsetup
읽으려고 시도했지만 /dev/urandom
엔트로피가 충분하지 않습니까?
데몬을 사용하고 있는데 haveged
이 메시지가 나타난 후 부팅 과정에서 늦게 시작되었습니다.
내 부팅 스크립트 시작 순서는 다음과 같습니다.
/etc/rcS.d/S01hostname.sh
/etc/rcS.d/S01mountkernfs.sh
/etc/rcS.d/S02mountdevsubfs.sh
/etc/rcS.d/S03checkroot.sh
/etc/rcS.d/S04checkfs.sh
/etc/rcS.d/S05mountall.sh
/etc/rcS.d/S06bootmisc.sh
/etc/rcS.d/S06procps
/etc/rcS.d/S06urandom
/etc/rcS.d/S07crypto-swap
/etc/rc2.d/S01haveged
/etc/rc2.d/S01networking
/etc/rc2.d/S04rsyslog
/etc/rc2.d/S05cron
/etc/rc2.d/S05ssh
syslog의 메시지는 다음 두 스크립트에서 나옵니다.
/etc/rcS.d/S06urandom -> dd
/etc/rcS.d/S07crypto-swap -> cryptsetup
haveged
전에 시작해야 합니까 urandom
?
데비안 10을 사용하고 있습니다.
또한 이 기계는 키보드가 없는 베어보드라는 점을 덧붙이고 싶습니다. 유일한 인터페이스는 직렬 콘솔입니다. 이것이 사용 가능한 엔트로피에 영향을 미치는 것으로 생각되며, 이것이 제가 haveged
처음에 설치한 이유입니다 . 가 없으면 엔트로피가 충분하지 않기 때문에 데몬이 몇 분 동안 시작되지 않습니다 haveged
.sshd
답변1
진단이 정확합니다. 빈 엔트로피 풀에서 읽기를 시도했습니다. 이것은 "부팅 시간 엔트로피 기아".
EFI 시스템이 있는 경우 systemd-boot를 활용할 수 있습니다.경고를 무시하다(예측 가능한 암호화폐를 사용하고 있지만최대암호화폐를 전혀 사용하지 않는 것보다 여전히 나은 사용 사례) 또는 대체 소스에서 엔트로피를 적립해 보세요.가능한 경우- 이것을 커널 명령줄에 추가
rng_core.default_quality=X
(X=1000에서 시작하여 거기서부터 내려갑니다).
엔트로피를 수집하는 다른 기술이 있습니다. SOC에는 사용 가능한 핀이 몇 개 있을 수 있으며 핀에서 엔트로피를 수집할 수 있는 하드웨어 드라이버 모듈이 있습니다. 그런 다음 적절한 트랜지스터 및 저항 설정(또는 경우에 따라 일렉트릿 마이크)을 연결하여 열 잡음을 수집하기만 하면 됩니다.
또는 5.4+ 시리즈 커널에는 충분할 수 있는 보다 효율적인 엔트로피 수집이 있습니다.
답변2
작동하려면 커널과 호환되어야 합니다. 커널 버전 >=5.x에서는 아무것도 하지 않는 문제가 있습니다.여전히 유용하거나 관련성이 있나요? #57GitHub에서.
관리자는 친절하게 기능을 다시 도입했지만 해당 패치를 릴리스한 다음 먼저 다양한 배포판에 적용해야 합니다... 이전 버전은 전혀 시작되지 않거나 시작하더라도 실제로 아무것도 하지 않습니다. 실행 중(확인 strace
), 커널의 엔트로피 풀이 더 이상 부족한 것 같지 않지만 crng init는 어떤 이유로 여전히 시간이 걸립니다.
또한 매우 초기에 실행되어야 하므로 initramfs를 사용하는 경우 임의 장치를 사용하기 얼마 전에 initramfs에서 해깅을 시작해야 합니다. 전통적인 초기화 시스템에서는 Haveged가 가능한 한 빨리 실행되어야 합니다 /proc
/sys
/dev
.
커널에 엔트로피를 보내는 데 정확히 얼마나 오랜 시간이 걸리는지 잘 모르겠습니다. 먼저 자체적으로 임의성을 수확해야 하며 이에 대한 품질 테스트도 실행합니다. 내 마지막 테스트(패치 포함)에서는 시작과 커널 보고 사이에 0.5초 정도의 지연이 있었습니다 random: crng init done
.
보유된 것 외에도 임의의 시드를 저장/복원하는 것도 고려할 수 있으며, 네트워크가 있는 경우 약간의 트래픽이 커널이 일부 엔트로피를 수집하는 데 도움이 될 수도 있습니다.