getrandom blocks until the random pool is being initialized.
Unfortunately, this code is being called early during init to create the
overlay filesystem, on some devices leaving little chance for a
successful random pool init.
True randomness is not that important here, so fix this issue by
sticking to using /dev/urandom, like in older versions of this code.
Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- /dev/null
+--- a/lib/randutils.c
++++ b/lib/randutils.c
+@@ -25,6 +25,11 @@
+ #define THREAD_LOCAL static
+ #endif
+
++/* force /dev/urandom to avoid hanging on early boot */
++#undef HAVE_GETRANDOM
++#undef SYS_getrandom
++#undef __NR_getrandom
++
+ #ifdef HAVE_GETRANDOM
+ # include <sys/random.h>
+ #elif defined (__linux__)