initramfs: fix boot with dynamic /dev
Devtmpfs (which is used by devtmpfs/mdev/udev options) doesn't get automounted by the kernel when an initramfs is used, causing boot failures when a dynamic /dev is used. Fix it by adding a pre-init script to mount devtmpfs before running init. Reported-by: Arnout Vandecappelle <arnout@mind.be> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
This commit is contained in:
parent
8a6f23a424
commit
424888e474
4
fs/initramfs/init
Executable file
4
fs/initramfs/init
Executable file
@ -0,0 +1,4 @@
|
||||
#!/bin/sh
|
||||
# devtmpfs does not get automounted for initramfs
|
||||
/bin/mount -t devtmpfs devtmpfs /dev
|
||||
exec /sbin/init $*
|
@ -6,13 +6,26 @@
|
||||
#
|
||||
#############################################################
|
||||
|
||||
define ROOTFS_INITRAMFS_INIT_SYMLINK
|
||||
ifeq ($(BR2_ROOTFS_DEVICE_CREATION_STATIC),y)
|
||||
|
||||
define ROOTFS_INITRAMFS_ADD_INIT
|
||||
if [ ! -e $(TARGET_DIR)/init ]; then \
|
||||
ln -sf sbin/init $(TARGET_DIR)/init; \
|
||||
fi
|
||||
endef
|
||||
|
||||
ROOTFS_INITRAMFS_PRE_GEN_HOOKS += ROOTFS_INITRAMFS_INIT_SYMLINK
|
||||
else
|
||||
# devtmpfs does not get automounted when initramfs is used.
|
||||
# Add a pre-init script to mount it before running init
|
||||
define ROOTFS_INITRAMFS_ADD_INIT
|
||||
if [ ! -e $(TARGET_DIR)/init ]; then \
|
||||
$(INSTALL) -m 0755 fs/initramfs/init $(TARGET_DIR)/init; \
|
||||
fi
|
||||
endef
|
||||
|
||||
endif # BR2_ROOTFS_DEVICE_CREATION_STATIC
|
||||
|
||||
ROOTFS_INITRAMFS_PRE_GEN_HOOKS += ROOTFS_INITRAMFS_ADD_INIT
|
||||
|
||||
define ROOTFS_INITRAMFS_CMD
|
||||
$(SHELL) fs/initramfs/gen_initramfs_list.sh -u 0 -g 0 $(TARGET_DIR) > $$@
|
||||
|
Loading…
Reference in New Issue
Block a user