[Buildroot] [PATCH] linux: run depmod only if modules directory exists
Paul Cercueil
paul at crapouillou.net
Wed Jun 24 21:20:01 UTC 2020
Hi Yann,
Le mer. 24 juin 2020 à 22:17, Yann E. MORIN <yann.morin.1998 at free.fr>
a écrit :
> Paul, All,
>
> On 2020-06-23 13:38 +0200, Paul Cercueil spake thusly:
>> If the modules directory that corresponds to the version of the
>> kernel
>> being built has been deleted, don't try to run depmod, which will
>> obviously fail.
>>
>> This can happen for instance when the modules are stripped from the
>> main
>> root filesystem, and placed into a separate filesystem image, so
>> that
>> the root filesystem and the kernel can be updated separately.
>
> I fail to see how this can happen, sine:
>
> - LINUX_RUN_DEPMOD is run as a TARGET_FINALIZE_HOOKS
>
> - TARGET_FINALIZE_HOOKS are run ultra-early in the target-finalize
> step, way before we run post-build scripts.
>
> So, how can you end up with a /lib/modules/VERSIO/ directory missing?
>
> (Note that I find your reason valid, I'm just curious to understand
> how
> this can happen before I apply the patch.)
In the first run, the modules folder is erased after LINUX_RUN_DEPMOD
is executed, yes. The problem is in successive runs, because then
LINUX_RUN_DEPMOD is still executed but the modules folder is gone and
is not re-installed unless the kernel package is rebuilt.
Cheers,
-Paul
> Regards,
> Yann E. MORIN.
>
>> Signed-off-by: Paul Cercueil <paul at crapouillou.net>
>> ---
>> linux/linux.mk | 3 ++-
>> 1 file changed, 2 insertions(+), 1 deletion(-)
>>
>> diff --git a/linux/linux.mk b/linux/linux.mk
>> index b90b032bb9..d31933fea1 100644
>> --- a/linux/linux.mk
>> +++ b/linux/linux.mk
>> @@ -490,7 +490,8 @@ endef
>> # Run depmod in a target-finalize hook, to encompass modules
>> installed by
>> # packages.
>> define LINUX_RUN_DEPMOD
>> - if grep -q "CONFIG_MODULES=y" $(LINUX_DIR)/.config; then \
>> + if test -d $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED) \
>> + && grep -q "CONFIG_MODULES=y" $(LINUX_DIR)/.config; then \
>> $(HOST_DIR)/sbin/depmod -a -b $(TARGET_DIR)
>> $(LINUX_VERSION_PROBED); \
>> fi
>> endef
>> --
>> 2.27.0
>>
>> _______________________________________________
>> buildroot mailing list
>> buildroot at busybox.net
>> http://lists.busybox.net/mailman/listinfo/buildroot
>
> --
> .-----------------.--------------------.------------------.--------------------.
> | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics'
> conspiracy: |
> | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___
> |
> | +33 561 099 427 `------------.-------: X AGAINST | \e/
> There is no |
> | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v
> conspiracy. |
> '------------------------------^-------^------------------^--------------------'
More information about the buildroot
mailing list