* [Buildroot] [PATCH 1/2] fs/cpio: allow users to provide their own dracut modules
2022-09-20 18:37 [Buildroot] [PATCH 0/2] dracut: extend support and tests (branch yem/dracut) Yann E. MORIN
@ 2022-09-20 18:37 ` Yann E. MORIN
2022-09-20 18:37 ` [Buildroot] [PATCH 2/2] support/tests/cpio: extend runtime tests for extra dract modules Yann E. MORIN
2023-02-06 21:39 ` [Buildroot] [PATCH 0/2] dracut: extend support and tests (branch yem/dracut) Thomas Petazzoni via buildroot
2 siblings, 0 replies; 4+ messages in thread
From: Yann E. MORIN @ 2022-09-20 18:37 UTC (permalink / raw)
To: buildroot; +Cc: Adam Duskett, Yann E. MORIN, Thierry Bultel
Dracut modules can only be looked for in HOST_DIR/lib/dracut/modules.d/
as dracut does not offer the possibility to look elsewhere.
Installing files in HOST_DIR/ can do done either from a host-package, or
via a post-built script; there is no overlay like there is for target/.
This is a bit cumbersome.
Additional modules are most probably developped in a relatively tight
loop with the configuration files, so it makes sense to expose both
close together.
Add an option to the fs/cpio filesystem, so users can point to a list
of modules to install.
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>
---
fs/cpio/Config.in | 5 +++++
fs/cpio/cpio.mk | 12 +++++++++++-
2 files changed, 16 insertions(+), 1 deletion(-)
diff --git a/fs/cpio/Config.in b/fs/cpio/Config.in
index bec2d9dca2..4d38276c88 100644
--- a/fs/cpio/Config.in
+++ b/fs/cpio/Config.in
@@ -29,6 +29,11 @@ endchoice
if BR2_TARGET_ROOTFS_CPIO_DRACUT
+config BR2_TARGET_ROOTFS_CPIO_DRACUT_MODULES
+ string "extra dracut modules"
+ help
+ Space-separated list of directories containing dracut modules.
+
config BR2_TARGET_ROOTFS_CPIO_DRACUT_CONF_FILES
string "dracut configuration files"
default "fs/cpio/dracut.conf"
diff --git a/fs/cpio/cpio.mk b/fs/cpio/cpio.mk
index d671c337df..04c8f49013 100644
--- a/fs/cpio/cpio.mk
+++ b/fs/cpio/cpio.mk
@@ -50,6 +50,13 @@ else ifeq ($(BR2_TARGET_ROOTFS_CPIO_DRACUT),y)
ROOTFS_CPIO_DEPENDENCIES += host-dracut
+ROOTFS_CPIO_DRACUT_MODULES = $(call qstrip,$(BR2_TARGET_ROOTFS_CPIO_DRACUT_MODULES))
+ifeq ($(BR_BUILDING),y)
+ifneq ($(words $(ROOTFS_CPIO_DRACUT_MODULES)),$(words $(sort $(notdir $(ROOTFS_CPIO_DRACUT_MODULES)))))
+$(error No two dracut modules can have the same basename, check your BR2_TARGET_ROOTFS_CPIO_DRACUT_MODULES setting)
+endif
+endif
+
ROOTFS_CPIO_DRACUT_CONF_FILES = $(call qstrip,$(BR2_TARGET_ROOTFS_CPIO_DRACUT_CONF_FILES))
ifeq ($(BR_BUILDING),y)
ifeq ($(ROOTFS_CPIO_DRACUT_CONF_FILES),)
@@ -68,10 +75,13 @@ ROOTFS_CPIO_OPTS += --no-kernel
endif
define ROOTFS_CPIO_CMD
- mkdir -p $(ROOTFS_CPIO_DIR)/tmp $(ROOTFS_CPIO_DIR)/confdir
+ mkdir -p $(ROOTFS_CPIO_DIR)/tmp $(ROOTFS_CPIO_DIR)/confdir $(HOST_DIR)/lib/dracut/modules.d
$(foreach cfg,$(ROOTFS_CPIO_DRACUT_CONF_FILES), \
cp $(cfg) $(ROOTFS_CPIO_DIR)/confdir/$(notdir $(cfg))
)
+ $(foreach m,$(ROOTFS_CPIO_DRACUT_MODULES), \
+ cp -a $(m)/* $(HOST_DIR)/lib/dracut/modules.d/
+ )
$(HOST_DIR)/bin/dracut \
$(ROOTFS_CPIO_OPTS) \
-c /dev/null \
--
2.25.1
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [Buildroot] [PATCH 2/2] support/tests/cpio: extend runtime tests for extra dract modules
2022-09-20 18:37 [Buildroot] [PATCH 0/2] dracut: extend support and tests (branch yem/dracut) Yann E. MORIN
2022-09-20 18:37 ` [Buildroot] [PATCH 1/2] fs/cpio: allow users to provide their own dracut modules Yann E. MORIN
@ 2022-09-20 18:37 ` Yann E. MORIN
2023-02-06 21:39 ` [Buildroot] [PATCH 0/2] dracut: extend support and tests (branch yem/dracut) Thomas Petazzoni via buildroot
2 siblings, 0 replies; 4+ messages in thread
From: Yann E. MORIN @ 2022-09-20 18:37 UTC (permalink / raw)
To: buildroot; +Cc: Adam Duskett, Yann E. MORIN, Thierry Bultel
Add a basic module that installs a single file, to check that it is
properly accounted for.
Reported-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
Cc: Thierry Bultel <thierry.bultel@linatsea.fr>
Cc: Adam Duskett <aduskett@gmail.com>
---
support/testing/tests/fs/test_cpio.py | 5 ++++-
.../fs/test_cpio/modules/99cramfs/module-setup.sh | 11 +++++++++++
2 files changed, 15 insertions(+), 1 deletion(-)
create mode 100755 support/testing/tests/fs/test_cpio/modules/99cramfs/module-setup.sh
diff --git a/support/testing/tests/fs/test_cpio.py b/support/testing/tests/fs/test_cpio.py
index 8c0d357994..172af579bb 100644
--- a/support/testing/tests/fs/test_cpio.py
+++ b/support/testing/tests/fs/test_cpio.py
@@ -41,9 +41,11 @@ class TestCpioDracutBase(infra.basetest.BRTest):
BR2_PACKAGE_PV=y
BR2_TARGET_ROOTFS_CPIO=y
BR2_TARGET_ROOTFS_CPIO_DRACUT=y
+ BR2_TARGET_ROOTFS_CPIO_DRACUT_MODULES="{}"
BR2_TARGET_ROOTFS_CPIO_DRACUT_CONF_FILES="{}"
# BR2_TARGET_ROOTFS_TAR is not set
- """.format(" ".join(["fs/cpio/dracut.conf",
+ """.format("support/testing/tests/fs/test_cpio/modules",
+ " ".join(["fs/cpio/dracut.conf",
"support/testing/tests/fs/test_cpio/dracut-cramfs.conf"]))
def check_dracut(self):
@@ -57,6 +59,7 @@ class TestCpioDracutBase(infra.basetest.BRTest):
self.assertEqual(out.find("bin/pv"), -1)
# libz should be, because of cramfs
self.assertNotEqual(out.find("usr/bin/mkcramfs"), -1)
+ self.assertNotEqual(out.find("usr/bin/cramfsck"), -1)
self.assertNotEqual(out.find("usr/lib/libz.so"), -1)
exit_code = boot_img(self.emulator,
diff --git a/support/testing/tests/fs/test_cpio/modules/99cramfs/module-setup.sh b/support/testing/tests/fs/test_cpio/modules/99cramfs/module-setup.sh
new file mode 100755
index 0000000000..60706c8bd9
--- /dev/null
+++ b/support/testing/tests/fs/test_cpio/modules/99cramfs/module-setup.sh
@@ -0,0 +1,11 @@
+check() {
+ return 0
+}
+
+depends() {
+ return 0
+}
+
+install() {
+ inst_multiple /usr/bin/cramfsck
+}
--
2.25.1
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 4+ messages in thread* Re: [Buildroot] [PATCH 0/2] dracut: extend support and tests (branch yem/dracut)
2022-09-20 18:37 [Buildroot] [PATCH 0/2] dracut: extend support and tests (branch yem/dracut) Yann E. MORIN
2022-09-20 18:37 ` [Buildroot] [PATCH 1/2] fs/cpio: allow users to provide their own dracut modules Yann E. MORIN
2022-09-20 18:37 ` [Buildroot] [PATCH 2/2] support/tests/cpio: extend runtime tests for extra dract modules Yann E. MORIN
@ 2023-02-06 21:39 ` Thomas Petazzoni via buildroot
2 siblings, 0 replies; 4+ messages in thread
From: Thomas Petazzoni via buildroot @ 2023-02-06 21:39 UTC (permalink / raw)
To: Yann E. MORIN; +Cc: Adam Duskett, Thierry Bultel, buildroot
On Tue, 20 Sep 2022 20:37:09 +0200
"Yann E. MORIN" <yann.morin.1998@free.fr> wrote:
> Yann E. MORIN (2):
> fs/cpio: allow users to provide their own dracut modules
> support/tests/cpio: extend runtime tests for extra dract modules
Both finally applied. Thanks!
Thomas
--
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering and training
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 4+ messages in thread