kernel: include built-in module list
authorTony Ambardar <itugrok@yahoo.com>
Mon, 4 Dec 2023 11:09:28 +0000 (03:09 -0800)
committerTony Ambardar <itugrok@yahoo.com>
Sat, 6 Jan 2024 16:34:17 +0000 (08:34 -0800)
Add modules.builtin to the kernel package for improved handling of loadable
and builtin modules. As with other distros, this allows 'modprobe <module>'
to consistently return success for both loaded/built-in modules, a useful
feature for presence-testing.

Given OpenWrt's few built-in modules, this change and related kmodloader
support add ~1 KB to the compressed image size.

Using sch_fq_codel (builtin) and sch_cake (loadable) for example:

     root@OpenWrt:/# modprobe sch_fq_codel && echo SUCCESS || echo FAIL
     SUCCESS
     root@OpenWrt:/# modprobe sch_cake && echo SUCCESS || echo FAIL
     SUCCESS

     root@OpenWrt:/# rmmod sch_fq_codel
     module is builtin

Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
package/kernel/linux/Makefile

index c88b5c1b3194199d896debc38767be5cac2e3345..b198882979e439a3f651e84cf6891780439580bd 100644 (file)
@@ -58,7 +58,9 @@ define Package/kernel
 endef
 
 define Package/kernel/install
-  # nothing to do
+       $(INSTALL_DIR) $(1)/$(MODULES_SUBDIR)
+       $(INSTALL_DATA) $(LINUX_DIR)/modules.builtin $(1)/$(MODULES_SUBDIR)
+       $(SED) 's,.*/,,' $(1)/$(MODULES_SUBDIR)/modules.builtin
 endef
 
 define Package/kernel/extra_provides