diff --git a/include/package-ipkg.mk b/include/package-ipkg.mk
index 20361de9e890e48dff192240c68a85db5d52f564..73fed05b173d9a987383aa663b3016484494cb6d 100644
--- a/include/package-ipkg.mk
+++ b/include/package-ipkg.mk
@@ -128,12 +128,12 @@ ifeq ($(DUMP),)
 	$(call Package/$(1)/install,$$(IDIR_$(1)))
 	-find $$(IDIR_$(1)) -name 'CVS' -o -name '.svn' -o -name '.#*' -o -name '*~'| $(XARGS) rm -rf
 	@( \
-		find $$(IDIR_$(1)) -name lib\*.so\* | awk -F/ '{ print $$$$NF }'; \
+		find $$(IDIR_$(1)) -name lib\*.so\* -or -name \*.ko | awk -F/ '{ print $$$$NF }'; \
 		for file in $$(patsubst %,$(PKG_INFO_DIR)/%.provides,$$(IDEPEND_$(1))); do \
 			if [ -f "$$$$file" ]; then \
 				cat $$$$file; \
 			fi; \
-		done; \
+		done; $(Package/$(1)/extra_provides) \
 	) | sort -u > $(PKG_INFO_DIR)/$(1).provides
 	$(if $(PROVIDES),@for pkg in $(PROVIDES); do cp $(PKG_INFO_DIR)/$(1).provides $(PKG_INFO_DIR)/$$$$pkg.provides; done)
 	$(CheckDependencies)
diff --git a/package/kernel/linux/Makefile b/package/kernel/linux/Makefile
index d44b5a7767d8237994b60fb9f530ad03509b4814..4ca442f2a5b86f8999842b74185508e3f8adcaee 100644
--- a/package/kernel/linux/Makefile
+++ b/package/kernel/linux/Makefile
@@ -46,6 +46,10 @@ define Package/kernel/install
   # nothing to do
 endef
 
+define Package/kernel/extra_provides
+	sed -e 's,.*/,,' $(LINUX_DIR)/modules.builtin;
+endef
+
 $(eval $(if $(DUMP),,$(call BuildPackage,kernel)))
 
 include $(sort $(wildcard ./modules/*.mk))