Unverified Commit 2a9c8c0b authored by Sascha Hauer's avatar Sascha Hauer Committed by Nicolas Schier
Browse files

kbuild: add target to build a cpio containing modules



Add a new package target to build a cpio archive containing the kernel
modules. This is particularly useful to supplement an existing initramfs
with the kernel modules so that the root filesystem can be started with
all needed kernel modules without modifying it.

Signed-off-by: default avatarSascha Hauer <s.hauer@pengutronix.de>
Reviewed-by: default avatarSimon Glass <sjg@chromium.org>
Tested-by: default avatarSimon Glass <sjg@chromium.org>
Co-developed-by: default avatarAhmad Fatoum <a.fatoum@pengutronix.de>
Signed-off-by: default avatarAhmad Fatoum <a.fatoum@pengutronix.de>
Reviewed-by: default avatarThomas Weißschuh <thomas.weissschuh@linutronix.de>
Reviewed-by: default avatarNathan Chancellor <nathan@kernel.org>
Tested-by: default avatarNathan Chancellor <nathan@kernel.org>
Tested-by: default avatarNicolas Schier <nsc@kernel.org>
Link: https://patch.msgid.link/20251125-cpio-modules-pkg-v2-2-aa8277d89682@pengutronix.de


Signed-off-by: default avatarNicolas Schier <nsc@kernel.org>
parent c83c9564
Loading
Loading
Loading
Loading
+20 −0
Original line number Diff line number Diff line
@@ -189,6 +189,25 @@ tar-pkg: linux-$(KERNELRELEASE)-$(ARCH).tar
tar%-pkg: linux-$(KERNELRELEASE)-$(ARCH).tar.% FORCE
	@:

# modules-cpio-pkg - generate an initramfs with the modules
# ---------------------------------------------------------------------------

.tmp_modules_cpio: FORCE
	$(Q)$(MAKE) -f $(srctree)/Makefile
	$(Q)rm -rf $@
	$(Q)$(MAKE) -f $(srctree)/Makefile INSTALL_MOD_PATH=$@ modules_install

quiet_cmd_cpio = CPIO    $@
      cmd_cpio = $(CONFIG_SHELL) $(srctree)/usr/gen_initramfs.sh -o $@ $<

modules-$(KERNELRELEASE)-$(ARCH).cpio: .tmp_modules_cpio
	$(Q)$(MAKE) $(build)=usr usr/gen_init_cpio
	$(call cmd,cpio)

PHONY += modules-cpio-pkg
modules-cpio-pkg: modules-$(KERNELRELEASE)-$(ARCH).cpio
	@:

# perf-tar*-src-pkg - generate a source tarball with perf source
# ---------------------------------------------------------------------------

@@ -245,6 +264,7 @@ help:
	@echo '  tarbz2-pkg          - Build the kernel as a bzip2 compressed tarball'
	@echo '  tarxz-pkg           - Build the kernel as a xz compressed tarball'
	@echo '  tarzst-pkg          - Build the kernel as a zstd compressed tarball'
	@echo '  modules-cpio-pkg    - Build the kernel modules as cpio archive'
	@echo '  perf-tar-src-pkg    - Build the perf source tarball with no compression'
	@echo '  perf-targz-src-pkg  - Build the perf source tarball with gzip compression'
	@echo '  perf-tarbz2-src-pkg - Build the perf source tarball with bz2 compression'