Allow targets to specify extra initramfs source files
authorFelix Fietkau <nbd@openwrt.org>
Tue, 23 Oct 2007 06:23:29 +0000 (06:23 +0000)
committerFelix Fietkau <nbd@openwrt.org>
Tue, 23 Oct 2007 06:23:29 +0000 (06:23 +0000)
The CONFIG_INITRAMFS_SOURCE Kconfig variable can be a space-separated
list of source files (or directories). This allows a platform to
add extra components to the initramfs image, by defining the
INITRAMFS_EXTRA_FILES make var.

By default, we add a simple initramfs extra file for the generic-2.6
platform, which specifies a few device nodes.

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
SVN-Revision: 9410

include/kernel-defaults.mk
target/linux/generic-2.6/image/initramfs-base-files.txt [new file with mode: 0644]

index cab8352..4b25f54 100644 (file)
@@ -40,6 +40,8 @@ KERNEL_MAKEOPTS := -C $(LINUX_DIR) \
        ARCH="$(LINUX_KARCH)" \
        CONFIG_SHELL="$(BASH)"
 
+INITRAMFS_EXTRA_FILES ?= $(GENERIC_PLATFORM_DIR)/image/initramfs-base-files.txt
+
 ifneq (,$(KERNEL_CC))
   KERNEL_MAKEOPTS += CC="$(KERNEL_CC)"
 endif
@@ -78,7 +80,7 @@ ifeq ($(KERNEL),2.6)
     define Kernel/SetInitramfs
                mv $(LINUX_DIR)/.config $(LINUX_DIR)/.config.old
                grep -v INITRAMFS $(LINUX_DIR)/.config.old > $(LINUX_DIR)/.config
-               echo 'CONFIG_INITRAMFS_SOURCE="$(TARGET_DIR)"' >> $(LINUX_DIR)/.config
+               echo 'CONFIG_INITRAMFS_SOURCE="$(strip $(TARGET_DIR) $(INITRAMFS_EXTRA_FILES))"' >> $(LINUX_DIR)/.config
                echo 'CONFIG_INITRAMFS_ROOT_UID=$(shell id -u)' >> $(LINUX_DIR)/.config
                echo 'CONFIG_INITRAMFS_ROOT_GID=$(shell id -g)' >> $(LINUX_DIR)/.config
     endef
diff --git a/target/linux/generic-2.6/image/initramfs-base-files.txt b/target/linux/generic-2.6/image/initramfs-base-files.txt
new file mode 100644 (file)
index 0000000..eda5d0d
--- /dev/null
@@ -0,0 +1,9 @@
+nod /dev/console 600 0 0 c 5 1
+nod /dev/null 666 0 0 c 1 3
+nod /dev/zero 666 0 0 c 1 5
+nod /dev/tty 666 0 0 c 5 0
+nod /dev/tty0 660 0 0 c 4 0
+nod /dev/tty1 660 0 0 c 4 1
+nod /dev/random 666 0 0 c 1 8
+nod /dev/urandom 666 0 0 c 1 9
+dir /dev/pts 755 0 0