Changeset 946
- Timestamp:
- 10/17/06 02:10:39 (5 years ago)
- Files:
-
- trunk/freewrt/Config.in (modified) (1 diff)
- trunk/freewrt/mk/kernel-build.mk (added)
- trunk/freewrt/mk/kernel.mk (added)
- trunk/freewrt/mk/targets.mk (modified) (2 diffs)
- trunk/freewrt/target/Config.in (modified) (5 diffs)
- trunk/freewrt/target/linux/Makefile (modified) (1 diff)
- trunk/freewrt/target/linux/brcm-2.4/Makefile (modified) (1 diff)
- trunk/freewrt/target/linux/brcm-2.6/Config.in (added)
- trunk/freewrt/target/linux/brcm-2.6/Makefile (modified) (1 diff)
- trunk/freewrt/target/linux/brcm-2.6/jffs2 (added)
- trunk/freewrt/target/linux/brcm-2.6/jffs2/config (added)
- trunk/freewrt/target/linux/brcm-2.6/jffs2/config/config.jffs2 (added)
- trunk/freewrt/target/linux/brcm-2.6/jffs2/files (added)
- trunk/freewrt/target/linux/brcm-2.6/jffs2/files/sbin (added)
- trunk/freewrt/target/linux/brcm-2.6/jffs2/files/sbin/mount_root (added)
- trunk/freewrt/target/linux/brcm-2.6/squashfs-overlay (added)
- trunk/freewrt/target/linux/brcm-2.6/squashfs-overlay/config (added)
- trunk/freewrt/target/linux/brcm-2.6/squashfs-overlay/config/config.squashfs_overlay (added)
- trunk/freewrt/target/linux/brcm-2.6/squashfs-overlay/files (added)
- trunk/freewrt/target/linux/brcm-2.6/squashfs-overlay/files/etc (added)
- trunk/freewrt/target/linux/brcm-2.6/squashfs-overlay/files/etc/init.d (added)
- trunk/freewrt/target/linux/brcm-2.6/squashfs-overlay/files/etc/init.d/S20jffsclean (added)
- trunk/freewrt/target/linux/brcm-2.6/squashfs-overlay/files/sbin (added)
- trunk/freewrt/target/linux/brcm-2.6/squashfs-overlay/files/sbin/mount_root (added)
- trunk/freewrt/target/linux/brcm-2.6/squashfs-symlinks (added)
- trunk/freewrt/target/linux/brcm-2.6/squashfs-symlinks/config (added)
- trunk/freewrt/target/linux/brcm-2.6/squashfs-symlinks/config/config.squashfs_symlinks (added)
- trunk/freewrt/target/linux/brcm-2.6/squashfs-symlinks/files (added)
- trunk/freewrt/target/linux/brcm-2.6/squashfs-symlinks/files/etc (added)
- trunk/freewrt/target/linux/brcm-2.6/squashfs-symlinks/files/etc/init.d (added)
- trunk/freewrt/target/linux/brcm-2.6/squashfs-symlinks/files/sbin (added)
- trunk/freewrt/target/linux/brcm-2.6/squashfs-symlinks/files/sbin/mount_root (added)
- trunk/freewrt/target/linux/rb-2.4/Makefile (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/freewrt/Config.in
r943 r946 92 92 config FWRT_LINUX_2_4_BRCM 93 93 bool 94 config FWRT_LINUX_2_6_BRCM 95 bool 94 96 config FWRT_LINUX_2_4_RB 95 97 bool trunk/freewrt/mk/targets.mk
r943 r946 32 32 # netgear models 33 33 $(eval $(call target_template,2.4,brcm,netgear-wgt634u,2_4_BRCM_NETGEAR_WGT634U)) 34 $(eval $(call target_template,2.6,brcm,netgear-wgt634u,2_6_BRCM_NETGEAR_WGT634U)) 34 35 # routerboard models made by mikrotik 35 36 $(eval $(call target_template,2.4,rb,rb532,2_4_RB_RB532)) … … 55 56 endif 56 57 ifeq ($(KERNEL),2.6) 57 KERNEL_VERSION=2.6.1 758 KERNEL_VERSION=2.6.18 58 59 KERNEL_RELEASE=1 59 60 KERNEL_MOD_SUFFIX=ko trunk/freewrt/target/Config.in
r943 r946 12 12 prompt "Embedded Device" 13 13 source "target/linux/brcm-2.4/Config.in" 14 source "target/linux/brcm-2.6/Config.in" 14 15 source "target/linux/rb-2.4/Config.in" 15 16 endchoice … … 23 24 select FWRT_PACKAGE_FWCF 24 25 select FWRT_PACKAGE_JFFS2ROOT 25 depends on FWRT_LINUX_2_4_BRCM 26 depends on FWRT_LINUX_2_4_BRCM || FWRT_LINUX_2_6_BRCM 26 27 help 27 28 Build firmware images with a writable jffs2 root filesystem. … … 32 33 select FWRT_PACKAGE_FWCF 33 34 select FWRT_PACKAGE_JFFS2ROOT 34 depends on FWRT_LINUX_2_4_BRCM 35 depends on FWRT_LINUX_2_4_BRCM || FWRT_LINUX_2_6_BRCM 35 36 help 36 37 Build firmware images with a read-only and highly compressed … … 45 46 select FWRT_PACKAGE_FWCF 46 47 select FWRT_PACKAGE_JFFS2ROOT 47 depends on FWRT_LINUX_2_4_BRCM 48 depends on FWRT_LINUX_2_4_BRCM || FWRT_LINUX_2_6_BRCM 48 49 help 49 50 Build firmware images with a read-only and highly compressed … … 54 55 config FWRT_TARGET_ROOTFS_NFS 55 56 bool "root filesystem via NFS" 56 depends on FWRT_LINUX_2_4_RB || FWRT_LINUX_2_4_BRCM_NETGEAR_WGT634U 57 depends on FWRT_LINUX_2_4_RB || \ 58 FWRT_LINUX_2_4_BRCM_NETGEAR_WGT634U || \ 59 FWRT_LINUX_2_6_BRCM_NETGEAR_WGT634U 57 60 help 58 61 Use this option if you want to use a nfs-mounted root filesystem. trunk/freewrt/target/linux/Makefile
r934 r946 69 69 # netgear models 70 70 $(eval $(call kernel_template,2.4,brcm,netgear-wgt634u,2_4_BRCM_NETGEAR_WGT634U)) 71 $(eval $(call kernel_template,2.6,brcm,netgear-wgt634u,2_6_BRCM_NETGEAR_WGT634U)) 71 72 # routerboard models made by mikrotik 72 73 $(eval $(call kernel_template,2.4,rb,rb532,2_4_RB_RB532)) trunk/freewrt/target/linux/brcm-2.4/Makefile
r904 r946 11 11 LINUX_KERNEL_MD5SUM:=ab5940e952c3e337128b9f97c51eab94 12 12 13 KERNEL:=unknown 14 ifneq (,$(findstring 2.4.,$(LINUX_VERSION))) 15 KERNEL:=2.4 16 endif 17 ifneq (,$(findstring 2.6.,$(LINUX_VERSION))) 18 KERNEL:=2.6 19 endif 20 21 ifeq ($(KERNEL),2.6) 22 LINUX_KMOD_SUFFIX=ko 23 else 24 LINUX_KMOD_SUFFIX=o 25 endif 26 27 MODULES_SUBDIR := lib/modules/$(LINUX_VERSION) 28 LINUX_BUILD_DIR := $(BUILD_DIR)/linux-$(KERNEL)-$(BOARD) 29 LINUX_DIR := $(LINUX_BUILD_DIR)/linux-$(LINUX_VERSION) 30 LINUX_KERNEL := $(LINUX_BUILD_DIR)/vmlinux 31 LINUX_TARGET_DIR := $(LINUX_BUILD_DIR)/root 32 33 IPKG_KERNEL := IPKG_TMP=$(BUILD_DIR)/tmp IPKG_INSTROOT=$(LINUX_TARGET_DIR) IPKG_CONF_DIR=$(LINUX_BUILD_DIR) $(SCRIPT_DIR)/ipkg -force-defaults -force-depends 34 35 LINUX_KARCH:=$(shell echo $(ARCH) | sed -e 's/i[3-9]86/i386/' \ 36 -e 's/mipsel/mips/' \ 37 -e 's/mipseb/mips/' \ 38 -e 's/powerpc/ppc/' \ 39 -e 's/sh[234]/sh/' \ 40 -e 's/armeb/arm/' \ 41 ) 42 43 KPKG_MAKEOPTS := IPKG="$(IPKG_KERNEL)" \ 44 BOARD="$(BOARD)" \ 45 KERNEL="$(KERNEL)" \ 46 TARGET_DIR="$(LINUX_TARGET_DIR)" \ 47 LINUX_BUILD_DIR="$(LINUX_BUILD_DIR)" \ 48 LINUX_DIR="$(LINUX_DIR)" \ 49 LINUX_VERSION="$(LINUX_VERSION)" \ 50 LINUX_RELEASE="$(LINUX_RELEASE)" 51 52 KMOD_BUILD_DIR := $(LINUX_BUILD_DIR)/linux-modules 53 MODULES_DIR := $(LINUX_BUILD_DIR)/modules/$(MODULES_SUBDIR) 54 TARGET_MODULES_DIR := $(LINUX_TARGET_DIR)/$(MODULES_SUBDIR) 55 56 KERNEL_IPKG:=$(LINUX_BUILD_DIR)/kernel_$(BOARD)-$(KERNEL)-$(LINUX_VERSION)_$(ARCH).ipk 57 INSTALL_TARGETS:= 58 TARGETS:= 59 60 define KMOD_template 61 ifeq ($$(strip $(4)),) 62 KDEPEND_$(1):=m 63 else 64 KDEPEND_$(1):=$($(4)) 65 endif 66 67 IDEPEND_$(1):=kernel ($(BOARD)-$(KERNEL)-$(LINUX_VERSION)) $(foreach pkg,$(5),", $(pkg)") 68 69 PKG_$(1) := $(PACKAGE_DIR)/kmod-$(2)_$(LINUX_VERSION)-$(BOARD)-$(LINUX_RELEASE)_$(ARCH).ipk 70 I_$(1) := $(KMOD_BUILD_DIR)/ipkg/$(2) 71 72 ifeq ($$(KDEPEND_$(1)),m) 73 ifneq ($$(FWRT_PACKAGE_KMOD_$(1)),) 74 TARGETS+=$$(PKG_$(1)) 75 endif 76 ifeq ($$(FWRT_PACKAGE_KMOD_$(1)),y) 77 INSTALL_TARGETS+=$$(PKG_$(1)) 78 endif 79 endif 80 81 $$(PKG_$(1)): $(LINUX_DIR)/.modules-install 82 rm -rf $$(I_$(1)) 83 $(SCRIPT_DIR)/make-ipkg-dir.sh $$(I_$(1)) ../control/kmod-$(2).control $(LINUX_VERSION)-$(BOARD)-$(LINUX_RELEASE) $(ARCH) 84 echo "Depends: $$(IDEPEND_$(1))" >> $$(I_$(1))/CONTROL/control 85 ifneq ($(strip $(3)),) 86 mkdir -p $$(I_$(1))/lib/modules/$(LINUX_VERSION) 87 $(CP) $(3) $$(I_$(1))/lib/modules/$(LINUX_VERSION) 88 endif 89 ifneq ($(6),) 90 mkdir -p $$(I_$(1))/etc/modules.d 91 for module in $(7); do \ 92 echo $$$$module >> $$(I_$(1))/etc/modules.d/$(6)-$(2); \ 93 done 94 echo "#!/bin/sh" >> $$(I_$(1))/CONTROL/postinst 95 echo "if [ -z \"\$$$${IPKG_INSTROOT}\" ]; then" >> $$(I_$(1))/CONTROL/postinst 96 echo ". /etc/functions.sh" >> $$(I_$(1))/CONTROL/postinst 97 echo "load_modules /etc/modules.d/$(6)-$(2)" >> $$(I_$(1))/CONTROL/postinst 98 echo "fi" >> $$(I_$(1))/CONTROL/postinst 99 chmod 0755 $$(I_$(1))/CONTROL/postinst 100 endif 101 $(8) 102 $(IPKG_BUILD) $$(I_$(1)) $(PACKAGE_DIR) $(MAKE_TRACE) 103 endef 104 105 # include kernel configuration, first try model specific if exist 106 # otherwise use generic root filesystem specific for this board 107 108 # squashfs with mini-fo overlay 109 ifeq ($(FS),squashfs-overlay) 110 DEVICECONFIG:=$(shell test -f $(DEVICE)/config/config.squashfs_overlay && echo y 2>/dev/null) 111 ifneq ($(strip $(DEVICECONFIG)),) 112 include $(DEVICE)/config/config.squashfs_overlay 113 else 114 include $(FS)/config/config.squashfs_overlay 115 endif 116 endif 117 118 # squashfs with symlinks in a jffs2 partition 119 ifeq ($(FS),squashfs-symlinks) 120 DEVICECONFIG:=$(shell test -f $(DEVICE)/config/config.squashfs_symlinks && echo y 2>/dev/null) 121 ifneq ($(strip $(DEVICECONFIG)),) 122 include $(DEVICE)/config/config.squashfs_symlinks 123 else 124 include $(FS)/config/config.squashfs_symlinks 125 endif 126 endif 127 128 # jffs2 129 ifeq ($(FS),jffs2) 130 DEVICECONFIG:=$(shell test -f $(DEVICE)/config/config.jffs2 && echo y 2>/dev/null) 131 ifneq ($(strip $(DEVICECONFIG)),) 132 include $(DEVICE)/config/config.jffs2 133 else 134 include $(FS)/config/config.jffs2 135 endif 136 endif 137 138 13 include $(TOPDIR)/mk/kernel.mk 139 14 include $(TOPDIR)/mk/netfilter.mk 140 15 include $(TOPDIR)/mk/modules-$(KERNEL).mk 141 142 LINUX_SOURCE:=linux-$(LINUX_VERSION).tar.bz2 143 LINUX_SITE=http://www.us.kernel.org/pub/linux/kernel/v$(KERNEL) \ 144 http://www.us.kernel.org/pub/linux/kernel/v$(KERNEL) \ 145 http://www.kernel.org/pub/linux/kernel/v$(KERNEL) \ 146 http://www.de.kernel.org/pub/linux/kernel/v$(KERNEL) 147 148 KERNEL_IDIR:=$(LINUX_BUILD_DIR)/kernel-ipkg 149 150 $(TARGETS): $(PACKAGE_DIR) 151 152 $(PACKAGE_DIR): 153 @mkdir -p $(PACKAGE_DIR) 154 155 $(DL_DIR)/$(LINUX_SOURCE): 156 -mkdir -p $(DL_DIR) 157 @$(TRACE) target/linux/$(BOARD)-$(KERNEL)-kernel-download 158 $(SCRIPT_DIR)/download.pl $(DL_DIR) $(LINUX_SOURCE) $(LINUX_KERNEL_MD5SUM) $(LINUX_SITE) $(MAKE_TRACE) 159 160 $(LINUX_DIR)/.unpacked: $(DL_DIR)/$(LINUX_SOURCE) 161 @$(TRACE) target/linux/$(BOARD)-$(KERNEL)-kernel-prepare 162 -mkdir -p $(LINUX_BUILD_DIR) 163 bzcat $(DL_DIR)/$(LINUX_SOURCE) | (cd $(LINUX_BUILD_DIR); tar xf - ) 164 rm -f $(BUILD_DIR)/linux 165 ln -s $(LINUX_BUILD_DIR)/linux-$(LINUX_VERSION) $(BUILD_DIR)/linux 166 touch $@ 167 168 $(LINUX_DIR)/.patched: $(LINUX_DIR)/.unpacked 169 @$(TRACE) target/linux/$(BOARD)-$(KERNEL)-kernel-patch 170 -[ -d ../generic-$(KERNEL)/patches ] && $(PATCH) $(LINUX_DIR) ../generic-$(KERNEL)/patches $(MAKE_TRACE) 171 -[ -d ./patches ] && $(PATCH) $(LINUX_DIR) ./patches $(MAKE_TRACE) 172 -[ -d ./$(DEVICE)/patches ] && $(PATCH) $(LINUX_DIR) ./$(DEVICE)/patches $(MAKE_TRACE) 173 ifeq ($(FS),squashfs-overlay) 174 ifneq ($(strip $(DEVICECONFIG)),) 175 $(CP) $(DEVICE)/config/config.squashfs_overlay $(LINUX_DIR)/.config 176 else 177 $(CP) $(FS)/config/config.squashfs_overlay $(LINUX_DIR)/.config 178 endif 179 endif 180 ifeq ($(FS),squashfs-symlinks) 181 ifneq ($(strip $(DEVICECONFIG)),) 182 $(CP) $(DEVICE)/config/config.squashfs_symlinks $(LINUX_DIR)/.config 183 else 184 $(CP) $(FS)/config/config.squashfs_symlinks $(LINUX_DIR)/.config 185 endif 186 endif 187 ifeq ($(FS),jffs2) 188 ifneq ($(strip $(DEVICECONFIG)),) 189 $(CP) $(DEVICE)/config/config.jffs2 $(LINUX_DIR)/.config 190 else 191 $(CP) $(FS)/config/config.jffs2 $(LINUX_DIR)/.config 192 endif 193 endif 194 touch $@ 195 196 ifeq ($(KERNEL),2.4) 197 $(LINUX_DIR)/.configured: $(LINUX_DIR)/.patched 198 @$(TRACE) target/linux/$(BOARD)-$(KERNEL)-kernel-configure 199 $(SED) "s,^CROSS_COMPILE.*,CROSS_COMPILE=$(KERNEL_CROSS),g;" \ 200 $(LINUX_DIR)/Makefile \ 201 $(LINUX_DIR)/arch/*/Makefile 202 $(MAKE) -C $(LINUX_DIR) ARCH=$(LINUX_KARCH) oldconfig include/linux/compile.h include/linux/version.h $(MAKE_TRACE) 203 $(MAKE) -C $(LINUX_DIR) CROSS_COMPILE="$(KERNEL_CROSS)" ARCH=$(LINUX_KARCH) dep $(MAKE_TRACE) 204 touch $@ 205 else 206 $(LINUX_DIR)/.configured: $(LINUX_DIR)/.patched 207 @$(TRACE) target/linux/$(BOARD)-$(KERNEL)-kernel-configure 208 $(MAKE) -C $(LINUX_DIR) CROSS_COMPILE="$(KERNEL_CROSS)" ARCH=$(LINUX_KARCH) oldconfig prepare scripts $(MAKE_TRACE) 209 touch $@ 210 endif 211 212 $(LINUX_DIR)/vmlinux: $(LINUX_DIR)/.configured 213 @$(TRACE) target/linux/$(BOARD)-$(KERNEL)-kernel-compile 214 $(MAKE) -C $(LINUX_DIR) CROSS_COMPILE="$(KERNEL_CROSS)" ARCH=$(LINUX_KARCH) PATH=$(TARGET_PATH) $(MAKE_TRACE) 215 216 $(LINUX_KERNEL): $(LINUX_DIR)/vmlinux 217 @$(TRACE) target/linux/$(BOARD)-$(KERNEL)-kernel-strip 218 $(TARGET_CROSS)objcopy -O binary -R .reginfo -R .note -R .comment -R .mdebug -S $< $@ $(MAKE_TRACE) 219 touch -c $(LINUX_KERNEL) 220 221 $(LINUX_DIR)/.modules-compile: 222 @$(TRACE) target/linux/$(BOARD)-$(KERNEL)-modules-compile 223 $(MAKE) -C "$(LINUX_DIR)" CROSS_COMPILE="$(KERNEL_CROSS)" ARCH=$(LINUX_KARCH) PATH="$(TARGET_PATH)" modules $(MAKE_TRACE) 224 touch $@ 225 226 $(LINUX_DIR)/.modules-install: $(LINUX_DIR)/.modules-compile 227 @$(TRACE) target/linux/$(BOARD)-$(KERNEL)-modules-install 228 rm -rf $(LINUX_BUILD_DIR)/modules 229 $(MAKE) -C "$(LINUX_DIR)" CROSS_COMPILE="$(KERNEL_CROSS)" DEPMOD=true INSTALL_MOD_PATH=$(LINUX_BUILD_DIR)/modules modules_install $(MAKE_TRACE) 230 touch $@ 231 232 $(LINUX_DIR)/.linux-compile: $(LINUX_KERNEL) $(LINUX_DIR)/.modules-install 233 @$(TRACE) target/linux/$(BOARD)-$(KERNEL)-create-packages 234 @$(MAKE) $(KERNEL_IPKG) $(TARGETS) $(MAKE_TRACE) 235 touch $@ 236 237 $(KERNEL_IPKG): 238 @$(TRACE) target/linux/$(BOARD)-$(KERNEL)-$(DEVICE)-$(FS)-create-kernel-package 239 rm -rf $(KERNEL_IDIR) 240 mkdir -p $(KERNEL_IDIR)/etc 241 $(SCRIPT_DIR)/make-ipkg-dir.sh $(KERNEL_IDIR) ../control/kernel.control $(BOARD)-$(KERNEL)-$(LINUX_VERSION) $(ARCH) 242 $(IPKG_BUILD) $(KERNEL_IDIR) $(PACKAGE_DIR) $(MAKE_TRACE) 243 244 245 prepare: 246 -mkdir -p $(PACKAGE_DIR) 247 248 compile: prepare $(LINUX_DIR)/.linux-compile 249 compile-kernel: prepare $(LINUX_KERNEL) 250 251 install: compile 252 $(MAKE) $(KPKG_MAKEOPTS) $(LINUX_KERNEL) $(MAKE_TRACE) 253 @$(TRACE) target/linux/$(BOARD)-$(KERNEL)-modules-install 254 @rm -rf $(LINUX_BUILD_DIR)/root* 255 @$(CP) $(BUILD_DIR)/root $(LINUX_BUILD_DIR)/ 256 echo -e 'dest root /\noption offline_root $(LINUX_BUILD_DIR)/root' > $(LINUX_BUILD_DIR)/ipkg.conf 257 ifneq ($(strip $(INSTALL_TARGETS)),) 258 $(IPKG_KERNEL) install $(INSTALL_TARGETS) $(MAKE_TRACE) 259 endif 260 261 rebuild: 262 @$(TRACE) target/linux/$(BOARD)-$(KERNEL)-rebuild 263 rm -rf $(LINUX_BUILD_DIR)/linux-$(LINUX_VERSION) 264 rm -f $(TARGETS) 265 $(MAKE) compile $(MAKE_TRACE) 266 267 clean: 268 rm -rf $(LINUX_BUILD_DIR) 269 rm -f $(TARGETS) 16 include $(TOPDIR)/mk/kernel-build.mk trunk/freewrt/target/linux/brcm-2.6/Makefile
r1 r946 1 # $FreeWRT$ 2 #- 3 # This file is part of the FreeWRT project. FreeWRT is copyrighted 4 # material, please see the LICENCE file in the top-level directory 5 # or at http://www.freewrt.org/license for details. 6 1 7 include $(TOPDIR)/rules.mk 2 3 LINUX_VERSION:=2.6.16.7 4 LINUX_RELEASE:=1 5 LINUX_KERNEL_MD5SUM:=9682b2bd6e02f3087982d7c3f5ba824e 6 7 include ../rules.mk 8 include ./config 9 10 include ../generic-$(KERNEL)/modules.mk 11 include ../kernel.mk 12 13 14 $(LINUX_DIR)/.patched: $(LINUX_DIR)/.unpacked 15 [ -d ../generic-$(KERNEL)/patches ] && $(PATCH) $(LINUX_DIR) ../generic-$(KERNEL)/patches $(MAKE_TRACE) 16 [ -d ./patches ] && $(PATCH) $(LINUX_DIR) ./patches $(MAKE_TRACE) 17 @$(CP) config $(LINUX_DIR)/.config 18 touch $@ 19 8 include $(TOPDIR)/mk/kernel.mk 9 include $(TOPDIR)/mk/netfilter.mk 10 include $(TOPDIR)/mk/modules-$(KERNEL).mk 11 include $(TOPDIR)/mk/kernel-build.mk trunk/freewrt/target/linux/rb-2.4/Makefile
r934 r946 11 11 LINUX_KERNEL_MD5SUM:=ab5940e952c3e337128b9f97c51eab94 12 12 13 KERNEL:=unknown 14 ifneq (,$(findstring 2.4.,$(LINUX_VERSION))) 15 KERNEL:=2.4 16 endif 17 ifneq (,$(findstring 2.6.,$(LINUX_VERSION))) 18 KERNEL:=2.6 19 endif 20 21 ifeq ($(KERNEL),2.6) 22 LINUX_KMOD_SUFFIX=ko 23 else 24 LINUX_KMOD_SUFFIX=o 25 endif 26 27 MODULES_SUBDIR := lib/modules/$(LINUX_VERSION) 28 LINUX_BUILD_DIR := $(BUILD_DIR)/linux-$(KERNEL)-$(BOARD) 29 LINUX_DIR := $(LINUX_BUILD_DIR)/linux-$(LINUX_VERSION) 30 LINUX_KERNEL := $(LINUX_BUILD_DIR)/vmlinux 31 LINUX_TARGET_DIR := $(LINUX_BUILD_DIR)/root 32 33 IPKG_KERNEL := IPKG_TMP=$(BUILD_DIR)/tmp IPKG_INSTROOT=$(LINUX_TARGET_DIR) IPKG_CONF_DIR=$(LINUX_BUILD_DIR) $(SCRIPT_DIR)/ipkg -force-defaults -force-depends 34 35 LINUX_KARCH:=$(shell echo $(ARCH) | sed -e 's/i[3-9]86/i386/' \ 36 -e 's/mipsel/mips/' \ 37 -e 's/mipseb/mips/' \ 38 -e 's/powerpc/ppc/' \ 39 -e 's/sh[234]/sh/' \ 40 -e 's/armeb/arm/' \ 41 ) 42 43 KPKG_MAKEOPTS := IPKG="$(IPKG_KERNEL)" \ 44 BOARD="$(BOARD)" \ 45 KERNEL="$(KERNEL)" \ 46 TARGET_DIR="$(LINUX_TARGET_DIR)" \ 47 LINUX_BUILD_DIR="$(LINUX_BUILD_DIR)" \ 48 LINUX_DIR="$(LINUX_DIR)" \ 49 LINUX_VERSION="$(LINUX_VERSION)" \ 50 LINUX_RELEASE="$(LINUX_RELEASE)" 51 52 KMOD_BUILD_DIR := $(LINUX_BUILD_DIR)/linux-modules 53 MODULES_DIR := $(LINUX_BUILD_DIR)/modules/$(MODULES_SUBDIR) 54 TARGET_MODULES_DIR := $(LINUX_TARGET_DIR)/$(MODULES_SUBDIR) 55 56 KERNEL_IPKG:=$(LINUX_BUILD_DIR)/kernel_$(BOARD)-$(KERNEL)-$(MODEL)-$(FS)-$(LINUX_VERSION)-$(LINUX_RELEASE)_$(ARCH).ipk 57 INSTALL_TARGETS:= 58 TARGETS:= 59 60 define KMOD_template 61 ifeq ($$(strip $(4)),) 62 KDEPEND_$(1):=m 63 else 64 KDEPEND_$(1):=$($(4)) 65 endif 66 67 IDEPEND_$(1):=kernel ($(LINUX_VERSION)-$(BOARD)-$(LINUX_RELEASE)) $(foreach pkg,$(5),", $(pkg)") 68 69 PKG_$(1) := $(PACKAGE_DIR)/kmod-$(2)_$(LINUX_VERSION)-$(BOARD)-$(LINUX_RELEASE)_$(ARCH).ipk 70 I_$(1) := $(KMOD_BUILD_DIR)/ipkg/$(2) 71 72 ifeq ($$(KDEPEND_$(1)),m) 73 ifneq ($$(FWRT_PACKAGE_KMOD_$(1)),) 74 TARGETS+=$$(PKG_$(1)) 75 endif 76 ifeq ($$(FWRT_PACKAGE_KMOD_$(1)),y) 77 INSTALL_TARGETS+=$$(PKG_$(1)) 78 endif 79 endif 80 81 $$(PKG_$(1)): $(LINUX_DIR)/.modules-install 82 rm -rf $$(I_$(1)) 83 $(SCRIPT_DIR)/make-ipkg-dir.sh $$(I_$(1)) ../control/kmod-$(2).control $(LINUX_VERSION)-$(BOARD)-$(LINUX_RELEASE) $(ARCH) 84 echo "Depends: $$(IDEPEND_$(1))" >> $$(I_$(1))/CONTROL/control 85 ifneq ($(strip $(3)),) 86 mkdir -p $$(I_$(1))/lib/modules/$(LINUX_VERSION) 87 $(CP) $(3) $$(I_$(1))/lib/modules/$(LINUX_VERSION) 88 endif 89 ifneq ($(6),) 90 mkdir -p $$(I_$(1))/etc/modules.d 91 for module in $(7); do \ 92 echo $$$$module >> $$(I_$(1))/etc/modules.d/$(6)-$(2); \ 93 done 94 echo "#!/bin/sh" >> $$(I_$(1))/CONTROL/postinst 95 echo "if [ -z \"\$$$${IPKG_INSTROOT}\" ]; then" >> $$(I_$(1))/CONTROL/postinst 96 echo ". /etc/functions.sh" >> $$(I_$(1))/CONTROL/postinst 97 echo "load_modules /etc/modules.d/$(6)-$(2)" >> $$(I_$(1))/CONTROL/postinst 98 echo "fi" >> $$(I_$(1))/CONTROL/postinst 99 chmod 0755 $$(I_$(1))/CONTROL/postinst 100 endif 101 $(8) 102 $(IPKG_BUILD) $$(I_$(1)) $(PACKAGE_DIR) $(MAKE_TRACE) 103 endef 104 105 # include kernel configuration, first try model specific if exist 106 # otherwise use generic root filesystem specific for this board 107 108 # squashfs with mini-fo overlay 109 ifeq ($(FS),squashfs-overlay) 110 MODELCONFIG:=$(shell test -f $(MODEL)/config/config.squashfs_overlay && echo y 2>/dev/null) 111 ifneq ($(strip $(MODELCONFIG)),) 112 include $(MODEL)/config/config.squashfs_overlay 113 else 114 include $(FS)/config/config.squashfs_overlay 115 endif 116 endif 117 118 # squashfs with symlinks in a jffs2 partition 119 ifeq ($(FS),squashfs-symlinks) 120 MODELCONFIG:=$(shell test -f $(MODEL)/config/config.squashfs_symlinks && echo y 2>/dev/null) 121 ifneq ($(strip $(MODELCONFIG)),) 122 include $(MODEL)/config/config.squashfs_symlinks 123 else 124 include $(FS)/config/config.squashfs_symlinks 125 endif 126 endif 127 128 # jffs2 129 ifeq ($(FS),jffs2) 130 MODELCONFIG:=$(shell test -f $(MODEL)/config/config.jffs2 && echo y 2>/dev/null) 131 ifneq ($(strip $(MODELCONFIG)),) 132 include $(MODEL)/config/config.jffs2 133 else 134 include $(FS)/config/config.jffs2 135 endif 136 endif 137 138 # nfs root 139 ifeq ($(FS),nfs) 140 MODELCONFIG:=$(shell test -f $(MODEL)/config/config.nfs && echo y 2>/dev/null) 141 ifneq ($(strip $(MODELCONFIG)),) 142 include $(MODEL)/config/config.nfs 143 else 144 include $(FS)/config/config.nfs 145 endif 146 endif 147 148 # ext2 for booting from cf-disk 149 ifeq ($(FS),ext2) 150 MODELCONFIG:=$(shell test -f $(MODEL)/config/config.ext2 && echo y 2>/dev/null) 151 ifneq ($(strip $(MODELCONFIG)),) 152 include $(MODEL)/config/config.ext2 153 else 154 include $(FS)/config/config.ext2 155 endif 156 endif 157 13 include $(TOPDIR)/mk/kernel.mk 158 14 include $(TOPDIR)/mk/netfilter.mk 159 15 include $(TOPDIR)/mk/modules-$(KERNEL).mk 160 161 LINUX_SOURCE:=linux-$(LINUX_VERSION).tar.bz2 162 LINUX_SITE=http://www.us.kernel.org/pub/linux/kernel/v$(KERNEL) \ 163 http://www.us.kernel.org/pub/linux/kernel/v$(KERNEL) \ 164 http://www.kernel.org/pub/linux/kernel/v$(KERNEL) \ 165 http://www.de.kernel.org/pub/linux/kernel/v$(KERNEL) 166 167 KERNEL_IDIR:=$(LINUX_BUILD_DIR)/kernel-ipkg 168 169 $(TARGETS): $(PACKAGE_DIR) 170 171 $(PACKAGE_DIR): 172 @mkdir -p $(PACKAGE_DIR) 173 174 $(DL_DIR)/$(LINUX_SOURCE): 175 -mkdir -p $(DL_DIR) 176 @$(TRACE) target/linux/$(BOARD)-$(KERNEL)-kernel-download 177 $(SCRIPT_DIR)/download.pl $(DL_DIR) $(LINUX_SOURCE) $(LINUX_KERNEL_MD5SUM) $(LINUX_SITE) $(MAKE_TRACE) 178 179 $(LINUX_DIR)/.unpacked: $(DL_DIR)/$(LINUX_SOURCE) 180 @$(TRACE) target/linux/$(BOARD)-$(KERNEL)-kernel-prepare 181 -mkdir -p $(LINUX_BUILD_DIR) 182 bzcat $(DL_DIR)/$(LINUX_SOURCE) | (cd $(LINUX_BUILD_DIR); tar xf - ) 183 rm -f $(BUILD_DIR)/linux 184 ln -s $(LINUX_BUILD_DIR)/linux-$(LINUX_VERSION) $(BUILD_DIR)/linux 185 touch $@ 186 187 $(LINUX_DIR)/.patched: $(LINUX_DIR)/.unpacked 188 @$(TRACE) target/linux/$(BOARD)-$(KERNEL)-kernel-patch 189 -[ -d ../generic-$(KERNEL)/patches ] && $(PATCH) $(LINUX_DIR) ../generic-$(KERNEL)/patches $(MAKE_TRACE) 190 -[ -d ./patches ] && $(PATCH) $(LINUX_DIR) ./patches $(MAKE_TRACE) 191 -[ -d ./$(MODEL)/patches ] && $(PATCH) $(LINUX_DIR) ./$(MODEL)/patches $(MAKE_TRACE) 192 ifeq ($(FS),squashfs-overlay) 193 ifneq ($(strip $(MODELCONFIG)),) 194 $(CP) $(MODEL)/config/config.squashfs_overlay $(LINUX_DIR)/.config 195 else 196 $(CP) $(FS)/config/config.squashfs_overlay $(LINUX_DIR)/.config 197 endif 198 endif 199 ifeq ($(FS),squashfs-symlinks) 200 ifneq ($(strip $(MODELCONFIG)),) 201 $(CP) $(MODEL)/config/config.squashfs_symlinks $(LINUX_DIR)/.config 202 else 203 $(CP) $(FS)/config/config.squashfs_symlinks $(LINUX_DIR)/.config 204 endif 205 endif 206 ifeq ($(FS),jffs2) 207 ifneq ($(strip $(MODELCONFIG)),) 208 $(CP) $(MODEL)/config/config.jffs2 $(LINUX_DIR)/.config 209 else 210 $(CP) $(FS)/config/config.jffs2 $(LINUX_DIR)/.config 211 endif 212 endif 213 ifeq ($(FS),nfs) 214 ifneq ($(strip $(MODELCONFIG)),) 215 $(CP) $(MODEL)/config/config.nfs $(LINUX_DIR)/.config 216 else 217 $(CP) $(FS)/config/config.nfs $(LINUX_DIR)/.config 218 endif 219 endif 220 ifeq ($(FS),ext2) 221 ifneq ($(strip $(MODELCONFIG)),) 222 $(CP) $(MODEL)/config/config.ext2 $(LINUX_DIR)/.config 223 else 224 $(CP) $(FS)/config/config.ext2 $(LINUX_DIR)/.config 225 endif 226 endif 227 touch $@ 228 229 ifeq ($(KERNEL),2.4) 230 $(LINUX_DIR)/.configured: $(LINUX_DIR)/.patched 231 @$(TRACE) target/linux/$(BOARD)-$(KERNEL)-kernel-configure 232 $(SED) "s,^CROSS_COMPILE.*,CROSS_COMPILE=$(KERNEL_CROSS),g;" \ 233 $(LINUX_DIR)/Makefile \ 234 $(LINUX_DIR)/arch/*/Makefile 235 $(MAKE) -C $(LINUX_DIR) ARCH=$(LINUX_KARCH) oldconfig include/linux/compile.h include/linux/version.h $(MAKE_TRACE) 236 $(MAKE) -C $(LINUX_DIR) CROSS_COMPILE="$(KERNEL_CROSS)" ARCH=$(LINUX_KARCH) dep $(MAKE_TRACE) 237 touch $@ 238 else 239 $(LINUX_DIR)/.configured: $(LINUX_DIR)/.patched 240 @$(TRACE) target/linux/$(BOARD)-$(KERNEL)-kernel-configure 241 $(MAKE) -C $(LINUX_DIR) CROSS_COMPILE="$(KERNEL_CROSS)" ARCH=$(LINUX_KARCH) oldconfig prepare scripts $(MAKE_TRACE) 242 touch $@ 243 endif 244 245 $(LINUX_DIR)/vmlinux: $(LINUX_DIR)/.configured 246 @$(TRACE) target/linux/$(BOARD)-$(KERNEL)-kernel-compile 247 $(MAKE) -C $(LINUX_DIR) CROSS_COMPILE="$(KERNEL_CROSS)" ARCH=$(LINUX_KARCH) PATH=$(TARGET_PATH) $(MAKE_TRACE) 248 249 $(LINUX_KERNEL): $(LINUX_DIR)/vmlinux 250 @$(TRACE) target/linux/$(BOARD)-$(KERNEL)-kernel-strip 251 $(TARGET_CROSS)objcopy -O binary -R .reginfo -R .note -R .comment -R .mdebug -S $< $@ $(MAKE_TRACE) 252 touch -c $(LINUX_KERNEL) 253 254 $(LINUX_DIR)/.modules-compile: 255 @$(TRACE) target/linux/$(BOARD)-$(KERNEL)-modules-compile 256 $(MAKE) -C "$(LINUX_DIR)" CROSS_COMPILE="$(KERNEL_CROSS)" ARCH=$(LINUX_KARCH) PATH="$(TARGET_PATH)" modules $(MAKE_TRACE) 257 touch $@ 258 259 $(LINUX_DIR)/.modules-install: $(LINUX_DIR)/.modules-compile 260 @$(TRACE) target/linux/$(BOARD)-$(KERNEL)-modules-install 261 rm -rf $(LINUX_BUILD_DIR)/modules 262 $(MAKE) -C "$(LINUX_DIR)" CROSS_COMPILE="$(KERNEL_CROSS)" DEPMOD=true INSTALL_MOD_PATH=$(LINUX_BUILD_DIR)/modules modules_install $(MAKE_TRACE) 263 touch $@ 264 265 $(LINUX_DIR)/.linux-compile: $(LINUX_KERNEL) $(LINUX_DIR)/.modules-install 266 @$(TRACE) target/linux/$(BOARD)-$(KERNEL)-create-packages 267 @$(MAKE) $(KERNEL_IPKG) $(TARGETS) $(MAKE_TRACE) 268 touch $@ 269 270 $(KERNEL_IPKG): 271 @$(TRACE) target/linux/$(BOARD)-$(KERNEL)-$(MODEL)-$(FS)-create-kernel-package 272 rm -rf $(KERNEL_IDIR) 273 mkdir -p $(KERNEL_IDIR)/etc 274 $(CP) ../control/kernel.control \ 275 $(BUILD_DIR)/linux/kernel-$(BOARD)-$(KERNEL)-$(MODEL)-$(FS).control 276 $(SED) "s/kernel/kernel-$(BOARD)-$(KERNEL)-$(MODEL)-$(FS)/" \ 277 $(BUILD_DIR)/linux/kernel-$(BOARD)-$(KERNEL)-$(MODEL)-$(FS).control 278 $(SCRIPT_DIR)/make-ipkg-dir.sh $(KERNEL_IDIR) $(BUILD_DIR)/linux/kernel-$(BOARD)-$(KERNEL)-$(MODEL)-$(FS).control $(LINUX_VERSION)-$(BOARD)-$(LINUX_RELEASE) $(ARCH) 279 $(IPKG_BUILD) $(KERNEL_IDIR) $(PACKAGE_DIR) $(MAKE_TRACE) 280 281 282 prepare: 283 -mkdir -p $(PACKAGE_DIR) 284 285 compile: prepare $(LINUX_DIR)/.linux-compile 286 compile-kernel: prepare $(LINUX_KERNEL) 287 288 install: compile 289 $(MAKE) $(KPKG_MAKEOPTS) $(LINUX_KERNEL) $(MAKE_TRACE) 290 @$(TRACE) target/linux/$(BOARD)-$(KERNEL)-modules-install 291 @rm -rf $(LINUX_BUILD_DIR)/root* 292 @$(CP) $(BUILD_DIR)/root $(LINUX_BUILD_DIR)/ 293 echo -e 'dest root /\noption offline_root $(LINUX_BUILD_DIR)/root' > $(LINUX_BUILD_DIR)/ipkg.conf 294 ifneq ($(strip $(INSTALL_TARGETS)),) 295 $(IPKG_KERNEL) install $(INSTALL_TARGETS) $(MAKE_TRACE) 296 endif 297 298 rebuild: 299 @$(TRACE) target/linux/$(BOARD)-$(KERNEL)-rebuild 300 rm -rf $(LINUX_BUILD_DIR)/linux-$(LINUX_VERSION) 301 rm -f $(TARGETS) 302 $(MAKE) compile $(MAKE_TRACE) 303 304 clean: 305 rm -rf $(LINUX_BUILD_DIR) 306 rm -f $(TARGETS) 16 include $(TOPDIR)/mk/kernel-build.mk


