diff --git a/package/czechlight-cfg-fs/czechlight-cfg-fs.mk b/package/czechlight-cfg-fs/czechlight-cfg-fs.mk
index 98ca80c..67f2e55 100644
--- a/package/czechlight-cfg-fs/czechlight-cfg-fs.mk
+++ b/package/czechlight-cfg-fs/czechlight-cfg-fs.mk
@@ -12,10 +12,15 @@
 $(error CZECHLIGHT_CFG_FS_SIZE cannot be empty)
 endif
 
+define CZECHLIGHT_CFG_FS_BUILD_CMDS
+	$(TARGET_CC) $(BR2_EXTERNAL_CZECHLIGHT_PATH)/package/czechlight-cfg-fs/czechlight-random-seed.c -o czechlight-random-seed
+endef
+
 define CZECHLIGHT_CFG_FS_INSTALL_TARGET_CMDS
 	$(INSTALL) -D -m 0755 \
 		$(BR2_EXTERNAL_CZECHLIGHT_PATH)/package/czechlight-cfg-fs/init-czechlight.sh \
 		$(TARGET_DIR)/sbin/init-czechlight.sh
+	$(INSTALL) -D -m 0755 czechlight-random-seed $(TARGET_DIR)/sbin/czechlight-random-seed
 	mkdir -p $(TARGET_DIR)/cfg
 	$(ifeq ($(CZECHLIGHT_CFG_FS_PERSIST_SYSREPO),y))
 		mkdir -p $(TARGET_DIR)/usr/lib/systemd/system/multi-user.target.wants/
diff --git a/package/czechlight-cfg-fs/czechlight-random-seed.c b/package/czechlight-cfg-fs/czechlight-random-seed.c
new file mode 100644
index 0000000..ac5c94a
--- /dev/null
+++ b/package/czechlight-cfg-fs/czechlight-random-seed.c
@@ -0,0 +1,70 @@
+/* rndaddentropy, an RNDADDENTROPY ioctl wrapper
+ * Copyright (C) 2012 Ryan Finnie <ryan@finnie.org>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301, USA.
+ */
+
+#include <stdio.h>
+#include <string.h>
+#include <sys/fcntl.h>
+#include <sys/ioctl.h>
+#include <linux/random.h>
+
+int main(int argc, char *argv[]) {
+  struct {
+    int entropy_count;
+    int buf_size;
+    char buf[8192];
+  } entropy;
+
+  int i;
+  for(i=1; i < argc; i++) {
+    if(strcmp(argv[i], "--help") == 0) {
+      fprintf(stderr, "rndaddentropy, an RNDADDENTROPY ioctl wrapper\n");
+      fprintf(stderr, "Copyright (C) 2012 Ryan Finnie <ryan@finnie.org>\n");
+      fprintf(stderr, "\n");
+      fprintf(stderr, "Usage: $ENTROPY_GENERATOR | rndaddentropy\n");
+      fprintf(stderr, "\n");
+      fprintf(stderr, "WARNING!  This program is dangerous, and relies on your entropy\n");
+      fprintf(stderr, "generator producing adequate output.  Inadequate entropy generation\n");
+      fprintf(stderr, "fed to the primary pool is a security risk to the system.\n");
+      return(1);
+    }
+  }
+
+  int randfd;
+  if((randfd = open("/dev/random", O_WRONLY)) < 0) {
+    perror("/dev/random");
+    return(1);
+  }
+
+  int count;
+  while((count = fread(entropy.buf, 1, sizeof(entropy.buf), stdin)) > 0) {
+    // Jan Kundrat: be more conservative -- one bit of entropy per 16 bytes of randomness
+    entropy.entropy_count = count / 16;
+    if (entropy.entropy_count < 1) {
+      entropy.entropy_count = 1;
+    }
+    entropy.buf_size = count;
+    if(ioctl(randfd, RNDADDENTROPY, &entropy) < 0) {
+      perror("RNDADDENTROPY");
+      return(1);
+    }
+  }
+
+  return(0);
+}
+
diff --git a/package/czechlight-cfg-fs/init-czechlight.sh b/package/czechlight-cfg-fs/init-czechlight.sh
index a550906..cb45f7b 100644
--- a/package/czechlight-cfg-fs/init-czechlight.sh
+++ b/package/czechlight-cfg-fs/init-czechlight.sh
@@ -46,4 +46,8 @@
   /bin/cp -a /cfg/etc/* /etc/
 fi
 
+if [ -f /cfg/random-seed/random-seed ]; then
+  cat /cfg/random-seed/random-seed | /sbin/czechlight-random-seed
+fi
+
 exec /sbin/init
diff --git a/package/czechlight-rauc/rauc-hook.sh b/package/czechlight-rauc/rauc-hook.sh
index 9850c38..5b14883 100755
--- a/package/czechlight-rauc/rauc-hook.sh
+++ b/package/czechlight-rauc/rauc-hook.sh
@@ -4,7 +4,7 @@
   slot-post-install)
     case "$RAUC_SLOT_CLASS" in
       cfg)
-        for DIR in etc ssh-user-auth; do
+        for DIR in etc random-seed ssh-user-auth; do
           if [[ -d /cfg/$DIR ]]; then
             cp -a /cfg/$DIR ${RAUC_SLOT_MOUNT_POINT}/
           fi
