Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH 1/2] cpio: fix boot with dynamic /dev
@ 2011-09-06 21:16 Arnout Vandecappelle
  2011-09-06 21:16 ` [Buildroot] [PATCH 2/2] fs/initramfs: refactor with fs/cpio Arnout Vandecappelle
  2011-09-27 21:23 ` [Buildroot] [PATCH 1/2] cpio: fix boot with dynamic /dev Peter Korsgaard
  0 siblings, 2 replies; 8+ messages in thread
From: Arnout Vandecappelle @ 2011-09-06 21:16 UTC (permalink / raw)
  To: buildroot

From: "Arnout Vandecappelle (Essensium/Mind)" <arnout@mind.be>

Devtmpfs doesn't get automounted by the kernel when an initramfs is used.
Since cpio archives are used almost exclusively as an initramfs, the same
fix should be applied to it as for the initramfs.

Cfr. commit 424888e47431db738f5f9b3c6392435bfce7a842 and
10a130f91e5b947e2d2558443ff09b1686eac273.

Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
---
 fs/cpio/cpio.mk |   24 +++++++++++++++++++-----
 fs/cpio/init    |    7 +++++++
 2 files changed, 26 insertions(+), 5 deletions(-)
 create mode 100755 fs/cpio/init

diff --git a/fs/cpio/cpio.mk b/fs/cpio/cpio.mk
index ab7d546..aa20b41 100644
--- a/fs/cpio/cpio.mk
+++ b/fs/cpio/cpio.mk
@@ -4,15 +4,29 @@
 #
 #############################################################
 
-define ROOTFS_CPIO_INIT_SYMLINK
-	rm -f $(TARGET_DIR)/init
-	ln -s sbin/init $(TARGET_DIR)/init
+ifeq ($(BR2_ROOTFS_DEVICE_CREATION_STATIC),y)
+
+define ROOTFS_CPIO_ADD_INIT
+        if [ ! -e $(TARGET_DIR)/init ]; then \
+                ln -sf sbin/init $(TARGET_DIR)/init; \
+        fi
+endef
+
+else
+# devtmpfs does not get automounted when initramfs is used.
+# Add a pre-init script to mount it before running init
+define ROOTFS_CPIO_ADD_INIT
+        if [ ! -e $(TARGET_DIR)/init ]; then \
+                $(INSTALL) -m 0755 fs/cpio/init $(TARGET_DIR)/init; \
+        fi
 endef
 
-ROOTFS_CPIO_PRE_GEN_HOOKS += ROOTFS_CPIO_INIT_SYMLINK
+endif # BR2_ROOTFS_DEVICE_CREATION_STATIC
+
+ROOTFS_CPIO_PRE_GEN_HOOKS += ROOTFS_CPIO_ADD_INIT
 
 define ROOTFS_CPIO_CMD
 	cd $(TARGET_DIR) && find . | cpio --quiet -o -H newc > $$@
 endef
 
-$(eval $(call ROOTFS_TARGET,cpio))
\ No newline at end of file
+$(eval $(call ROOTFS_TARGET,cpio))
diff --git a/fs/cpio/init b/fs/cpio/init
new file mode 100755
index 0000000..a275482
--- /dev/null
+++ b/fs/cpio/init
@@ -0,0 +1,7 @@
+#!/bin/sh
+# devtmpfs does not get automounted for initramfs
+/bin/mount -t devtmpfs devtmpfs /dev
+exec 0</dev/console
+exec 1>/dev/console
+exec 2>/dev/console
+exec /sbin/init $*
-- 
1.7.5.4

^ permalink raw reply related	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2012-03-14 17:29 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-09-06 21:16 [Buildroot] [PATCH 1/2] cpio: fix boot with dynamic /dev Arnout Vandecappelle
2011-09-06 21:16 ` [Buildroot] [PATCH 2/2] fs/initramfs: refactor with fs/cpio Arnout Vandecappelle
2011-09-27 21:23   ` Peter Korsgaard
2012-03-13 15:49   ` Thomas De Schampheleire
2012-03-13 16:15     ` Arnout Vandecappelle
2012-03-14 14:19       ` Thomas De Schampheleire
2012-03-14 17:29         ` Arnout Vandecappelle
2011-09-27 21:23 ` [Buildroot] [PATCH 1/2] cpio: fix boot with dynamic /dev Peter Korsgaard

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox