From 8f5a610fe81676092a6960415717de731f43f8bf Mon Sep 17 00:00:00 2001 From: Carlos Santos Date: Fri, 20 Mar 2020 20:35:44 -0300 Subject: [PATCH] linux: Allow modprobe for out-of-tree modules When a package installs a kernel module, it is currently not possible to have it loaded with modprobe or when the kernel requests an alias for it, as the module is not listed in /lib/modules//modules.dep and the associated files. So, we need to run depmod after all packages are installed, to register any such out-of-tree module. This means we should be able to let go of calling depmod at the time the kernel is installed, but if we pass an invalid command, the kernel whines: DEPMOD 5.4.27 ./scripts/depmod.sh: 46: /dev/null: Permission denied make[2]: *** [Makefile:1326: _modinst_post] Error 126 This is because the kernel does not directly call to depmod, but uses a wrapper that is not happy if depmod is not depmod. Since the call to depmod does not cost much, we just keep it. Signed-off-by: Carlos Santos [yann.morin.1998@free.fr: - keep calling depmod when installing kernel - expand commit log ] Signed-off-by: Yann E. MORIN (cherry picked from commit 82e7656400958d2a1aa458e86db518201e27e7fd) Signed-off-by: Peter Korsgaard --- linux/linux.mk | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/linux/linux.mk b/linux/linux.mk index 4b60f33ff3..5baca23ea2 100644 --- a/linux/linux.mk +++ b/linux/linux.mk @@ -127,6 +127,8 @@ LINUX_POST_EXTRACT_HOOKS += LINUX_XTENSA_OVERLAY_EXTRACT LINUX_EXTRA_DOWNLOADS += $(ARCH_XTENSA_OVERLAY_URL) endif +# We don't want to run depmod after installing the kernel. It's done in a +# target-finalize hook, to encompass modules installed by packages. LINUX_MAKE_FLAGS = \ HOSTCC="$(HOSTCC) $(HOST_CFLAGS) $(HOST_LDFLAGS)" \ ARCH=$(KERNEL_ARCH) \ @@ -526,6 +528,13 @@ define LINUX_INSTALL_TARGET_CMDS $(LINUX_INSTALL_HOST_TOOLS) endef +# Run depmod in a target-finalize hook, to encompass modules installed by +# packages. +define LINUX_RUN_DEPMOD + $(HOST_DIR)/sbin/depmod -a -b $(TARGET_DIR) $(LINUX_VERSION_PROBED) +endef +LINUX_TARGET_FINALIZE_HOOKS += LINUX_RUN_DEPMOD + # Include all our extensions. # # Note: our package infrastructure uses the full-path of the last-scanned