fs/cpio: accept a list of dracut.conf files
It is not unusual that projects can target multiple boards, and in such cases, a lot is shared between boards and only the low-level stuff differ. Allow users to specify more than one dracut config file to cover tose cases. dracut does not accept more than one config file with the -c option, but it can load more than one from a directory with --confdir. So, we copy all the config files to a temporary directory and se that as --confdir. However, we can't drop passing -c, or dracut would read the system-wide /etc/dracut.conf (not sure if ${prefix} is even used), which we do not want. So, we use an empty file as -c; /dev/null comes in handy as an empty file. Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr> Cc: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Cc: Thierry Bultel <thierry.bultel@linatsea.fr> Cc: Adam Duskett <aduskett@gmail.com> Signed-off-by: Arnout Vandecappelle <arnout@mind.be>
This commit is contained in:
parent
c8a618cff7
commit
4fd5d80e9d
@ -29,13 +29,15 @@ endchoice
|
|||||||
|
|
||||||
if BR2_TARGET_ROOTFS_CPIO_DRACUT
|
if BR2_TARGET_ROOTFS_CPIO_DRACUT
|
||||||
|
|
||||||
config BR2_TARGET_ROOTFS_CPIO_DRACUT_CONF_FILE
|
config BR2_TARGET_ROOTFS_CPIO_DRACUT_CONF_FILES
|
||||||
string "dracut configuration file"
|
string "dracut configuration files"
|
||||||
default "fs/cpio/dracut.conf"
|
default "fs/cpio/dracut.conf"
|
||||||
help
|
help
|
||||||
Dracut configuration file. It determines which parts of the
|
Space-separated list of Dracut configuration files. They
|
||||||
rootfs get included in the cpio image. See dracut.conf(5) or
|
determine which parts of the rootfs get included in the
|
||||||
https://github.com/dracutdevs/dracut/blob/master/man/dracut.conf.5.asc
|
cpio image. See:
|
||||||
|
dracut.conf(5)
|
||||||
|
https://github.com/dracutdevs/dracut/blob/master/man/dracut.conf.5.asc
|
||||||
|
|
||||||
The default configuration file is suitable for busybox init.
|
The default configuration file is suitable for busybox init.
|
||||||
It doesn't, however, pivot_root into a full rootfs.
|
It doesn't, however, pivot_root into a full rootfs.
|
||||||
|
@ -50,9 +50,14 @@ else ifeq ($(BR2_TARGET_ROOTFS_CPIO_DRACUT),y)
|
|||||||
|
|
||||||
ROOTFS_CPIO_DEPENDENCIES += host-dracut
|
ROOTFS_CPIO_DEPENDENCIES += host-dracut
|
||||||
|
|
||||||
ROOTFS_CPIO_DRACUT_CONF_FILE = $(call qstrip,$(BR2_TARGET_ROOTFS_CPIO_DRACUT_CONF_FILE))
|
ROOTFS_CPIO_DRACUT_CONF_FILES = $(call qstrip,$(BR2_TARGET_ROOTFS_CPIO_DRACUT_CONF_FILES))
|
||||||
ifeq ($(BR_BUILDING):$(ROOTFS_CPIO_DRACUT_CONF_FILE),y:)
|
ifeq ($(BR_BUILDING),y)
|
||||||
$(error No dracut config file name specified, check your BR2_TARGET_ROOTFS_CPIO_DRACUT_CONF_FILE setting)
|
ifeq ($(ROOTFS_CPIO_DRACUT_CONF_FILES),)
|
||||||
|
$(error No dracut config file name specified, check your BR2_TARGET_ROOTFS_CPIO_DRACUT_CONF_FILES setting)
|
||||||
|
endif
|
||||||
|
ifneq ($(words $(ROOTFS_CPIO_DRACUT_CONF_FILES)),$(words $(sort $(notdir $(ROOTFS_CPIO_DRACUT_CONF_FILES)))))
|
||||||
|
$(error No two dracut config files can have the same basename, check your BR2_TARGET_ROOTFS_CPIO_DRACUT_CONF_FILES setting)
|
||||||
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(BR2_LINUX_KERNEL),y)
|
ifeq ($(BR2_LINUX_KERNEL),y)
|
||||||
@ -63,10 +68,14 @@ ROOTFS_CPIO_OPTS += --no-kernel
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
define ROOTFS_CPIO_CMD
|
define ROOTFS_CPIO_CMD
|
||||||
mkdir -p $(ROOTFS_CPIO_DIR)/tmp
|
mkdir -p $(ROOTFS_CPIO_DIR)/tmp $(ROOTFS_CPIO_DIR)/confdir
|
||||||
|
$(foreach cfg,$(ROOTFS_CPIO_DRACUT_CONF_FILES), \
|
||||||
|
cp $(cfg) $(ROOTFS_CPIO_DIR)/confdir/$(notdir $(cfg))
|
||||||
|
)
|
||||||
$(HOST_DIR)/bin/dracut \
|
$(HOST_DIR)/bin/dracut \
|
||||||
$(ROOTFS_CPIO_OPTS) \
|
$(ROOTFS_CPIO_OPTS) \
|
||||||
-c $(ROOTFS_CPIO_DRACUT_CONF_FILE) \
|
-c /dev/null \
|
||||||
|
--confdir $(ROOTFS_CPIO_DIR)/confdir \
|
||||||
--sysroot $(TARGET_DIR) \
|
--sysroot $(TARGET_DIR) \
|
||||||
--tmpdir $(ROOTFS_CPIO_DIR)/tmp \
|
--tmpdir $(ROOTFS_CPIO_DIR)/tmp \
|
||||||
-M \
|
-M \
|
||||||
|
Loading…
Reference in New Issue
Block a user