[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