[Buildroot] [PATCH] linux: allow own initramfs to be specified
Daniel Mack
daniel at caiaq.de
Mon Jul 27 13:45:30 UTC 2009
The initramfs source location is removed from the given Linux kernel
configuration at the moment and only filled in again in case BR2 is
asked to provide a cpio for that feature.
This patch allows to specify an own location for such an image file.
Signed-off-by: Daniel Mack <daniel at caiaq.de>
---
target/linux/Config.in.advanced | 12 ++++++++++++
target/linux/Makefile.in.advanced | 13 +++++++++++++
2 files changed, 25 insertions(+), 0 deletions(-)
diff --git a/target/linux/Config.in.advanced b/target/linux/Config.in.advanced
index 3a171b5..53020ac 100644
--- a/target/linux/Config.in.advanced
+++ b/target/linux/Config.in.advanced
@@ -429,6 +429,18 @@ config BR2_KERNEL_CONFIG_METHOD
default "xconfig" if BR2_MAKE_XCONFIG
default "menuconfig" if BR2_MAKE_MENUCONFIG
+config BR2_PACKAGE_LINUX_INITRAMFS
+ string "initramfs source"
+ depends on BR2_PACKAGE_LINUX
+ help
+ The initial RAM filesystem is a ramfs which is loaded by the
+ boot loader (loadlin or lilo) and that is mounted as root
+ before the normal boot procedure. It is typically used to
+ load modules needed to mount the "real" root file system,
+ etc.
+
+ Specify a path relative to BR2's root folder.
+
endmenu
choice
diff --git a/target/linux/Makefile.in.advanced b/target/linux/Makefile.in.advanced
index 47a1f4e..71c0eb1 100644
--- a/target/linux/Makefile.in.advanced
+++ b/target/linux/Makefile.in.advanced
@@ -377,6 +377,19 @@ ifeq ($(BR2_PACKAGE_BUSYBOX_INITRAMFS),y)
echo "CONFIG_INITRAMFS_ROOT_UID=0" >> $(LINUX26_DIR)/.config
echo "CONFIG_INITRAMFS_ROOT_GID=0" >> $(LINUX26_DIR)/.config
endif
+ifneq ($(BR2_PACKAGE_LINUX_INITRAMFS),)
+ $(SED) '/CONFIG_INITRAMFS_SOURCE/d' $(LINUX26_DIR)/.config
+ $(SED) '/INITRAMFS_ROOT_.ID/d' $(LINUX26_DIR)/.config
+ echo "CONFIG_BLK_DEV_INITRD=y" >> $(LINUX26_DIR)/.config
+ echo "CONFIG_INITRAMFS_COMPRESSION_GZIP=y" >> $(LINUX26_DIR)/.config
+ echo "# CONFIG_INITRAMFS_COMPRESSION_NONE is not set" >> $(LINUX26_DIR)/.config
+ echo "# CONFIG_INITRAMFS_COMPRESSION_BZIP2 is not set" >> $(LINUX26_DIR)/.config
+ echo "# CONFIG_INITRAMFS_COMPRESSION_LZMA is not set" >> $(LINUX26_DIR)/.config
+ echo "CONFIG_INITRAMFS_SOURCE=\"$(PWD)/$(BR2_PACKAGE_LINUX_INITRAMFS)\"" >> \
+ $(LINUX26_DIR)/.config
+ echo "CONFIG_INITRAMFS_ROOT_UID=0" >> $(LINUX26_DIR)/.config
+ echo "CONFIG_INITRAMFS_ROOT_GID=0" >> $(LINUX26_DIR)/.config
+endif
$(MAKE) $(LINUX26_MAKE_FLAGS) -C $(LINUX26_DIR) oldconfig
touch $@
--
1.6.3.1
More information about the buildroot
mailing list