X-Git-Url: http://git.openwrt.org/?a=blobdiff_plain;f=include%2Fkernel.mk;h=86100d7859ed5edcb39322abede52e55b1edec57;hb=022cadd64e8a24818d15b22bc28f3460e0b2519c;hp=cbf342a0d2b7244bfa535913bba9fc25755f5009;hpb=43a3d87b8370872c5720b4bb6616b797486d38d8;p=openwrt%2Fstaging%2Fdedeckeh.git diff --git a/include/kernel.mk b/include/kernel.mk index cbf342a0d2..86100d7859 100644 --- a/include/kernel.mk +++ b/include/kernel.mk @@ -79,6 +79,25 @@ endef define ModuleAutoLoad $(SH_FUNC) \ export modules=; \ + probe_module() { \ + mods="$$$$$$$$1"; \ + boot="$$$$$$$$2"; \ + shift 2; \ + for mod in $$$$$$$$mods; do \ + if [ -e $(2)/$(MODULES_SUBDIR)/$$$$$$$$mod.ko ]; then \ + mkdir -p $(2)/etc/modules.d; \ + echo "$$$$$$$$mod" >> $(2)/etc/modules.d/$(1); \ + fi; \ + done; \ + if [ -e $(2)/etc/modules.d/$(1) ]; then \ + if [ "$$$$$$$$boot" = "1" ]; then \ + mkdir -p $(2)/etc/modules-boot.d; \ + ln -s ../modules.d/$(1) $(2)/etc/modules-boot.d/; \ + fi; \ + modules="$$$$$$$${modules:+$$$$$$$$modules}"; \ + fi; \ + dkl; \ + }; \ add_module() { \ priority="$$$$$$$$1"; \ mods="$$$$$$$$2"; \ @@ -176,9 +195,13 @@ $(call KernelPackage/$(1)/config) endif $(if $(CONFIG_PACKAGE_kmod-$(1)), else - compile: kmod-$(1)-unavailable - kmod-$(1)-unavailable: - @echo "WARNING: kmod-$(1) is not available in the kernel config" >&2 + compile: $(1)-disabled + $(1)-disabled: + @echo "WARNING: kmod-$(1) is not available in the kernel config - generating empty package" >&2 + + define Package/kmod-$(1)/install + true + endef ) endif $$(eval $$(call BuildPackage,kmod-$(1))) @@ -190,6 +213,10 @@ define AutoLoad add_module "$(1)" "$(2)" "$(3)"; endef +define AutoProbe + probe_module "$(1)" "$(2)"; +endef + version_field=$(if $(word $(1),$(2)),$(word $(1),$(2)),0) kernel_version_merge=$$(( ($(call version_field,1,$(1)) << 24) + ($(call version_field,2,$(1)) << 16) + ($(call version_field,3,$(1)) << 8) + $(call version_field,4,$(1)) ))