X-Git-Url: http://git.rohieb.name/openwrt.git/blobdiff_plain/378a89660ea7f2c85a6e3a765898872788a838d1..06d197404bab910c2d4c184210b27a1e0f73d6a2:/include/kernel.mk diff --git a/include/kernel.mk b/include/kernel.mk index 9e94dce3b..c0d8ef8a2 100644 --- a/include/kernel.mk +++ b/include/kernel.mk @@ -13,6 +13,7 @@ ifeq ($(DUMP),1) KERNEL?= BOARD?= LINUX_VERSION?= + LINUX_VERMAGIC?= else ifeq ($(CONFIG_EXTERNAL_TOOLCHAIN),) export GCC_HONOUR_COPTS=s @@ -35,6 +36,9 @@ else KERNEL_BUILD_DIR ?= $(BUILD_DIR_BASE)/linux-$(BOARD)$(if $(SUBTARGET),_$(SUBTARGET))$(if $(BUILD_SUFFIX),_$(BUILD_SUFFIX)) LINUX_DIR ?= $(KERNEL_BUILD_DIR)/linux-$(LINUX_VERSION) + LINUX_VERMAGIC:=$(strip $(shell cat $(LINUX_DIR)/.vermagic 2>/dev/null)) + LINUX_VERMAGIC:=$(if $(LINUX_VERMAGIC),$(LINUX_VERMAGIC),unknown) + LINUX_UNAME_VERSION:=$(if $(word 3,$(subst ., ,$(KERNEL_BASE))),$(KERNEL_BASE),$(KERNEL_BASE).0) ifneq ($(findstring -rc,$(LINUX_VERSION)),) LINUX_UNAME_VERSION:=$(LINUX_UNAME_VERSION)-$(strip $(lastword $(subst -, ,$(LINUX_VERSION)))) @@ -90,7 +94,8 @@ define ModuleAutoLoad done; \ if [ -e $(2)/etc/modules.d/$$$$$$$$priority-$(1) ]; then \ if [ "$$$$$$$$boot" = "1" ]; then \ - echo '# May be required for rootfs' >> $(2)/etc/modules.d/$$$$$$$$priority-$(1); \ + mkdir -p $(2)/etc/modules-boot.d; \ + ln -s ../modules.d/$$$$$$$$priority-$(1) $(2)/etc/modules-boot.d/; \ fi; \ modules="$$$$$$$${modules:+$$$$$$$$modules }$$$$$$$$priority-$(1)"; \ fi; \ @@ -129,7 +134,7 @@ define KernelPackage SECTION:=kernel CATEGORY:=Kernel modules DESCRIPTION:=$(DESCRIPTION) - EXTRA_DEPENDS:=kernel (=$(LINUX_VERSION)-$(LINUX_RELEASE)) + EXTRA_DEPENDS:=kernel (=$(LINUX_VERSION)-$(LINUX_RELEASE)-$(LINUX_VERMAGIC)) VERSION:=$(LINUX_VERSION)$(if $(PKG_VERSION),+$(PKG_VERSION))-$(if $(PKG_RELEASE),$(PKG_RELEASE),$(LINUX_RELEASE)) $(call KernelPackage/$(1)) $(call KernelPackage/$(1)/$(BOARD)) @@ -156,8 +161,15 @@ $(call KernelPackage/$(1)/config) if [ -e $$$$$$$$mod ]; then \ mkdir -p $$(1)/$(MODULES_SUBDIR) ; \ $(CP) -L $$$$$$$$mod $$(1)/$(MODULES_SUBDIR)/ ; \ + elif [ -e "$(LINUX_DIR)/modules.builtin" ]; then \ + if grep -q "$$$$$$$${mod##$(LINUX_DIR)/}" "$(LINUX_DIR)/modules.builtin"; then \ + echo "NOTICE: module '$$$$$$$$mod' is built-in."; \ + else \ + echo "ERROR: module '$$$$$$$$mod' is missing."; \ + exit 1; \ + fi; \ else \ - echo "WARNING: module '$$$$$$$$mod' does not exist, is it built-in?" ; \ + echo "WARNING: module '$$$$$$$$mod' missing and modules.builtin not available, assuming built-in."; \ fi; \ done; $(call ModuleAutoLoad,$(1),$$(1),$(AUTOLOAD))