rng-tools: use 'hw-rng' to disable libjitterentropy
The warrior version of rng-tools introduced an optional PACKAGECONFIG,
which was enabled by default, called `libjitterentropy`. For BMC chips
which have a hardware RNG, this is not a necessary feature, and causes
a noticeable delay in the start of the rngd. On systems with very low
IO activity we are seeing cases of what appears to be hangs.
Define a machine feature which can be used to disable the PACKAGECONFIG
for machines which contain a BMC chip with a hardware RNG. Aspeed has
one which is supported; Nuvoton currently does not.
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Change-Id: Iee340ffd294c4f40ba3360acd3f750d886865608
diff --git a/recipes-support/rng-tools/rng-tools_%.bbappend b/recipes-support/rng-tools/rng-tools_%.bbappend
index 16add36..ce5d799 100644
--- a/recipes-support/rng-tools/rng-tools_%.bbappend
+++ b/recipes-support/rng-tools/rng-tools_%.bbappend
@@ -1,13 +1,26 @@
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
SRC_URI += "file://10-nice.conf"
+PACKAGECONFIG_remove = "\
+ ${@bb.utils.contains('MACHINE_FEATURES', 'hw-rng', \
+ 'libjitterentropy', '', d)}\
+ "
+
inherit systemd
FILES_${PN} += "${systemd_unitdir}/system/rngd.service.d"
do_install_append() {
+
+ # When using systemd and using libjitterentropy, install a config
+ # which runs rngd at a 'nice' priority. libjitterentropy uses a
+ # lot of CPU early on in the boot process and makes the whole boot
+ # go slower.
if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
- install -d ${D}${systemd_unitdir}/system/rngd.service.d
- install -m 644 ${WORKDIR}/10-nice.conf ${D}${systemd_unitdir}/system/rngd.service.d
+ if ${@bb.utils.contains('PACKAGECONFIG', 'libjitterentropy', 'true', 'false', d)}; then
+ install -d ${D}${systemd_unitdir}/system/rngd.service.d
+ install -m 644 ${WORKDIR}/10-nice.conf \
+ ${D}${systemd_unitdir}/system/rngd.service.d
+ fi
fi
}