From 487e21cff69b30b404146b2ffb46959a728a4002 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sat, 3 Apr 2010 18:46:46 +0200 Subject: New, simpler, infrastructure for building the Linux kernel This patch introduces a single, simple, infrastructure to build the Linux kernel. The configuration is limited to : * Kernel version: a fixed recent stable version, same as kernel headers version (for internal toolchains only), custom stable version, or custom tarball URL * Kernel patch: either a local file, directory or an URL * Kernel configuration: either the name of a defconfig or the location of a custom configuration file * Kernel image: either uImage, bzImage, zImage or vmlinux. Signed-off-by: Thomas Petazzoni --- Config.in | 2 +- Makefile | 1 + linux/Config.in | 133 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ linux/linux.mk | 118 +++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 253 insertions(+), 1 deletion(-) create mode 100644 linux/Config.in create mode 100644 linux/linux.mk diff --git a/Config.in b/Config.in index f5eb85907..0a07576da 100644 --- a/Config.in +++ b/Config.in @@ -295,4 +295,4 @@ source "fs/Config.in" source "boot/Config.in" -source "target/Config.in" +source "linux/Config.in" diff --git a/Makefile b/Makefile index 7e00b657e..3bf23d9c4 100644 --- a/Makefile +++ b/Makefile @@ -323,6 +323,7 @@ endif include boot/common.mk include target/Makefile.in +include linux/linux.mk include fs/common.mk TARGETS+=erase-fakeroots diff --git a/linux/Config.in b/linux/Config.in new file mode 100644 index 000000000..d8a5157e2 --- /dev/null +++ b/linux/Config.in @@ -0,0 +1,133 @@ +menu "Kernel" + +config BR2_LINUX_KERNEL + bool "Linux Kernel" + help + Enable this option if you want to build a Linux kernel for + your embedded device + +if BR2_LINUX_KERNEL + +# +# Version selection. We provide the choice between: +# +# 1. A single fairly recent stable kernel version +# 2. In case an internal toolchain has been built, the same kernel +# version as the kernel headers +# 3. A custom stable version +# 4. A custom tarball +# +choice + prompt "Kernel version" + default BR2_LINUX_KERNEL_2_6_34 + +config BR2_LINUX_KERNEL_2_6_34 + bool "2.6.34" + +config BR2_LINUX_KERNEL_SAME_AS_HEADERS + bool "Same as toolchain kernel headers" + depends on BR2_TOOLCHAIN_BUILDROOT + help + This option will re-use the same kernel sources as the one + that have been used for the kernel headers of the + cross-compiling toolchain. Having the same version for the + kernel running on the system and for the kernel headers is + not a requirement, but using the same version allows to + download only one tarball of the kernel sources. + +config BR2_LINUX_KERNEL_CUSTOM_VERSION + bool "Custom version" + help + This option allows to use a specific 2.6.x or 2.6.x.y + official versions, as available on kernel.org + +config BR2_LINUX_KERNEL_CUSTOM_TARBALL + bool "Custom tarball" + help + This option allows to specify the http or ftp location of a + specific kernel source tarball + +endchoice + +config BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE + string "Kernel version" + depends on BR2_LINUX_KERNEL_CUSTOM_VERSION + default "2.6.34" + +config BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION + string "URL of custom kernel tarball" + depends on BR2_LINUX_KERNEL_CUSTOM_TARBALL + +config BR2_LINUX_KERNEL_VERSION + string + default "2.6.34" if BR2_LINUX_KERNEL_2_6_34 + default BR2_DEFAULT_KERNEL_HEADERS if BR2_LINUX_KERNEL_SAME_AS_HEADERS + default BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE if BR2_LINUX_KERNEL_CUSTOM_VERSION + default "custom" if BR2_LINUX_KERNEL_CUSTOM_TARBALL + +# +# Patch selection +# + +config BR2_LINUX_KERNEL_PATCH + string "Custom kernel patch" + help + The location can be an URL, a file path, or a directory. In + the case of a directory, all files matching linux-*.patch + will be applied. + +# +# Configuration selection +# + +choice + prompt "Kernel configuration" + default BR2_LINUX_KERNEL_USE_DEFCONFIG + +config BR2_LINUX_KERNEL_USE_DEFCONFIG + bool "Using a defconfig" + +config BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG + bool "Using a custom config file" + +endchoice + +config BR2_LINUX_KERNEL_DEFCONFIG + string "Defconfig name" + depends on BR2_LINUX_KERNEL_USE_DEFCONFIG + help + Name of the defconfig file to use, without the leading + _defconfig + +config BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE + string "Configuration file path" + depends on BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG + help + Path to the kernel configuration file + +# +# Binary format +# + +choice + prompt "Kernel binary format" + default BR2_LINUX_KERNEL_UIMAGE if !BR2_i386 && !BR2_x86_64 + default BR2_LINUX_KERNEL_BZIMAGE if BR2_i386 || BR2_x86_64 + +config BR2_LINUX_KERNEL_UIMAGE + bool "uImage" + +config BR2_LINUX_KERNEL_BZIMAGE + bool "bzImage" + +config BR2_LINUX_KERNEL_ZIMAGE + bool "zImage" + +config BR2_LINUX_KERNEL_VMLINUX + bool "vmlinux" + +endchoice + +endif # BR2_LINUX_KERNEL + +endmenu diff --git a/linux/linux.mk b/linux/linux.mk new file mode 100644 index 000000000..3e91ecaba --- /dev/null +++ b/linux/linux.mk @@ -0,0 +1,118 @@ +############################################################################### +# +# Linux kernel 2.6 target +# +############################################################################### +LINUX26_VERSION=$(call qstrip,$(BR2_LINUX_KERNEL_VERSION)) + +# Compute LINUX26_SOURCE and LINUX26_SITE from the configuration +ifeq ($(LINUX26_VERSION),custom) +LINUX26_TARBALL:=$(call qstrip,$(BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION)) +LINUX26_SITE:=$(dir $(LINUX26_TARBALL)) +LINUX26_SOURCE:=$(notdir $(LINUX26_TARBALL)) +else +LINUX26_SOURCE:=linux-$(LINUX26_VERSION).tar.bz2 +LINUX26_SITE:=$(BR2_KERNEL_MIRROR)/linux/kernel/v2.6/ +endif + +LINUX26_DIR:=$(BUILD_DIR)/linux-$(LINUX26_VERSION) +LINUX26_PATCH=$(call qstrip,$(BR2_LINUX_KERNEL_PATCH)) + +LINUX26_MAKE_FLAGS = \ + HOSTCC="$(HOSTCC)" \ + HOSTCFLAGS="$(HOSTCFLAGS)" \ + ARCH=$(KERNEL_ARCH) \ + INSTALL_MOD_PATH=$(TARGET_DIR) \ + CROSS_COMPILE=$(TARGET_CROSS) \ + LDFLAGS="$(TARGET_LDFLAGS)" \ + LZMA="$(LZMA)" + +# Get the real Linux version, which tells us where kernel modules are +# going to be installed in the target filesystem. +LINUX26_VERSION_PROBED = $(shell $(MAKE) $(LINUX26_MAKE_FLAGS) -C $(LINUX26_DIR) --no-print-directory -s kernelrelease) + +ifeq ($(BR2_LINUX_KERNEL_UIMAGE),y) +LINUX26_IMAGE_NAME=uImage +LINUX26_DEPENDENCIES+=$(MKIMAGE) +else ifeq ($(BR2_LINUX_KERNEL_BZIMAGE),y) +LINUX26_IMAGE_NAME=bzImage +else ifeq ($(BR2_LINUX_KERNEL_ZIMAGE),y) +LINUX26_IMAGE_NAME=zImage +else ifeq ($(BR2_LINUX_KERNEL_VMLINUX),y) +LINUX26_IMAGE_NAME=vmlinux.bin +endif + +LINUX26_IMAGE_PATH=$(LINUX26_DIR)/arch/$(KERNEL_ARCH)/boot/$(LINUX26_IMAGE_NAME) + +# Download +$(LINUX26_DIR)/.stamp_downloaded: + @$(call MESSAGE,"Downloading kernel") + $(call DOWNLOAD,$(LINUX26_SITE),$(LINUX26_SOURCE)) +ifneq ($(filter ftp://% http://%,$(LINUX26_PATCH)),) + $(call DOWNLOAD,$(dir $(LINUX26_PATCH)),$(notdir $(LINUX26_PATCH))) +endif + mkdir -p $(@D) + touch $@ + +# Extraction +$(LINUX26_DIR)/.stamp_extracted: $(LINUX26_DIR)/.stamp_downloaded + @$(call MESSAGE,"Extracting kernel") + mkdir -p $(@D) + $(Q)$(INFLATE$(suffix $(LINUX26_SOURCE))) $(DL_DIR)/$(LINUX26_SOURCE) | \ + tar -C $(@D) $(TAR_STRIP_COMPONENTS)=1 $(TAR_OPTIONS) - + $(Q)touch $@ + +# Patch +$(LINUX26_DIR)/.stamp_patched: $(LINUX26_DIR)/.stamp_extracted + @$(call MESSAGE,"Patching kernel") +ifneq ($(LINUX26_PATCH),) +ifneq ($(filter ftp://% http://%,$(LINUX26_PATCH)),) + toolchain/patch-kernel.sh $(@D) $(DL_DIR) $(notdir $(LINUX26_PATCH)) +else ifeq ($(shell test -d $(LINUX26_PATCH) && echo "dir"),dir) + toolchain/patch-kernel.sh $(@D) $(LINUX26_PATCH) linux-\*.patch +else + toolchain/patch-kernel.sh $(@D) $(dir $(LINUX26_PATCH)) $(notdir $(LINUX26_PATCH)) +endif +endif + $(Q)touch $@ + + +# Configuration +$(LINUX26_DIR)/.stamp_configured: $(LINUX26_DIR)/.stamp_patched + @$(call MESSAGE,"Configuring kernel") +ifeq ($(BR2_LINUX_KERNEL_USE_DEFCONFIG),y) + $(TARGET_MAKE_ENV) $(MAKE1) $(LINUX26_MAKE_FLAGS) -C $(@D) $(call qstrip,$(BR2_LINUX_KERNEL_DEFCONFIG))_defconfig +else ifeq ($(BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG),y) + cp $(BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE) $(@D)/.config +endif + $(TARGET_MAKE_ENV) $(MAKE) $(LINUX26_MAKE_FLAGS) -C $(@D) oldconfig + $(Q)touch $@ + +# Compilation +$(LINUX26_DIR)/.stamp_compiled: $(LINUX26_DIR)/.stamp_configured + @$(call MESSAGE,"Compiling kernel") + $(TARGET_MAKE_ENV) $(MAKE) $(LINUX26_MAKE_FLAGS) -C $(@D) $(LINUX26_IMAGE_NAME) + @if [ $(shell grep -c "CONFIG_MODULES=y" $(LINUX26_DIR)/.config) != 0 ] ; then \ + $(TARGET_MAKE_ENV) $(MAKE) $(LINUX26_MAKE_FLAGS) -C $(@D) modules ; \ + fi + $(Q)touch $@ + +# Installation +$(LINUX26_DIR)/.stamp_installed: $(LINUX26_DIR)/.stamp_compiled + @$(call MESSAGE,"Installing kernel") + cp $(LINUX26_IMAGE_PATH) $(BINARIES_DIR) + # Install modules and remove symbolic links pointing to build + # directories, not relevant on the target + @if [ $(shell grep -c "CONFIG_MODULES=y" $(LINUX26_DIR)/.config) != 0 ] ; then \ + $(TARGET_MAKE_ENV) $(MAKE1) $(LINUX26_MAKE_FLAGS) -C $(@D) \ + INSTALL_MOD_PATH=$(TARGET_DIR) modules_install ; \ + rm -f $(TARGET_DIR)/lib/modules/$(LINUX26_VERSION_PROBED)/build ; \ + rm -f $(TARGET_DIR)/lib/modules/$(LINUX26_VERSION_PROBED)/source ; \ + fi + $(Q)touch $@ + +linux26: $(LINUX26_DEPENDENCIES) $(LINUX26_DIR)/.stamp_installed + +ifeq ($(BR2_LINUX_KERNEL),y) +TARGETS+=linux26 +endif -- cgit v1.2.3-55-g7522 From fe1cba690a9afdd661abf0285b08ce95c6347de7 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sat, 3 Apr 2010 18:55:09 +0200 Subject: Remove old Linux infrastructure Signed-off-by: Thomas Petazzoni --- Makefile | 4 - target/Makefile.in | 16 -- target/linux/Config.in | 33 --- target/linux/Config.in.advanced | 463 --------------------------------- target/linux/Config.in.versions | 62 ----- target/linux/Makefile.in | 250 ------------------ target/linux/Makefile.in.advanced | 532 -------------------------------------- 7 files changed, 1360 deletions(-) delete mode 100644 target/linux/Config.in delete mode 100644 target/linux/Config.in.advanced delete mode 100644 target/linux/Config.in.versions delete mode 100644 target/linux/Makefile.in delete mode 100644 target/linux/Makefile.in.advanced diff --git a/Makefile b/Makefile index 3bf23d9c4..09be31b48 100644 --- a/Makefile +++ b/Makefile @@ -309,10 +309,6 @@ else ifeq ($(BR2_TOOLCHAIN_EXTERNAL),y) include toolchain/*/*.mk endif -ifeq ($(BR2_PACKAGE_LINUX),y) -TARGETS+=linux26-modules -endif - include package/*/*.mk TARGETS+=target-finalize diff --git a/target/Makefile.in b/target/Makefile.in index 8feb5644d..9a751166c 100644 --- a/target/Makefile.in +++ b/target/Makefile.in @@ -1,7 +1,3 @@ -BR2_PACKAGE_LINUX_FORMAT:=$(call qstrip,$(BR2_PACKAGE_LINUX_FORMAT)) -BR2_PACKAGE_LINUX_KCONFIG:=$(call qstrip,$(BR2_PACKAGE_LINUX_KCONFIG)) - - # COPY_FILE absolute_path_to_file, target_directory, filename ifneq ($(call qstrip,$(BUILDROOT_COPYTO)),) # Use shell definition define COPY_FILE @@ -56,16 +52,4 @@ include target/generic/Makefile.in include target/device/Makefile.in include target/xtensa/Makefile.in -# kernel rules -# We already did add the kernel target to TARGETS and now just pull in the rules -# to actually build this target. - -ifeq ($(BR2_KERNEL_LINUX),y) -include target/linux/Makefile.in -endif - -ifeq ($(BR2_KERNEL_LINUX_ADVANCED),y) -include target/linux/Makefile.in.advanced -endif - include target/device/Makefile.in.linux diff --git a/target/linux/Config.in b/target/linux/Config.in deleted file mode 100644 index c79fca2dd..000000000 --- a/target/linux/Config.in +++ /dev/null @@ -1,33 +0,0 @@ -#comment "Linux kernel options" - -if BR2_KERNEL_LINUX -config BR2_PACKAGE_LINUX_KCONFIG - string ".config file" - depends on BR2_PACKAGE_LINUX - default "" - help - kernel's .config to use to build a kernel for the target. - - If the above setting is empty, you can change the default - board-imposed value by passing LINUX26_KCONFIG= to - make. - -config BR2_PACKAGE_LINUX_FORMAT - string "kernel binary format" - depends on BR2_PACKAGE_LINUX - default "" - help - kernel binary format. - Popular values include: - - bzImage - - zImage - and other, architecture dependant formats. - - Note that the default format is supposed to be set by your - board-description, if any. - i386 and compatible default to bzImage if nothing was given - above. - If the above setting is empty, you can change the default - board-imposed value by passing LINUX26_FORMAT= to - make. -endif diff --git a/target/linux/Config.in.advanced b/target/linux/Config.in.advanced deleted file mode 100644 index 645ed2e3a..000000000 --- a/target/linux/Config.in.advanced +++ /dev/null @@ -1,463 +0,0 @@ -if BR2_KERNEL_LINUX_ADVANCED -# --- "Linux kernel options" -# This file exports the following symbols for use by Makefile's -# -# BR2_PACKAGE_LINUX -# -# BR2_KERNEL_SITE -# BR2_DOWNLOAD_LINUX26_VERSION -# BR2_LINUX26_VERSION -# -# BR2_KERNEL_PATCH_SITE -# BR2_KERNEL_PATCH -# -# BR2_LINUX26_CUSTOM -# BR2_CUSTOM_LINUX26_PATCH_SITE -# BR2_CUSTOM_LINUX26_PATCH -# -# BR2_LINUX_BSP_PATCH -# -# BR2_PACKAGE_LINUX_USE_KCONFIG -# BR2_PACKAGE_LINUX_USE_DEFCONFIG -# BR2_PACKAGE_LINUX_USE_XCONFIG -# BR2_PACKAGE_LINUX_KCONFIG -# -# BR2_PACKAGE_LINUX_FORMAT -# -# BR2_LINUX_COPYTO_ROOTFS -# BR2_LINUX_COPYTO_TFTPBOOT -# BR2_LINUX_COPYTO -# - -source "target/linux/Config.in.versions" - -config BR2_KERNEL_PATCH_LEVEL - string - default $(BR2_KERNEL_LATEST_2_6_33) if BR2_LINUX_2_6_33 && BR2_KERNEL_ADD_LATEST_MINORPATCH - default $(BR2_KERNEL_LATEST_2_6_32) if BR2_LINUX_2_6_32 && BR2_KERNEL_ADD_LATEST_MINORPATCH - default $(BR2_KERNEL_LATEST_2_6_31) if BR2_LINUX_2_6_31 && BR2_KERNEL_ADD_LATEST_MINORPATCH - default $(BR2_KERNEL_LATEST_2_6_30) if BR2_LINUX_2_6_30 && BR2_KERNEL_ADD_LATEST_MINORPATCH - default $(BR2_KERNEL_LATEST_2_6_29) if BR2_LINUX_2_6_29 && BR2_KERNEL_ADD_LATEST_MINORPATCH - default $(BR2_KERNEL_LATEST_2_6_28) if BR2_LINUX_2_6_28 && BR2_KERNEL_ADD_LATEST_MINORPATCH - default $(BR2_KERNEL_LATEST_2_6_27) if BR2_LINUX_2_6_27 && BR2_KERNEL_ADD_LATEST_MINORPATCH - default "$(BR2_KERNEL_MINORLEVEL)" if BR2_KERNEL_ADD_MINORPATCH - -config BR2_KERNEL_NEXT_VERSION - string - default "2.6.34" if BR2_LINUX_2_6_33 - default "2.6.33" if BR2_LINUX_2_6_32 - default "2.6.32" if BR2_LINUX_2_6_31 - default "2.6.31" if BR2_LINUX_2_6_30 - default "2.6.30" if BR2_LINUX_2_6_29 - default "2.6.29" if BR2_LINUX_2_6_28 - default "2.6.28" if BR2_LINUX_2_6_27 - -config BR2_KERNEL_THIS_VERSION - string - default "2.6.33" if BR2_LINUX_2_6_33 - default "2.6.32" if BR2_LINUX_2_6_32 - default "2.6.31" if BR2_LINUX_2_6_31 - default "2.6.30" if BR2_LINUX_2_6_30 - default "2.6.29" if BR2_LINUX_2_6_29 - default "2.6.28" if BR2_LINUX_2_6_28 - default "2.6.27" if BR2_LINUX_2_6_27 - -config BR2_KERNEL_SITE - string - default "http://ftp.kernel.org/pub/linux/kernel/v2.6" - -config BR2_KERNEL_PATCH_SITE - string - default "$(BR2_KERNEL_SITE)" if BR2_KERNEL_ADD_LATEST_MINORPATCH - default "$(BR2_KERNEL_SITE)" if BR2_KERNEL_ADD_MINORPATCH - default "$(BR2_KERNEL_SITE)/testing" if BR2_KERNEL_ADD_LATEST_RC_PATCH - default "$(BR2_KERNEL_SITE)/testing" if BR2_KERNEL_ADD_RC_PATCH - default "$(BR2_KERNEL_SITE)/snapshots" if BR2_KERNEL_ADD_LATEST_SNAPSHOT - default "$(BR2_KERNEL_SITE)/snapshots" if BR2_KERNEL_ADD_SNAPSHOT - default $(BR2_CUSTOM_LINUX26_PATCH_SITE) if BR2_LINUX26_CUSTOM - -config BR2_LINUX26_RC_VERSION - string - default "$(BR2_KERNEL_NEXT_VERSION)-rc$(BR2_KERNEL_RC_LEVEL)" if BR2_KERNEL_ADD_RC_PATCH - -config BR2_LINUX26_SNAPSHOT_VERSION - string - default "$(BR2_KERNEL_THIS_VERSION)-git$(BR2_KERNEL_GIT_LEVEL)" if BR2_KERNEL_ADD_SNAPSHOT - -config BR2_LINUX26_RC_SNAPSHOT_VERSION - string - default "$(BR2_KERNEL_NEXT_VERSION)-rc$(BR2_KERNEL_RC_LEVEL)-git$(BR2_KERNEL_GIT_LEVEL)" if BR2_KERNEL_ADD_SNAPSHOT - -# --------------------------------------------------------------------------- - -choice - prompt "Linux Kernel Version" - default BR2_LINUX_2_6_STABLE - help - Select the specific Linux version you want to use - -config BR2_LINUX_2_6_STABLE - bool "The latest stable Linux kernel (2.6.33.4)" - -config BR2_LINUX_2_6_33 - bool "Linux 2.6.33" - select BR2_KERNEL_BASE - -config BR2_LINUX_2_6_32 - bool "Linux 2.6.32" - select BR2_KERNEL_BASE - -config BR2_LINUX_2_6_31 - bool "Linux 2.6.31" - select BR2_KERNEL_BASE - -config BR2_LINUX_2_6_30 - bool "Linux 2.6.30" - select BR2_KERNEL_BASE - -config BR2_LINUX_2_6_29 - bool "Linux 2.6.29" - select BR2_KERNEL_BASE - -config BR2_LINUX_2_6_28 - bool "Linux 2.6.28" - select BR2_KERNEL_BASE - -config BR2_LINUX_2_6_27 - bool "Linux 2.6.27" - select BR2_KERNEL_BASE - -config BR2_LINUX26_CUSTOM - bool "Linux version" - -endchoice - -if BR2_LINUX26_CUSTOM -config BR2_CUSTOM_DOWNLOAD_LINUX26_VERSION - string "Linux Tarball version" - default "2.6.31" - help - Specify any .tar.bz2 file - -config BR2_CUSTOM_LINUX26_VERSION - string "Linux Version" - default "2.6.31" - help - Specify what the linux version will be called - -config BR2_CUSTOM_LINUX26_PATCH - string "patch name" - default "patch-2.6.31-rc4.bz2" - help - Specify a patch to be downloaded - -config BR2_CUSTOM_LINUX26_PATCH_SITE - string "patch site" - default "http://www.kernel.org/pub/linux/kernel/v2.6/testing" - help - Specify from where the patch will be downloaded. -endif - -# ----------------------------------------------- - -menu "Patches" - depends on BR2_PACKAGE_LINUX - -config BR2_KERNEL_ADD_KERNEL_ORG_PATCH - bool "Add kernel.org patch" - depends on BR2_KERNEL_BASE - help - Add pre, snapshot or -mm patches - from http://www.kernel.org/ - -config BR2_KERNEL_ADD_LATEST - bool "Use only the latest patch version" - default y - depends on BR2_KERNEL_ADD_KERNEL_ORG_PATCH - help - Restrict the choices to the latest versions - -choice - prompt "Add a kernel.org patch to the Linux Kernel" - depends on BR2_PACKAGE_LINUX - depends on !BR2_KERNEL_PREPATCHED - depends on BR2_KERNEL_ADD_KERNEL_ORG_PATCH - help - Select a patch to add to the Linux kernel - -config BR2_KERNEL_ADD_LATEST_MINORPATCH - bool "Add _latest_ '.#' minor patch" - depends on BR2_KERNEL_ADD_LATEST - select BR2_KERNEL_ADD_PATCH - -config BR2_KERNEL_ADD_MINORPATCH - bool "Add a '.#' minor patch" - depends on !BR2_KERNEL_ADD_LATEST - select BR2_KERNEL_ADD_PATCH - -config BR2_KERNEL_ADD_LATEST_RC_PATCH - bool "Add _latest_ '-rc#' patch" - depends on BR2_KERNEL_ADD_LATEST - select BR2_KERNEL_ADD_PATCH - -config BR2_KERNEL_ADD_RC_PATCH - bool "Add an '-rc#' patch" - depends on !BR2_KERNEL_ADD_LATEST - select BR2_KERNEL_ADD_PATCH - -config BR2_KERNEL_ADD_LATEST_SNAPSHOT - bool "Add _latest_ 'snapshot' patch" - depends on BR2_KERNEL_ADD_LATEST - select BR2_KERNEL_ADD_PATCH - -config BR2_KERNEL_ADD_SNAPSHOT - bool "Add a 'snapshot' patch (linux-2.6.X-rc#-git#)" - depends on !BR2_KERNEL_ADD_LATEST - select BR2_KERNEL_ADD_PATCH - -endchoice - -config BR2_KERNEL_ADD_PATCH - bool - -config BR2_KERNEL_MINORLEVEL - string "patch level" - default "" - depends on BR2_KERNEL_ADD_MINORPATCH - -config BR2_KERNEL_RC_LEVEL - string "-rc patch level" - default "" - depends on BR2_KERNEL_ADD_RC_PATCH || BR2_KERNEL_ADD_SNAPSHOT - -config BR2_KERNEL_GIT_LEVEL - string "-git patch level" - default "" - depends on BR2_KERNEL_ADD_SNAPSHOT - -source "target/device/Config.in.linux.patches" - -config BR2_LINUX_BSP_PATCH - string "Additional patch to apply (from \$(DL_DIR))" - default "" - help - Apply a patch located in \$(DL_DIR). - You need to download or create this before - enable this option - -config BR2_KERNEL_PATCH - string - default "patch-$(BR2_DOWNLOAD_LINUX26_VERSION).$(BR2_KERNEL_PATCH_LEVEL).bz2" if BR2_KERNEL_ADD_LATEST_MINORPATCH - default "patch-$(BR2_DOWNLOAD_LINUX26_VERSION).$(BR2_KERNEL_PATCH_LEVEL).bz2" if BR2_KERNEL_ADD_MINORPATCH - default "patch-$(LINUX26_LATEST_RC_VERSION).bz2" if BR2_KERNEL_ADD_LATEST_RC_PATCH - default "patch-$(BR2_LINUX26_RC_VERSION).bz2" if BR2_KERNEL_ADD_RC_PATCH - default "patch-$(LINUX26_LATEST_GIT_VERSION).bz2" if BR2_KERNEL_ADD_LATEST_SNAPSHOT - default "patch-$(BR2_LINUX26_SNAPSHOT_VERSION).bz2" if BR2_KERNEL_ADD_SNAPSHOT - default "$(BR2_CUSTOM_LINUX26_PATCH)" if BR2_LINUX26_CUSTOM - -config BR2_EXTRA_VERSION - string - default ".$(BR2_KERNEL_PATCH_LEVEL)" if BR2_KERNEL_ADD_LATEST_MINORPATCH - default ".$(BR2_KERNEL_PATCH_LEVEL)" if BR2_KERNEL_ADD_MINORPATCH - default "$(BR2_KERNEL_RC_LEVEL)" if BR2_KERNEL_ADD_LATEST_RC_PATCH - default "$(BR2_KERNEL_RC_LEVEL)" if BR2_KERNEL_ADD_RC_PATCH - default "$(BR2_KERNEL_GIT_LEVEL)" if BR2_KERNEL_ADD_LATEST_SNAPSHOT - default "$(BR2_KERNEL_GIT_LEVEL)" if BR2_KERNEL_ADD_SNAPSHOT - default "" if BR2_LINUX26_CUSTOM -endmenu - -# ----------------------------------------------- - -config BR2_KERNEL_PREPATCHED - bool - -config BR2_KERNEL_BASE - bool - -config BR2_KERNEL_LATEST - bool - -config BR2_DOWNLOAD_LINUX26_VERSION - string - default "$(BR2_KERNEL_THIS_VERSION)" if BR2_KERNEL_BASE - default "$(BR2_KERNEL_CURRENT_VERSION)" if BR2_LINUX_2_6_STABLE - default "$(BR2_DEFAULT_KERNEL_HEADERS)" if BR2_KERNEL_LINUX_HEADERS_VERSION - default $(BR2_CUSTOM_DOWNLOAD_LINUX26_VERSION) if BR2_LINUX26_CUSTOM - -config BR2_LINUX26_VERSION - string - default "$(BR2_KERNEL_THIS_VERSION).$(BR2_KERNEL_PATCH_LEVEL)" if BR2_KERNEL_ADD_LATEST_MINORPATCH&& BR2_KERNEL_BASE - default "$(BR2_KERNEL_THIS_VERSION).$(BR2_KERNEL_PATCH_LEVEL)" if BR2_KERNEL_ADD_MINORPATCH && BR2_KERNEL_BASE - default "$(LINUX26_LATEST_RC_VERSION)" if BR2_KERNEL_ADD_LATEST_RC_PATCH - default "$(BR2_LINUX26_RC_VERSION)" if BR2_KERNEL_ADD_RC_PATCH && BR2_KERNEL_BASE - default "$(LINUX26_LATEST_GIT_VERSION)" if BR2_KERNEL_ADD_LATEST_SNAPSHOT - default "$(BR2_LINUX26_SNAPSHOT_VERSION)" if BR2_KERNEL_ADD_SNAPSHOT && BR2_KERNEL_BASE - default "$(BR2_KERNEL_THIS_VERSION)" if ! BR2_KERNEL_ADD_PATCH && BR2_KERNEL_BASE - default "$(BR2_KERNEL_CURRENT_VERSION)"if BR2_LINUX_2_6_STABLE - default "$(BR2_CUSTOM_LINUX26_VERSION)" if BR2_LINUX26_CUSTOM - -menu "Linux Kernel Configuration" - -choice - prompt "Linux Kernel Configuration" - depends on BR2_PACKAGE_LINUX - default BR2_PACKAGE_LINUX_USE_KCONFIG - help - Select the way to configure the Linux - -config BR2_PACKAGE_LINUX_USE_KCONFIG - bool ".config file" - depends on BR2_PACKAGE_LINUX - help - kernel's .config to use to build a kernel for the target. - - If the above setting is empty, you can change the default - board-imposed value by passing LINUX26_KCONFIG= to - make. - -config BR2_PACKAGE_LINUX_USE_DEFCONFIG - bool "Run make _defconfig " - depends on BR2_PACKAGE_LINUX - help - Configure Linux by make _defconfig - You have to supply a BOARD_NAME, either by - defining it in a BSP or by make BOARD_NAME= - -config BR2_PACKAGE_LINUX_USE_XCONFIG - bool "Run make ARCH=$(ARCH) [xconfig|menuconfig] before build" - depends on BR2_PACKAGE_LINUX - help - Configure Linux by make xconfig|menuconfig -endchoice - -config BR2_PACKAGE_LINUX_KCONFIG - string ".config file" - depends on BR2_PACKAGE_LINUX_USE_KCONFIG - default "$(BR2_BOARD_PATH)/$(BR2_BOARD_NAME)-linux-$(BR2_LINUX26_VERSION).config" - help - kernel's .config to use to build a kernel for the target. - - If the above setting is empty, you can change the default - board-imposed value by passing LINUX26_KCONFIG= to - make. - -choice - prompt "Preferred config tool" - default BR2_MAKE_MENUCONFIG - depends on BR2_PACKAGE_LINUX_USE_XCONFIG - help - Define the preferred tool to invoke if a configuration is invalid - -config BR2_MAKE_XCONFIG - bool "make xconfig (needs QT3 headers on host)" - help - Run "make xconfig" if kernel ".config" is invalid - -config BR2_MAKE_MENUCONFIG - bool "make menuconfig" - help - Run "make menuconfig" if kernel ".config" is invalid - -endchoice - -config BR2_KERNEL_CONFIG_METHOD - string - default "xconfig" if BR2_MAKE_XCONFIG - default "menuconfig" if BR2_MAKE_MENUCONFIG - -endmenu - -choice - prompt "kernel binary format" - depends on BR2_PACKAGE_LINUX - default BR2_LINUX_BIN_BZIMAGE if BR2_i386 - default BR2_LINUX_BIN_BZIMAGE if BR2_x86_64 - default BR2_LINUX_BIN_UIMAGE - help - Select the specific Linux binary type you want to use - -config BR2_LINUX_BIN_BZIMAGE - bool "bzImage" - depends on BR2_PACKAGE_LINUX - -config BR2_LINUX_BIN_UIMAGE - bool "uImage" - depends on BR2_PACKAGE_LINUX - -config BR2_LINUX_BIN_VMLINUX - bool "vmlinux" - depends on BR2_PACKAGE_LINUX - -config BR2_LINUX_BIN_ZIMAGE - bool "zImage" - depends on BR2_PACKAGE_LINUX - -config BR2_LINUX_BIN_CUSTOM - bool " Linux binary" - depends on BR2_PACKAGE_LINUX - help - Build custom Linux binary format - -endchoice - -config BR2_LINUX_BIN_CUSTOM_BIN - string "custom kernel binary format" - depends on BR2_LINUX_BIN_CUSTOM - default "" - help - Which Linux binary format? - -config BR2_PACKAGE_LINUX_FORMAT - string #"kernel binary format" - depends on BR2_PACKAGE_LINUX - default "bzImage" if BR2_LINUX_BIN_BZIMAGE - default "uImage" if BR2_LINUX_BIN_UIMAGE - default "vmlinux" if BR2_LINUX_BIN_VMLINUX - default "zImage" if BR2_LINUX_BIN_ZIMAGE - default $(BR2_LINUX_BIN_CUSTOM_BIN) if BR2_LINUX_BIN_CUSTOM - help - kernel binary format. - Popular values include: - - bzImage - - zImage - - vmlinux - - zImage - - xipImage - and other, architecture dependant formats. - - Note that the default format is supposed to be set by your - board-description, if any. - i386 and compatible default to bzImage if nothing was given - above. - If the above setting is empty, you can change the default - board-imposed value by passing LINUX26_FORMAT= to - make. - -menu "Destinations for linux kernel binaries" - -config BR2_LINUX_COPYTO_ROOTFS - bool "Copy kernel to root file system" - depends on BR2_PACKAGE_LINUX - help - Copy kernel to /boot directory - -config BR2_LINUX_COPYTO_TFTPBOOT - bool "Copy kernel to /tftpboot" - help - Copy kernel to /tftpboot directory - -config BR2_LINUX_COPYTO - string "Copy kernel to ..." - default "" - help - Copy kernel to secondary location - -config BR2_LINUX_COPY_CONFIGURATION - bool "Copy buildroot configuration to Linux file system" - help - The configuration files for buildroot, uclibc, busybox and linux - are copied to the "/boot" directory. - -endmenu -endif - diff --git a/target/linux/Config.in.versions b/target/linux/Config.in.versions deleted file mode 100644 index c5263a44d..000000000 --- a/target/linux/Config.in.versions +++ /dev/null @@ -1,62 +0,0 @@ -# This file defines the latest version of -# You also have to edit BR2_LINUX_2_6_STABLE -# in target/linux/Config.in.advanced -# which is approximately at line 136 - -config LINUX26_LATEST_RC_VERSION - string - default "2.6.31-rc4" if BR2_KERNEL_ADD_LATEST_RC_PATCH - help - Not really available as of 20090103 - -config LINUX26_LATEST_GIT_VERSION - string - default "2.6.30-rc4-git4" if BR2_KERNEL_ADD_LATEST_SNAPSHOT - -config BR2_KERNEL_CURRENT_VERSION - string - default "2.6.33.4" - help - This is the latest stable kernel (including minor version). - -config BR2_KERNEL_LATEST_2_6_33 - string - default "4" - help - Released 2010-May-12. - -config BR2_KERNEL_LATEST_2_6_32 - string - default "13" - help - Released 2010-May-12. - -config BR2_KERNEL_LATEST_2_6_31 - string - default "13" - help - Released 2010-Apr-01 (last .31-stable release). - -config BR2_KERNEL_LATEST_2_6_30 - string - default "10" - help - Released 2009-Dec-04 (last .30-stable release). - -config BR2_KERNEL_LATEST_2_6_29 - string - default "6" - help - Released 2009-Jul-02 (last .29-stable release). - -config BR2_KERNEL_LATEST_2_6_28 - string - default "10" - help - Released 2009-May-02 (last .28-stable release). - -config BR2_KERNEL_LATEST_2_6_27 - string - default "46" - help - Released 2010-Apr-01. diff --git a/target/linux/Makefile.in b/target/linux/Makefile.in deleted file mode 100644 index f01982440..000000000 --- a/target/linux/Makefile.in +++ /dev/null @@ -1,250 +0,0 @@ -############################################################# -# -# Linux kernel 2.6 target -# -############################################################# -ifneq ($(filter $(TARGETS),linux26),) - - -ifeq ($(DOWNLOAD_LINUX26_VERSION),) -# User did not define linux version, try using headers -ifeq ($(LINUX_HEADERS_VERSION),) -# We did not have headers (this is for real???) -# Version of linux before patches -DOWNLOAD_LINUX26_VERSION=2.6.22.1 -# Version of Linux after applying any patches -LINUX26_VERSION=2.6.22.1 -else -# OK, we have headers, use them... -DOWNLOAD_LINUX26_VERSION=$(LINUX_HEADERS_VERSION) -LINUX26_VERSION=$(LINUX_HEADERS_VERSION) -endif -endif - -LINUX26_SOURCE=linux-$(DOWNLOAD_LINUX26_VERSION).tar.bz2 -LINUX26_BZCAT:=$(BZCAT) -LINUX26_SITE=$(BR2_KERNEL_MIRROR)/linux/kernel/v2.6 - -ifeq ($(BOARD_PATH),) -BOARD_PATH:=$(call qstrip,$(BR2_BOARD_PATH)) -endif - -# Linux kernel configuration file -# Has to be set by the target/device -# If it is not set by the target/device, then pick the one from .config -ifndef LINUX26_KCONFIG -ifneq ($(call qstrip,$(BR2_PACKAGE_LINUX_KCONFIG)),) -LINUX26_KCONFIG=$(call qstrip,$(BR2_PACKAGE_LINUX_KCONFIG)) -else -# LINUX26_KCONFIG=$(BOARD_PATH)/linux26.config -endif -endif - -ifndef LINUX26_FORMAT -ifneq ($(call qstrip,$(BR2_PACKAGE_LINUX_FORMAT)),) -LINUX26_FORMAT=$(call qstrip,$(BR2_PACKAGE_LINUX_FORMAT)) -else -ifneq ($(filter i386 x86-64,$(KERNEL_ARCH)),) -# zImage target no longer available on x86 since 2.6.30 -LINUX26_FORMAT=bzImage -else -LINUX26_FORMAT=zImage -endif -endif -endif - -# Has to be set by the target/device -ifndef LINUX26_BINLOC -# default: -ifeq ($(LINUX26_FORMAT),vmlinux) -LINUX26_BINLOC=$(LINUX26_FORMAT) -else -ifeq ($(BR2_ARCH),"cris") -LINUX26_BINLOC=arch/$(KERNEL_ARCH)/arch-v10/boot/$(LINUX26_FORMAT) -else -LINUX26_BINLOC=arch/$(KERNEL_ARCH)/boot/$(LINUX26_FORMAT) -endif -endif -endif - -# File name for the Linux kernel binary -ifndef LINUX26_KERNEL -LINUX26_KERNEL_NAME=$(BINARIES_DIR)/$(LINUX26_FORMAT) -endif - -# Version of Linux AFTER patches -LINUX26_DIR=$(BUILD_DIR)/linux-$(LINUX26_VERSION) - -# for packages that need it -LINUX_VERSION:=$(LINUX26_VERSION) -LINUX_DIR=$(LINUX26_DIR) -LINUX_KERNEL=$(LINUX26_KERNEL_NAME) - -# kernel patches -ifeq ($(strip $(LINUX26_PATCH_DIR)),) -ifneq ($(BOARD_PATH),) -LINUX26_PATCH_DIR:=$(BOARD_PATH)/kernel-patches/ -endif -endif -LINUX26_MAKE_FLAGS = HOSTCC="$(HOSTCC)" HOSTCFLAGS="$(HOSTCFLAGS)" \ - ARCH=$(KERNEL_ARCH) \ - INSTALL_MOD_PATH=$(TARGET_DIR) \ - CROSS_COMPILE=$(TARGET_CROSS) \ - LDFLAGS="$(TARGET_LDFLAGS)" \ - LZMA="$(LZMA)" - -$(LINUX26_KCONFIG): - @if [ ! -f "$(LINUX26_KCONFIG)" ] ; then \ - echo ""; \ - echo "You should create a .config for your kernel"; \ - echo "and install it as $(LINUX26_KCONFIG)"; \ - echo ""; \ - sleep 5; \ - fi - -ifneq ($(strip $(LINUX26_VERSION)),$(strip $(LINUX_HEADERS_VERSION))) -$(DL_DIR)/$(LINUX26_SOURCE): - $(call DOWNLOAD,$(LINUX26_SITE),$(LINUX26_SOURCE)) -endif # ($(LINUX26_VERSION),$(LINUX_HEADERS_VERSION)) - -$(LINUX26_DIR)/.unpacked: $(DL_DIR)/$(LINUX26_SOURCE) - rm -rf $(LINUX26_DIR) - @echo "*** Unpacking kernel source" - $(LINUX26_BZCAT) $(DL_DIR)/$(LINUX26_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) - -ifneq ($(DOWNLOAD_LINUX26_VERSION),$(LINUX26_VERSION)) - # Rename the dir from the downloaded version to the AFTER patch version - mv -f $(BUILD_DIR)/linux-$(DOWNLOAD_LINUX26_VERSION) $(LINUX26_DIR) -endif - touch $@ - -$(LINUX26_DIR)/.patched: $(LINUX26_DIR)/.unpacked $(LINUX_HEADERS_DEPENDS) - toolchain/patch-kernel.sh $(LINUX26_DIR) toolchain/kernel-headers \ - linux-$(LINUX26_VERSION)-\*.patch{,.gz,.bz2} -ifeq ($(BR2_KERNEL_HEADERS_RT),y) - toolchain/patch-kernel.sh $(LINUX26_DIR) $(DL_DIR) $(LINUX_RT_SOURCE) -endif -ifneq ($(KERNEL_HEADERS_PATCH_DIR),) - toolchain/patch-kernel.sh $(LINUX26_DIR) $(KERNEL_HEADERS_PATCH_DIR) \ - linux-$(LINUX26_VERSION)-\*.patch{,.gz,.bz2} -endif -ifeq ($(BR2_PACKAGE_OPENSWAN),y) - toolchain/patch-kernel.sh $(LINUX26_DIR) package/openswan \ - linux-$(LINUX26_VERSION)-\*.patch{,.gz,.bz2} -endif -ifneq ($(LINUX26_PATCH_DIR),) - if [ -d $(LINUX26_PATCH_DIR) ] ; then \ - toolchain/patch-kernel.sh $(LINUX26_DIR) $(LINUX26_PATCH_DIR) linux-$(LINUX26_VERSION)\*.patch ; \ - fi -endif - touch $@ - -$(LINUX26_DIR)/.configured: $(LINUX26_DIR)/.patched $(LINUX26_KCONFIG) - cp -dpf $(LINUX26_KCONFIG) $(LINUX26_DIR)/.config - $(SED) '/CONFIG_AEABI=y/d' $(LINUX26_DIR)/.config -ifeq ($(BR2_ARM_EABI),y) - echo "CONFIG_AEABI=y" >> $(LINUX26_DIR)/.config - $(SED) '/CONFIG_OABI_COMPAT/d' $(LINUX26_DIR)/.config - echo "# CONFIG_OABI_COMPAT is not set" >> $(LINUX26_DIR)/.config -else - echo "# CONFIG_AEABI is not set" >> $(LINUX26_DIR)/.config -endif - $(SED) '/CONFIG_IPV6=y/d' $(LINUX26_DIR)/.config -ifeq ($(BR2_INET_IPV6),y) - echo "CONFIG_IPV6=y" >> $(LINUX26_DIR)/.config -else - echo "# CONFIG_IPV6 is not set" >> $(LINUX26_DIR)/.config -endif - $(SED) '/CONFIG_INITRAMFS_SOURCE/d' $(LINUX26_DIR)/.config - $(SED) '/INITRAMFS_ROOT_.ID/d' $(LINUX26_DIR)/.config -ifeq ($(BR2_TARGET_ROOTFS_INITRAMFS),y) - echo "CONFIG_INITRAMFS_SOURCE=\"$(BINARIES_DIR)/rootfs.initramfs\"" >> \ - $(LINUX26_DIR)/.config - echo "CONFIG_INITRAMFS_ROOT_UID=0" >> $(LINUX26_DIR)/.config - echo "CONFIG_INITRAMFS_ROOT_GID=0" >> $(LINUX26_DIR)/.config -else - echo "CONFIG_INITRAMFS_SOURCE=\"\"" >> $(LINUX26_DIR)/.config -endif -ifeq ($(BR2_PACKAGE_BUSYBOX_INITRAMFS),y) - # precedence for a small initramfs - $(SED) '/CONFIG_INITRAMFS_SOURCE/d' $(LINUX26_DIR)/.config - $(SED) '/INITRAMFS_ROOT_.ID/d' $(LINUX26_DIR)/.config - echo "CONFIG_INITRAMFS_SOURCE=\"$(BB_INITRAMFS_TARGET)\"" >> \ - $(LINUX26_DIR)/.config - echo "CONFIG_INITRAMFS_ROOT_UID=0" >> $(LINUX26_DIR)/.config - echo "CONFIG_INITRAMFS_ROOT_GID=0" >> $(LINUX26_DIR)/.config -endif - $(MAKE) $(LINUX26_MAKE_FLAGS) -C $(LINUX26_DIR) oldconfig - touch $@ - -$(LINUX26_DIR)/.depend_done: $(LINUX26_DIR)/.configured - $(MAKE) $(LINUX26_MAKE_FLAGS) -C $(LINUX26_DIR) prepare - touch $@ - -$(LINUX26_KERNEL_NAME): $(INITRAMFS_TARGET) $(BB_INITRAMFS_TARGET) \ - $(LINUX26_DIR)/.depend_done - $(MAKE) $(LINUX26_MAKE_FLAGS) \ - -C $(LINUX26_DIR) $(LINUX26_FORMAT) - cp -pf $(LINUX26_DIR)/$(LINUX26_BINLOC) $(LINUX26_KERNEL_NAME) - touch -c $@ - -$(TARGET_DIR)/lib/modules/$(LINUX26_VERSION)/modules.dep: $(LINUX26_DIR)/.configured - rm -rf $(TARGET_DIR)/lib/modules/$(LINUX26_VERSION) - rm -f $(TARGET_DIR)/sbin/cardmgr - @if grep -q CONFIG_MODULES=y $(LINUX26_DIR)/.config; then \ - set -x; \ - echo "Have CONFIG_MODULES"; \ - $(MAKE) $(LINUX26_MAKE_FLAGS) -C $(LINUX26_DIR) modules; \ - $(MAKE) $(LINUX26_MAKE_FLAGS) -C $(LINUX26_DIR) \ - DEPMOD=$(STAGING_DIR)/bin/$(GNU_TARGET_NAME)-depmod26 \ - INSTALL_MOD_PATH=$(TARGET_DIR) modules_install; \ - rm -f $(TARGET_DIR)/lib/modules/$(LINUX26_VERSION)/build \ - $(TARGET_DIR)/lib/modules/$(LINUX26_VERSION)/source; \ - $(STAGING_DIR)/bin/$(GNU_TARGET_NAME)-depmod26 -b $(TARGET_DIR) $(LINUX_HEADERS_VERSION); \ - else \ - echo "No CONFIG_MODULES"; \ - fi - touch -c $@ - -linux26-menuconfig: host-sed dirs $(LINUX26_DIR)/.patched - if [ ! -f $(LINUX26_DIR)/.config ]; then \ - [ -n "$(LINUX26_KCONFIG)" ] && [ -f $(LINUX26_KCONFIG) ] && \ - cp $(LINUX26_KCONFIG) $(LINUX26_DIR)/.config || \ - true; \ - fi - $(MAKE) $(LINUX26_MAKE_FLAGS) -C $(LINUX26_DIR) menuconfig - -[ -f $(LINUX26_DIR)/.config ] && touch $(LINUX26_DIR)/.configured - -linux26-xconfig: host-sed dirs $(LINUX26_DIR)/.patched - [ -f $(LINUX26_DIR)/.config ] || cp $(LINUX26_KCONFIG) $(LINUX26_DIR)/.config - $(MAKE) $(LINUX26_MAKE_FLAGS) -C $(LINUX26_DIR) xconfig - -[ -f $(LINUX26_DIR)/.config ] && touch $(LINUX26_DIR)/.configured - -linux26: $(LINUX26_KERNEL_NAME) - -$(LINUX26_DIR)/.modules_installed: $(TARGET_DIR)/lib/modules/$(LINUX26_VERSION)/modules.dep - touch $@ - -linux26-modules: cross-depmod26 $(LINUX26_DIR)/.modules_installed - -linux26-source: $(DL_DIR)/$(LINUX26_SOURCE) - -linux26-unpacked: $(LINUX26_DIR)/.patched - -linux26-config: host-sed $(LINUX26_DIR)/.configured - -linux26-update: - cp -dpf $(LINUX26_DIR)/.config $(LINUX26_KCONFIG) - -# force rebuild -linux26-force: - touch $(LINUX26_DIR)/.configured - -# This has been renamed so we do _NOT_ by default run this on 'make clean' -linux26clean: - rm -f $(LINUX26_KERNEL_NAME) $(LINUX26_DIR)/.configured - -$(MAKE) PATH=$(TARGET_PATH) -C $(LINUX26_DIR) clean - -linux26-dirclean: - rm -rf $(LINUX26_DIR) - -endif diff --git a/target/linux/Makefile.in.advanced b/target/linux/Makefile.in.advanced deleted file mode 100644 index 9cbbd2c74..000000000 --- a/target/linux/Makefile.in.advanced +++ /dev/null @@ -1,532 +0,0 @@ -############################################################################### -# -# Linux kernel 2.6 target (Advanced configuration) -# -############################################################################### -ifneq ($(filter $(TARGETS),linux26),) - -# ----------------------------------------------------------------------------- -# Make sure LINUX_HEADERS_VERSION is defined -ifeq ($(LINUX_HEADERS_VERSION),) -# We did not have headers (this is for real???) -LINUX_HEADERS_VERSION:=2.6.22.1 -endif - -# ----------------------------------------------------------------------------- -# STRATEGY FOR DOWNLOAD_LINUX26_VERSION -# 1. Use definition from user Makefile -# 2. Use definition from Kconfig -# 3. Use Linux Headers version -# 4. Use default (2.6.22.1) -ifeq ($(DOWNLOAD_LINUX26_VERSION),) -ifneq ($(BR2_DOWNLOAD_LINUX26_VERSION),) -DOWNLOAD_LINUX26_VERSION:=$(call qstrip,$(BR2_DOWNLOAD_LINUX26_VERSION)) -else -DOWNLOAD_LINUX26_VERSION:=$(LINUX_HEADERS_VERSION) -endif -endif - -# ----------------------------------------------------------------------------- -# STRATEGY FOR LINUX26_VERSION -# 1. Use definition from user Makefile -# 2. Use definition from Kconfig -# 3. Use Linux Headers version -# 4. Use default (2.6.22.1) -ifeq ($(LINUX26_VERSION),) -ifneq ($(BR2_LINUX26_VERSION),) -LINUX26_VERSION:=$(call qstrip,$(BR2_LINUX26_VERSION)) -else -LINUX26_VERSION:=$(LINUX_HEADERS_VERSION) -endif -endif - -# Ask the kernel what version number it will use when installing modules -LINUX26_VERSION_PROBED = `$(MAKE) $(LINUX26_MAKE_FLAGS) -C $(LINUX26_DIR) --no-print-directory -s kernelrelease` - -ifeq ($(BOARD_PATH),) -BOARD_PATH:=$(call qstrip,$(BR2_BOARD_PATH)) -endif - -# Version of Linux AFTER patches -LINUX26_DIR:=$(BUILD_DIR)/linux-$(LINUX26_VERSION) - -# for packages that need it -LINUX_VERSION:=$(LINUX26_VERSION) -LINUX_DIR:=$(LINUX26_DIR) - -# ----------------------------------------------------------------------------- -# Define source name and sites -LINUX26_SOURCE:=linux-$(DOWNLOAD_LINUX26_VERSION).tar.bz2 -LINUX26_SITE:=$(call qstrip,$(BR2_KERNEL_SITE)) - -LINUX26_PATCH_SOURCE:=$(call qstrip,$(BR2_KERNEL_PATCH)) -LINUX26_PATCH_SITE:=$(call qstrip,$(BR2_KERNEL_PATCH_SITE)) - -LINUX26_BSP_PATCH:=$(call qstrip,$(BR2_LINUX_BSP_PATCH)) - -ifneq ($(LINUX26_BSP_PATCH),) -LINUX_HEADERS_DEPENDS:= $(DL_DIR)/$(LINUX26_BSP_PATCH) -endif - -ifneq ($(LINUX26_PATCH_SOURCE),) -LINUX_HEADERS_DEPENDS+=$(DL_DIR)/$(LINUX26_PATCH_SOURCE) -endif - -# ------------------------------------ -# kernel patches provided by buildroot -ifeq ($(strip $(LINUX26_PATCH_DIR)),) -LINUX26_PATCH_DIR:=$(BOARD_PATH)/kernel-patches/ -endif - -# kernel architecture patches provided by buildroot -KERNEL_ARCH_PATCH_DIR:=$(call qstrip,$(BR2_KERNEL_ARCH_PATCH_DIR)) - - - - -# ----------------------------------------------------------------------------- -# Linux kernel configuration file -# This is used if BR2_PACKAGE_LINUX_USE_KCONFIG is set -# Has to be set by the target/device -# If it is not set by the target/device, then pick the one from .config -ifndef LINUX26_KCONFIG -ifneq ($(call qstrip,$(BR2_PACKAGE_LINUX_KCONFIG)),) -LINUX26_KCONFIG:=$(call qstrip,$(BR2_PACKAGE_LINUX_KCONFIG)) -else -ifeq ($(BR2_i386),y) -LINUX26_KCONFIG:=$(BOARD_PATH)/linux26.config -else -LINUX26_KCONFIG:=$(BOARD_PATH)/linux-$(LINUX26_VERSION).config -endif -endif -endif - -KERNEL_CONFIG_METHOD:=$(call qstrip,$(BR2_KERNEL_CONFIG_METHOD)) -ifeq ($(KERNEL_CONFIG_METHOD),) -KERNEL_CONFIG_METHOD:=menuconfig -endif - -# ----------------------------------------------------------------------------- -ifndef LINUX26_FORMAT -ifneq ($(call qstrip,$(BR2_PACKAGE_LINUX_FORMAT)),) -LINUX26_FORMAT:=$(call qstrip,$(BR2_PACKAGE_LINUX_FORMAT)) -else -ifneq ($(filter i386 x86-64,$(KERNEL_ARCH)),) -# zImage target no longer available on x86 since 2.6.30 -LINUX26_FORMAT=bzImage -else -LINUX26_FORMAT:=zImage -endif -endif -endif - -# ----------------------------------------------------------------------------- -# Has to be set by the target/device - -LINUX26_MKIMAGE_DEP:= - -# -------------- -# VMLINUX -ifeq ($(LINUX26_FORMAT),vmlinux) -ifeq ($(LINUX26_BINLOC),) -LINUX26_BINLOC:=$(LINUX26_FORMAT) -endif -endif - -# -------------- -# UIMAGE -ifeq ($(LINUX26_FORMAT),uImage) -LINUX26_MKIMAGE_DEP:=$(MKIMAGE) -ifeq ($(LINUX26_BINLOC),) -LINUX26_BINLOC:=arch/$(KERNEL_ARCH)/boot/$(LINUX26_FORMAT) -endif -endif - -# -------------- -# ZIMAGE -ifeq ($(LINUX26_FORMAT),zImage) -ifeq ($(LINUX26_BINLOC),) -LINUX26_BINLOC:=arch/$(KERNEL_ARCH)/boot/$(LINUX26_FORMAT) -endif -endif - -# -------------- -# BZIMAGE -ifeq ($(LINUX26_FORMAT),bzImage) -ifeq ($(LINUX26_BINLOC),) -LINUX26_BINLOC:=arch/$(KERNEL_ARCH)/boot/bzImage -endif -endif - -# ----------------------------------------------------------------------------- -# File name for the Linux kernel binary -LINUX26_KERNEL_NAME:=$(LINUX26_FORMAT) - - -ifeq ($(BOARD_NAME),) -BOARD_NAME=$(ARCH) -endif - -ifndef LINUX26_KERNEL -LINUX26_KERNEL:=$(BINARIES_DIR)/$(LINUX26_KERNEL_NAME) -endif - -# for packages that need it -LINUX_KERNEL:=$(LINUX26_KERNEL) - - -# ----------------------------------------------------------------------------- -LINUX26_BZCAT:=$(BZCAT) - -LINUX26_MAKE_FLAGS = HOSTCC="$(HOSTCC)" HOSTCFLAGS="$(HOSTCFLAGS)" \ - ARCH=$(KERNEL_ARCH) \ - INSTALL_MOD_PATH=$(TARGET_DIR) \ - CROSS_COMPILE=$(TARGET_CROSS) \ - LDFLAGS="$(TARGET_LDFLAGS)" \ - LZMA="$(LZMA)" \ - PATH=$(PATH) - -# ============================================================================= -# ifneq ($(strip $(LINUX26_VERSION)),$(strip $(LINUX_HEADERS_VERSION))) - -ifneq ($(strip $(LINUX26_SOURCE)),$(strip $(LINUX_HEADERS_SOURCE))) -$(DL_DIR)/$(LINUX26_SOURCE): - $(call DOWNLOAD,$(LINUX26_SITE),$(LINUX26_SOURCE)) -endif # ($(LINUX26_VERSION),$(LINUX_HEADERS_VERSION)) - -ifneq ($(strip $(LINUX26_PATCH_SOURCE)),) -$(DL_DIR)/$(LINUX26_PATCH_SOURCE): - $(call DOWNLOAD,$(LINUX26_PATCH_SITE),$(LINUX26_PATCH_SOURCE)) -endif - -$(LINUX26_DIR)/.unpacked: $(DL_DIR)/$(LINUX26_SOURCE) - rm -rf $(LINUX26_DIR) - @echo "*** Unpacking kernel source" - $(LINUX26_BZCAT) $(DL_DIR)/$(LINUX26_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) - -ifneq ($(DOWNLOAD_LINUX26_VERSION),$(LINUX26_VERSION)) - # Rename the dir from the downloaded version to the AFTER patch version - mv -f $(BUILD_DIR)/linux-$(DOWNLOAD_LINUX26_VERSION) $(LINUX26_DIR) - echo $(LINUX26_VERSION_PROBED) > $(BUILD_DIR)/.linux-version -endif - touch $@ - - -# ----------------------------------------------------------------------------- -LINUX26_TARGETS+=$(LINUX26_KERNEL) $(BUILD_DIR)/.linux-version - -ifeq ($(BR2_LINUX_COPYTO_ROOTFS),y) -LINUX26_TARGETS+=$(TARGET_DIR)/boot/$(LINUX26_KERNEL_NAME) -endif - -ifeq ($(BR2_LINUX_COPYTO_TFTPBOOT),y) -LINUX26_TARGETS+=/tftpboot/$(LINUX26_KERNEL_NAME) -endif - -ifneq ($(call qstrip,$(BR2_LINUX_COPYTO)),) -LINUX_COPYTO:=$(call qstrip,$(BR2_LINUX_COPYTO)) -LINUX26_TARGETS+=$(LINUX_COPYTO)/$(LINUX26_KERNEL_NAME) -endif - -ifneq ($(BR2_LINUX_COPY_CONFIGURATION),) -LINUX26_TARGETS+=$(TARGET_DIR)/boot/buildroot.config -LINUX26_TARGETS+=$(TARGET_DIR)/boot/linux-$(LINUX26_VERSION).config -LINUX26_TARGETS+=$(TARGET_DIR)/boot/uclibc.config -ifeq ($(BR2_PACKAGE_BUSYBOX),y) -LINUX26_TARGETS+=$(TARGET_DIR)/boot/busybox.config -endif -endif -# ----------------------------------------------------------------------------- - -$(LINUX26_DIR)/.patched: $(LINUX26_DIR)/.unpacked $(LINUX_HEADERS_DEPENDS) -ifneq ($(LINUX26_PATCH_SOURCE),) - toolchain/patch-kernel.sh $(LINUX26_DIR) $(DL_DIR) $(LINUX26_PATCH_SOURCE) -endif -ifneq ($(LINUX26_BSP_PATCH),) - toolchain/patch-kernel.sh $(LINUX26_DIR) $(DL_DIR) $(LINUX26_BSP_PATCH) -endif - toolchain/patch-kernel.sh $(LINUX26_DIR) toolchain/kernel-headers \ - linux-$(LINUX26_VERSION)-\*.patch{,.gz,.bz2} -ifeq ($(BR2_KERNEL_HEADERS_RT),y) - toolchain/patch-kernel.sh $(LINUX26_DIR) $(DL_DIR) $(LINUX_RT_SOURCE) -endif -ifneq ($(KERNEL_HEADERS_PATCH_DIR),) - toolchain/patch-kernel.sh $(LINUX26_DIR) $(KERNEL_HEADERS_PATCH_DIR) \ - linux-$(LINUX26_VERSION)\*.patch{,.gz,.bz2} -endif -ifeq ($(BR2_PACKAGE_OPENSWAN),y) - toolchain/patch-kernel.sh $(LINUX26_DIR) package/openswan \ - linux-$(LINUX26_VERSION)\*.patch{,.gz,.bz2} -endif - touch $@ - -$(LINUX26_DIR)/.patched.arch: $(LINUX26_DIR)/.patched -ifneq ($(BR2_KERNEL_ARCH_PATCH_DIR),) - if [ -d $(KERNEL_ARCH_PATCH_DIR) ] ; then \ - toolchain/patch-kernel.sh $(LINUX26_DIR) $(KERNEL_ARCH_PATCH_DIR) \ - linux-\*.patch{,.gz,.bz2} ; \ - fi -endif - touch $@ - -$(LINUX26_DIR)/.patched.board: $(LINUX26_DIR)/.patched.arch $(KERNEL_COND_PATCHES) -ifneq ($(LINUX26_PATCH_DIR),) - if [ -d $(LINUX26_PATCH_DIR) ] ; then \ - toolchain/patch-kernel.sh $(LINUX26_DIR) $(LINUX26_PATCH_DIR) \ - linux-$(LINUX26_VERSION)\*.patch{,.gz,.bz2} ; \ - fi -endif - touch $@ - -# ============================================================================= -linux_patch: $(LINUX26_DIR)/.patched.board - -KERNEL_EXTRA_VERSION:=$(call qstrip,$(BR2_EXTRA_VERSION)) - -lxcf: $(LINUX26_DIR)/.config - -$(LINUX26_DIR)/.config: $(LINUX26_DIR)/.patched.board -ifeq ($(BR2_PACKAGE_LINUX_USE_DEFCONFIG),y) - $(MAKE) $(LINUX26_MAKE_FLAGS) -C $(LINUX26_DIR) $(BOARD_NAME)_defconfig -endif -ifeq ($(BR2_PACKAGE_LINUX_USE_XCONFIG),y) -ifeq ($(KERNEL_CONFIG_METHOD),xconfig) - $(MAKE) $(LINUX26_MAKE_FLAGS) -C $(LINUX26_DIR) xconfig || \ - $(MAKE) $(LINUX26_MAKE_FLAGS) -C $(LINUX26_DIR) menuconfig \ -else - $(MAKE) $(LINUX26_MAKE_FLAGS) -C $(LINUX26_DIR) menuconfig -endif -endif -ifeq ($(BR2_PACKAGE_LINUX_USE_KCONFIG),y) - # Try user defined config - if [ -f "$(LINUX26_KCONFIG)" ] ; then \ - cp -dpf $(LINUX26_KCONFIG) $@ ; \ - fi - # Try to get a config for this linux version in the board directory - echo "LINUX26_VERSION = $(LINUX26_VERSION)" - if [ ! -f "$(LINUX26_DIR)/.config" ] ; then \ - if [ -f "$(BOARD_PATH)/$(BOARD_NAME)-linux-$(LINUX26_VERSION).config" ] ; then \ - cp -dpf $(BOARD_PATH)/$(BOARD_NAME)-linux-$(LINUX26_VERSION).config $@ ; \ - fi ; \ - fi - # Try to get a config for latest linux version in the board directory - if [ ! -f "$(LINUX26_DIR)/.config" ] ; then \ - scripts/get_linux_config.sh $(BOARD_PATH) $(LINUX26_DIR) ; \ - fi - # Use a board config defined in the linux source. - if [ ! -f "$(LINUX26_DIR)/.config" ] ; then \ - $(MAKE) $(LINUX26_MAKE_FLAGS) -C $(LINUX26_DIR) $(BOARD_NAME)_defconfig || \ - echo "$(BOARD_NAME)_defconfig failed..." ; \ - fi - # let the user create his/her own config - if [ ! -f "$(LINUX26_DIR)/.config" ] ; then \ - $(MAKE) $(LINUX26_MAKE_FLAGS) -C $(LINUX26_DIR) $(KERNEL_CONFIG_METHOD) ; \ - fi -endif -ifneq ($(call qstrip,$(BR2_EXTRA_VERSION)),) - $(SED) 's,^EXTRAVERSION.*,EXTRAVERSION = $(KERNEL_EXTRA_VERSION),g' $(LINUX26_DIR)/Makefile -endif -# $(strip $(subst ",, - )) - -# ----------------------------------------------------------------------------- -$(LINUX26_DIR)/.configured: $(LINUX26_DIR)/.config - $(SED) '/CONFIG_AEABI=y/d' $(LINUX26_DIR)/.config -ifeq ($(BR2_ARM_EABI),y) - echo "CONFIG_AEABI=y" >> $(LINUX26_DIR)/.config - $(SED) '/CONFIG_OABI_COMPAT/d' $(LINUX26_DIR)/.config - echo "# CONFIG_OABI_COMPAT is not set" >> $(LINUX26_DIR)/.config -else - echo "# CONFIG_AEABI is not set" >> $(LINUX26_DIR)/.config -endif - $(SED) '/CONFIG_IPV6=y/d' $(LINUX26_DIR)/.config -ifeq ($(BR2_INET_IPV6),y) - echo "CONFIG_IPV6=y" >> $(LINUX26_DIR)/.config -else - echo "# CONFIG_IPV6 is not set" >> $(LINUX26_DIR)/.config -endif - $(SED) '/CONFIG_INITRAMFS_SOURCE/d' $(LINUX26_DIR)/.config - $(SED) '/INITRAMFS_ROOT_.ID/d' $(LINUX26_DIR)/.config -ifeq ($(BR2_TARGET_ROOTFS_INITRAMFS),y) - echo "CONFIG_INITRAMFS_SOURCE=\"$(BINARIES_DIR)/rootfs.initramfs\"" >> \ - $(LINUX26_DIR)/.config - echo "CONFIG_INITRAMFS_ROOT_UID=0" >> $(LINUX26_DIR)/.config - echo "CONFIG_INITRAMFS_ROOT_GID=0" >> $(LINUX26_DIR)/.config -else - echo "CONFIG_INITRAMFS_SOURCE=\"\"" >> $(LINUX26_DIR)/.config -endif -ifeq ($(BR2_PACKAGE_BUSYBOX_INITRAMFS),y) - # precedence for a small initramfs - $(SED) '/CONFIG_INITRAMFS_SOURCE/d' $(LINUX26_DIR)/.config - $(SED) '/INITRAMFS_ROOT_.ID/d' $(LINUX26_DIR)/.config - echo "CONFIG_INITRAMFS_SOURCE=\"$(BB_INITRAMFS_TARGET)\"" >> \ - $(LINUX26_DIR)/.config - echo "CONFIG_INITRAMFS_ROOT_UID=0" >> $(LINUX26_DIR)/.config - echo "CONFIG_INITRAMFS_ROOT_GID=0" >> $(LINUX26_DIR)/.config -endif - $(MAKE) $(LINUX26_MAKE_FLAGS) -C $(LINUX26_DIR) oldconfig - touch $@ - -# ----------------------------------------------------------------------------- -$(LINUX26_DIR)/.depend_done: $(LINUX26_DIR)/.configured $(LINUX26_MKIMAGE_DEP) - mkdir -p $(TARGET_DIR)/boot - -mv $(LINUX26_DIR)/localversion* $(TARGET_DIR)/boot - $(MAKE) $(LINUX26_MAKE_FLAGS) -C $(LINUX26_DIR) prepare - touch $@ - -$(LINUX26_DIR)/$(LINUX26_BINLOC): $(INITRAMFS_TARGET) $(BB_INITRAMFS_TARGET) \ - $(LINUX26_DIR)/.depend_done - $(MAKE) $(LINUX26_MAKE_FLAGS) \ - -C $(LINUX26_DIR) $(LINUX26_FORMAT) - touch $@ - -$(LINUX26_KERNEL): $(LINUX26_DIR)/$(LINUX26_BINLOC) - cp -pf $(LINUX26_DIR)/$(LINUX26_BINLOC) $(LINUX26_KERNEL) - touch $@ - -# ----------------------------------------------------------------------------- -$(STAMP_DIR)/linux_modules_target_installed: $(LINUX26_DIR)/.depend_done - rm -rf $(TARGET_DIR)/lib/modules/$(LINUX26_VERSION_PROBED) - rm -f $(TARGET_DIR)/sbin/cardmgr - # Make Linux depend on modules only if enabled in the .config. - @if [ $(shell grep -c "CONFIG_MODULES=y" $(LINUX26_DIR)/.config) != 0 ] ; then \ - echo "*** Installing Linux kernel modules" ; \ - $(MAKE) $(LINUX26_MAKE_FLAGS) -C $(LINUX26_DIR) modules; \ - $(MAKE) $(LINUX26_MAKE_FLAGS) -C $(LINUX26_DIR) \ - DEPMOD=$(STAGING_DIR)/bin/$(GNU_TARGET_NAME)-depmod26 \ - INSTALL_MOD_PATH=$(TARGET_DIR) modules_install; \ - rm -f $(TARGET_DIR)/lib/modules/$(LINUX26_VERSION_PROBED)/build; \ - rm -f $(TARGET_DIR)/lib/modules/$(LINUX26_VERSION_PROBED)/source; \ - $(STAGING_DIR)/bin/$(GNU_TARGET_NAME)-depmod26 -b $(TARGET_DIR) $(LINUX26_VERSION_PROBED); \ - else \ - echo "*** Skipping installing modules since it is not enabled" ; \ - fi - touch $@ - -linux26-menuconfig: $(LINUX26_DIR)/.patched host-sed - [ -f $(LINUX26_DIR)/.config ] || cp $(LINUX26_KCONFIG) $(LINUX26_DIR)/.config - $(MAKE) $(LINUX26_MAKE_FLAGS) -C $(LINUX26_DIR) menuconfig - -[ -f $(LINUX26_DIR)/.config ] && touch $(LINUX26_DIR)/.configured - -linux26-xconfig: $(LINUX26_DIR)/.patched host-sed - [ -f $(LINUX26_DIR)/.config ] || cp $(LINUX26_KCONFIG) $(LINUX26_DIR)/.config - $(MAKE) $(LINUX26_MAKE_FLAGS) -C $(LINUX26_DIR) xconfig - -[ -f $(LINUX26_DIR)/.config ] && touch $(LINUX26_DIR)/.configured - -$(TARGET_DIR)/boot/$(LINUX26_KERNEL_NAME): $(LINUX26_KERNEL) - mkdir -p $(TARGET_DIR)/boot - cp -dpf $(LINUX26_KERNEL) $(TARGET_DIR)/boot/$(LINUX26_KERNEL_NAME) - -$(TARGET_DIR)/boot/buildroot.config: .config - mkdir -p $(TARGET_DIR)/boot - cp -dpf .config $(TARGET_DIR)/boot/buildroot.config - -$(TARGET_DIR)/boot/linux-$(LINUX26_VERSION).config: $(LINUX26_DIR)/.config - mkdir -p $(TARGET_DIR)/boot - cp -dpf $(LINUX26_DIR)/.config $(TARGET_DIR)/boot/linux-$(LINUX26_VERSION).config - -$(TARGET_DIR)/boot/uclibc.config: $(UCLIBC_DIR)/.config - mkdir -p $(TARGET_DIR)/boot - cp -dpf $(UCLIBC_DIR)/.config $(TARGET_DIR)/boot/uclibc.config - -$(TARGET_DIR)/boot/busybox.config: $(BUSYBOX_DIR)/.config - mkdir -p $(TARGET_DIR)/boot - cp -dpf $(BUSYBOX_DIR)/.config $(TARGET_DIR)/boot/busybox.config - -/tftpboot/$(LINUX26_KERNEL_NAME): $(LINUX26_KERNEL) - -mkdir -p /tftpboot - -cp -dpf $(LINUX26_KERNEL) $@ - -touch $@ - -ifneq ($(LINUX_COPYTO),/tftpboot) -$(LINUX_COPYTO)/$(LINUX26_KERNEL_NAME): $(LINUX26_KERNEL) - mkdir -p $(LINUX_COPYTO) - cp -dpf $(LINUX26_KERNEL) $@ - touch $@ -endif - -$(BUILD_DIR)/.linux-version: $(LINUX26_KERNEL) - echo $(LINUX26_VERSION_PROBED) > $(BUILD_DIR)/.linux-version - echo LINUX_MODULES=`$(LINUX26_VERSION_PROBED)` - -linux26: $(LINUX26_TARGETS) - -linux26-version: $(BUILD_DIR)/.linux-version - -linux26-modules: cross-depmod26 $(STAMP_DIR)/linux_modules_target_installed - -linux26-source: $(DL_DIR)/$(LINUX26_SOURCE) - -linux26-unpacked: $(LINUX26_DIR)/.patched - -linux26-config: host-sed $(LINUX26_DIR)/.configured - -linux26-update: - cp -dpf $(LINUX26_DIR)/.config $(LINUX26_KCONFIG) - -# force rebuild -linux26-force: - touch $(LINUX26_DIR)/.configured - -# This has been renamed so we do _NOT_ by default run this on 'make clean' -linux26clean: - rm -f $(STAMP_DIR)/linux_modules_target_installed - rm -f $(LINUX26_KERNEL) $(LINUX26_DIR)/.configured - -$(MAKE) PATH=$(TARGET_PATH) -C $(LINUX26_DIR) clean - -linux26-dirclean: - rm -rf $(LINUX26_DIR) - -linux26-status: linux-status - -# @echo =$() -linux-status: - @echo BOARD_NAME=$(BOARD_NAME) - @echo BR2_BOARD_PATH=$(BR2_BOARD_PATH) - @echo BR2_CUSTOM_LINUX26_PATCH=$(BR2_CUSTOM_LINUX26_PATCH) - @echo BR2_CUSTOM_LINUX26_PATCH_SITE=$(BR2_CUSTOM_LINUX26_PATCH_SITE) - @echo BR2_DOWNLOAD_LINUX26_VERSION=$(BR2_DOWNLOAD_LINUX26_VERSION) - @echo BR2_LINUX_BSP_PATCH=$(BR2_LINUX_BSP_PATCH) - @echo BR2_LINUX_COPYTO=$(BR2_LINUX_COPYTO) - @echo BR2_LINUX_COPYTO_ROOTFS=$(BR2_LINUX_COPYTO_ROOTFS) - @echo BR2_LINUX_COPYTO_TFTPBOOT=$(BR2_LINUX_COPYTO_TFTPBOOT) - @echo BR2_LINUX_VERSION=$(BR2_LINUX_VERSION) - @echo BR2_LINUX26_CUSTOM=$(BR2_LINUX26_CUSTOM) - @echo BR2_LINUX26_VERSION=$(BR2_LINUX26_VERSION) - @echo BR2_KERNEL_ADD_LATEST_RC_PATCH=$(BR2_KERNEL_ADD_LATEST_RC_PATCH) - @echo BR2_KERNEL_ADD_LATEST_SNAPSHOT=$(BR2_KERNEL_ADD_LATEST_SNAPSHOT) - @echo BR2_KERNEL_ADD_MINORPATCH=$(BR2_KERNEL_ADD_MINORPATCH) - @echo BR2_KERNEL_ARCH_PATCH_DIR=$(BR2_KERNEL_ARCH_PATCH_DIR) - @echo BR2_KERNEL_GIT_LEVEL=$(BR2_KERNEL_GIT_LEVEL) - @echo BR2_KERNEL_MINORLEVEL=$(BR2_KERNEL_MINORLEVEL) - @echo BR2_KERNEL_PATCH=$(BR2_KERNEL_PATCH) - @echo BR2_KERNEL_PATCH_SITE=$(BR2_KERNEL_PATCH_SITE) - @echo BR2_KERNEL_RC_LEVEL=$(BR2_KERNEL_RC_LEVEL) - @echo BR2_KERNEL_SITE=$(BR2_KERNEL_SITE) - @echo BR2_PACKAGE_LINUX_KCONFIG=$(BR2_PACKAGE_LINUX_KCONFIG) - @echo BR2_PACKAGE_LINUX_USE_DEFCONFIG=$(BR2_PACKAGE_LINUX_USE_DEFCONFIG) - @echo BR2_PACKAGE_LINUX_USE_KCONFIG=$(BR2_PACKAGE_LINUX_USE_KCONFIG) - @echo BR2_PACKAGE_LINUX_USE_XCONFIG=$(BR2_PACKAGE_LINUX_USE_XCONFIG) - @echo DOWNLOAD_LINUX26_VERSION=$(DOWNLOAD_LINUX26_VERSION) - @echo KERNEL_ARCH_PATCH_DIR=$(KERNEL_ARCH_PATCH_DIR) - @echo KERNEL_COND_PATCHES=$(KERNEL_COND_PATCHES) - @echo KERNEL_EXT=$(KERNEL_EXT) - @echo KERNEL_EXTRA_VERSION=$(KERNEL_EXTRA_VERSION) - @echo KERNEL_HEADERS_PATCH_DIR=$(KERNEL_HEADERS_PATCH_DIR) - @echo LINUX_COPYTO=$(LINUX_COPYTO) - @echo LINUX_HEADERS_VERSION=$(LINUX_HEADERS_VERSION) - @echo LINUX26_BINLOC=$(LINUX26_BINLOC) - @echo LINUX26_DIR=$(LINUX26_DIR) - @echo LINUX26_FORMAT=$(LINUX26_FORMAT) - @echo LINUX26_HEADERS_PATCH_DIR=$(LINUX26_HEADERS_PATCH_DIR) - @echo LINUX26_KERNEL=$(LINUX26_KERNEL) - @echo LINUX26_KERNEL_NAME=$(LINUX26_KERNEL_NAME) - @echo LINUX26_LATEST_GIT_PATCH=$(LINUX26_LATEST_GIT_PATCH) - @echo LINUX26_LATEST_RC_PATCH=$(LINUX26_LATEST_RC_PATCH) - @echo LINUX26_PATCH_DIR=$(LINUX26_PATCH_DIR) - @echo LINUX26_SOURCE=$(LINUX26_SOURCE) - @echo LINUX26_TARGETS=$(LINUX26_TARGETS) - @echo LINUX26_VERSION=$(LINUX26_VERSION) - @echo LINUX26_MAKE_FLAGS=$(LINUX26_MAKE_FLAGS) - @echo BUILD_DIR=$(BUILD_DIR) - @echo TARGETS=$(TARGETS) - -endif -- cgit v1.2.3-55-g7522 From c7ee5853a0d54a32aa69a4e4065e6ecdd63c4a4c Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sat, 3 Apr 2010 18:55:43 +0200 Subject: iso9660: take into account the linux changes Signed-off-by: Thomas Petazzoni --- fs/iso9660/Config.in | 6 +++--- fs/iso9660/iso9660.mk | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/fs/iso9660/Config.in b/fs/iso9660/Config.in index 78305814a..4c00583dc 100644 --- a/fs/iso9660/Config.in +++ b/fs/iso9660/Config.in @@ -1,7 +1,7 @@ config BR2_TARGET_ROOTFS_ISO9660 bool "iso image" - depends on BR2_i386 - depends on !BR2_KERNEL_none + depends on (BR2_i386 || BR2_x86_64) + depends on BR2_LINUX_KERNEL select BR2_TARGET_ROOTFS_EXT2 select BR2_TARGET_GRUB help @@ -13,4 +13,4 @@ config BR2_TARGET_ROOTFS_ISO9660_BOOT_MENU default "fs/iso9660/menu.lst" comment "iso image requires a Linux kernel to be built" - depends on BR2_i386 && BR2_KERNEL_none + depends on (BR2_i386 || BR2_x86_64) && !BR2_LINUX_KERNEL diff --git a/fs/iso9660/iso9660.mk b/fs/iso9660/iso9660.mk index 66e2de20b..6f60893a4 100644 --- a/fs/iso9660/iso9660.mk +++ b/fs/iso9660/iso9660.mk @@ -15,14 +15,14 @@ ifeq ($(BR2_TARGET_ROOTFS_ISO9660_SQUASH),y) ISO9660_OPTS+=-U endif -$(BINARIES_DIR)/rootfs.iso9660: host-cdrkit host-fakeroot $(LINUX_KERNEL) $(BINARIES_DIR)/rootfs.ext2 grub +$(BINARIES_DIR)/rootfs.iso9660: host-cdrkit host-fakeroot linux26 ext2-root grub @$(call MESSAGE,"Generating root filesystem image rootfs.iso9660") mkdir -p $(ISO9660_TARGET_DIR) mkdir -p $(ISO9660_TARGET_DIR)/boot/grub cp $(GRUB_DIR)/stage2/stage2_eltorito $(ISO9660_TARGET_DIR)/boot/grub/ cp $(ISO9660_BOOT_MENU) $(ISO9660_TARGET_DIR)/boot/grub/menu.lst - cp $(LINUX_KERNEL) $(ISO9660_TARGET_DIR)/kernel - cp $(EXT2_TARGET) $(ISO9660_TARGET_DIR)/initrd + cp $(LINUX26_IMAGE_PATH) $(ISO9660_TARGET_DIR)/kernel + cp $(BINARIES_DIR)/rootfs.ext2 $(ISO9660_TARGET_DIR)/initrd # Use fakeroot to pretend all target binaries are owned by root rm -f $(FAKEROOT_SCRIPT) touch $(BUILD_DIR)/.fakeroot.00000 -- cgit v1.2.3-55-g7522 From 9497c0fee20ff66b7f128d3246bcee09244207cb Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sat, 5 Jun 2010 17:33:44 +0200 Subject: module-init-tools: remove support for cross-depmod The new infrastructure to build the Linux kernel doesn't use a cross-depmod. This isn't needed with modern module-init-tools that most distros include perfectly handle this. Signed-off-by: Thomas Petazzoni --- package/module-init-tools/module-init-tools.mk | 44 -------------------------- 1 file changed, 44 deletions(-) diff --git a/package/module-init-tools/module-init-tools.mk b/package/module-init-tools/module-init-tools.mk index 129770e65..8adb684b8 100644 --- a/package/module-init-tools/module-init-tools.mk +++ b/package/module-init-tools/module-init-tools.mk @@ -70,50 +70,6 @@ module-init-tools-dirclean: rm -rf $(MODULE_INIT_TOOLS_DIR) ############################################################# - - -$(MODULE_INIT_TOOLS_DIR2)/.source: $(DL_DIR)/$(MODULE_INIT_TOOLS_SOURCE) - $(MODULE_INIT_TOOLS_CAT) $(DL_DIR)/$(MODULE_INIT_TOOLS_SOURCE) | tar -C $(TOOLCHAIN_DIR) -xvf - - toolchain/patch-kernel.sh $(MODULE_INIT_TOOLS_DIR2) package/module-init-tools \*.patch - $(CONFIG_UPDATE) $(MODULE_INIT_TOOLS_DIR2) - touch $(MODULE_INIT_TOOLS_DIR2)/.source - -$(MODULE_INIT_TOOLS_DIR2)/.configured: $(MODULE_INIT_TOOLS_DIR2)/.source - (cd $(MODULE_INIT_TOOLS_DIR2); \ - CC="$(HOSTCC)" \ - ./configure $(QUIET) \ - --target=$(GNU_TARGET_NAME) \ - --host=$(GNU_HOST_NAME) \ - --build=$(GNU_HOST_NAME) \ - --sysconfdir=/etc \ - --program-transform-name='' \ - ) - touch $(MODULE_INIT_TOOLS_DIR2)/.configured - -$(MODULE_INIT_TOOLS_DIR2)/$(MODULE_INIT_TOOLS_BINARY): $(MODULE_INIT_TOOLS_DIR2)/.configured - $(MAKE) -C $(MODULE_INIT_TOOLS_DIR2) - touch -c $(MODULE_INIT_TOOLS_DIR2)/$(MODULE_INIT_TOOLS_BINARY) - - -$(STAGING_DIR)/bin/$(GNU_TARGET_NAME)-depmod26: $(MODULE_INIT_TOOLS_DIR2)/$(MODULE_INIT_TOOLS_BINARY) - $(INSTALL) -D $(MODULE_INIT_TOOLS_DIR2)/$(MODULE_INIT_TOOLS_BINARY) $(STAGING_DIR)/bin/$(GNU_TARGET_NAME)-depmod26 - -cross-depmod26: $(STAGING_DIR)/bin/$(GNU_TARGET_NAME)-depmod26 - -module-init-tools-source cross-depmod26-source: $(DL_DIR)/$(MODULE_INIT_TOOLS_SOURCE) - -cross-depmod26-clean: - rm -f $(STAGING_DIR)/bin/$(GNU_TARGET_NAME)-depmod26 - -$(MAKE) -C $(MODULE_INIT_TOOLS_DIR2) clean - -cross-depmod26-dirclean: - rm -rf $(MODULE_INIT_TOOLS_DIR2) - -ifeq ($(BR2_PACKAGE_LINUX),y) -HOST_SOURCE+=module-init-tools-source -endif - -############################################################# # ## Toplevel Makefile options # -- cgit v1.2.3-55-g7522 From dcc08e84a5e94e7ffaf52ec4374821e56bb20a34 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sat, 5 Jun 2010 17:39:05 +0200 Subject: module-init-tools: bump version + convert to autotools The "remove-index" patch is no longer needed, the newer version of module-init-tools correctly uses strchr(). The "module-init-tools" patch, whose main purpose was to disable the generation of man pages (it requires docbook2man), is replaced by a simpler implementation, module-init-tools-3.11-add-manpages-config-option.patch. Signed-off-by: Thomas Petazzoni --- ...nit-tools-3.11-add-manpages-config-option.patch | 47 +++++++++++++ .../module-init-tools-remove-index.patch | 12 ---- package/module-init-tools/module-init-tools.mk | 80 +++------------------- package/module-init-tools/module-init-tools.patch | 77 --------------------- 4 files changed, 57 insertions(+), 159 deletions(-) create mode 100644 package/module-init-tools/module-init-tools-3.11-add-manpages-config-option.patch delete mode 100644 package/module-init-tools/module-init-tools-remove-index.patch delete mode 100644 package/module-init-tools/module-init-tools.patch diff --git a/package/module-init-tools/module-init-tools-3.11-add-manpages-config-option.patch b/package/module-init-tools/module-init-tools-3.11-add-manpages-config-option.patch new file mode 100644 index 000000000..28f51de11 --- /dev/null +++ b/package/module-init-tools/module-init-tools-3.11-add-manpages-config-option.patch @@ -0,0 +1,47 @@ +Disable manual pages generation when docbook2man is not available. + +Signed-off-by: Thomas Petazzoni +--- + Makefile.am | 7 ++++++- + configure.ac | 7 +++---- + 2 files changed, 9 insertions(+), 5 deletions(-) + +Index: module-init-tools-3.11/Makefile.am +=================================================================== +--- module-init-tools-3.11.orig/Makefile.am ++++ module-init-tools-3.11/Makefile.am +@@ -39,7 +39,12 @@ + MAN5 = modprobe.conf.5 modules.dep.5 depmod.conf.5 modprobe.d.5 + MAN8 = depmod.8 insmod.8 lsmod.8 rmmod.8 modprobe.8 modinfo.8 + SGML = $(addprefix doc/, $(MAN5:%.5=%.sgml) $(MAN8:%.8=%.sgml)) +-dist_man_MANS = $(MAN5) $(MAN8) ++ ++if HAVE_DOCBOOKTOMAN ++MANPAGES = $(MAN5) $(MAN8) ++endif ++dist_man_MANS = $(MANPAGES) ++ + # If they haven't overridden mandir, fix it (never /man!) + mandir =$(shell if [ @mandir@ = $(prefix)/man ]; then if [ $(prefix) = / ]; then echo /usr/share/man; else echo $(prefix)/share/man; fi; else echo @mandir@; fi) + +Index: module-init-tools-3.11/configure.ac +=================================================================== +--- module-init-tools-3.11.orig/configure.ac ++++ module-init-tools-3.11/configure.ac +@@ -29,13 +29,12 @@ + AC_PROG_CC + AC_PROG_RANLIB + +-AC_CHECK_PROGS(DOCBOOKTOMAN, docbook-to-man docbook2man, [no],) +-if test x"$DOCBOOKTOMAN" = xno ++AC_CHECK_PROGS(DOCBOOKTOMAN, docbook-to-man docbook2man) ++if test x"$DOCBOOKTOMAN" = x + then + AC_MSG_WARN([docbook2man not found]) +- # fail with a meaningfull error if $DOCBOOKTOMAN called by the makefile +- DOCBOOKTOMAN=docbook2man + fi ++AM_CONDITIONAL([HAVE_DOCBOOKTOMAN], [test "x$DOCBOOKTOMAN" != "x"]) + + # Delay adding the zlib_flags until after AC_PROG_CC, so we can distinguish + # between a broken cc and a working cc but missing libz.a. diff --git a/package/module-init-tools/module-init-tools-remove-index.patch b/package/module-init-tools/module-init-tools-remove-index.patch deleted file mode 100644 index 1a2da2859..000000000 --- a/package/module-init-tools/module-init-tools-remove-index.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -ur module-init-tools-3.2.2/modprobe.c module-init-tools-3.2.2-patched/modprobe.c ---- module-init-tools-3.2.2/modprobe.c 2005-12-01 17:42:09.000000000 -0600 -+++ module-init-tools-3.2.2-patched/modprobe.c 2006-12-04 19:50:50.353237649 -0600 -@@ -270,7 +270,7 @@ - char *modname; - - /* Ignore lines without : or which start with a # */ -- ptr = index(line, ':'); -+ ptr = strchr(line, ':'); - if (ptr == NULL || line[strspn(line, "\t ")] == '#') - return 0; - diff --git a/package/module-init-tools/module-init-tools.mk b/package/module-init-tools/module-init-tools.mk index 8adb684b8..3e8b06bde 100644 --- a/package/module-init-tools/module-init-tools.mk +++ b/package/module-init-tools/module-init-tools.mk @@ -3,77 +3,17 @@ # module-init-tools # ############################################################# -MODULE_INIT_TOOLS_VERSION=3.2.2 +MODULE_INIT_TOOLS_VERSION=3.11 MODULE_INIT_TOOLS_SOURCE=module-init-tools-$(MODULE_INIT_TOOLS_VERSION).tar.bz2 -MODULE_INIT_TOOLS_CAT:=$(BZCAT) MODULE_INIT_TOOLS_SITE=$(BR2_KERNEL_MIRROR)/linux/utils/kernel/module-init-tools/ -MODULE_INIT_TOOLS_DIR=$(BUILD_DIR)/module-init-tools-$(MODULE_INIT_TOOLS_VERSION) -MODULE_INIT_TOOLS_DIR2=$(TOOLCHAIN_DIR)/module-init-tools-$(MODULE_INIT_TOOLS_VERSION) -MODULE_INIT_TOOLS_BINARY=depmod -MODULE_INIT_TOOLS_TARGET_BINARY=$(TARGET_DIR)/sbin/$(MODULE_INIT_TOOLS_BINARY) +MODULE_INIT_TOOLS_CONF_OPT = \ + --disable-static-utils \ + --disable-builddir \ + --program-transform-name='' -STRIPPROG=$(STRIPCMD) +# module-init-tools-3.11-add-manpages-config-option.patch is modifying +# configure.ac and Makefile.am +MODULE_INIT_TOOLS_AUTORECONF=YES +HOST_MODULE_INIT_TOOLS_AUTORECONF=YES -$(DL_DIR)/$(MODULE_INIT_TOOLS_SOURCE): - $(call DOWNLOAD,$(MODULE_INIT_TOOLS_SITE),$(MODULE_INIT_TOOLS_SOURCE)) - -$(MODULE_INIT_TOOLS_DIR)/.unpacked: $(DL_DIR)/$(MODULE_INIT_TOOLS_SOURCE) - $(MODULE_INIT_TOOLS_CAT) $(DL_DIR)/$(MODULE_INIT_TOOLS_SOURCE) | tar -C $(BUILD_DIR) -xvf - - toolchain/patch-kernel.sh $(MODULE_INIT_TOOLS_DIR) package/module-init-tools \*.patch - $(CONFIG_UPDATE) $(MODULE_INIT_TOOLS_DIR) - touch $(MODULE_INIT_TOOLS_DIR)/.unpacked - -$(MODULE_INIT_TOOLS_DIR)/.configured: $(MODULE_INIT_TOOLS_DIR)/.unpacked - (cd $(MODULE_INIT_TOOLS_DIR); rm -f config.cache; \ - $(TARGET_CONFIGURE_OPTS) \ - $(TARGET_CONFIGURE_ARGS) \ - INSTALL=$(MODULE_INIT_TOOLS_DIR)/install-sh \ - ./configure $(QUIET) \ - --target=$(GNU_TARGET_NAME) \ - --host=$(GNU_TARGET_NAME) \ - --build=$(GNU_HOST_NAME) \ - --prefix=/ \ - --sysconfdir=/etc \ - --program-transform-name='' \ - ) - touch $(MODULE_INIT_TOOLS_DIR)/.configured - -$(MODULE_INIT_TOOLS_DIR)/$(MODULE_INIT_TOOLS_BINARY): $(MODULE_INIT_TOOLS_DIR)/.configured - $(MAKE) CC=$(TARGET_CC) -C $(MODULE_INIT_TOOLS_DIR) - touch -c $(MODULE_INIT_TOOLS_DIR)/$(MODULE_INIT_TOOLS_BINARY) - -ifeq ($(BR2_PACKAGE_MODUTILS),y) -$(MODULE_INIT_TOOLS_TARGET_BINARY): \ - $(MODULE_INIT_TOOLS_DIR)/$(MODULE_INIT_TOOLS_BINARY) \ - modutils -else -$(MODULE_INIT_TOOLS_TARGET_BINARY): \ - $(MODULE_INIT_TOOLS_DIR)/$(MODULE_INIT_TOOLS_BINARY) -endif -ifeq ($(BR2_PACKAGE_MODUTILS),y) - $(MAKE) prefix=$(TARGET_DIR) -C $(MODULE_INIT_TOOLS_DIR) moveold -endif - STRIPPROG='$(STRIPPROG)' \ - $(MAKE) prefix=$(TARGET_DIR) -C $(MODULE_INIT_TOOLS_DIR) install-exec - rm -Rf $(TARGET_DIR)/usr/man - rm -f $(TARGET_DIR)/sbin/generate-modprobe.conf - rm -f $(TARGET_DIR)/sbin/insmod.static - touch -c $(MODULE_INIT_TOOLS_TARGET_BINARY) - -module-init-tools: $(MODULE_INIT_TOOLS_TARGET_BINARY) - -module-init-tools-clean: - $(MAKE) prefix=$(TARGET_DIR)/usr -C $(MODULE_INIT_TOOLS_DIR) uninstall - -$(MAKE) -C $(MODULE_INIT_TOOLS_DIR) clean - -module-init-tools-dirclean: - rm -rf $(MODULE_INIT_TOOLS_DIR) - -############################################################# -# -## Toplevel Makefile options -# -############################################################## -ifeq ($(BR2_PACKAGE_MODULE_INIT_TOOLS),y) -TARGETS+=module-init-tools -endif +$(eval $(call AUTOTARGETS,package,module-init-tools)) diff --git a/package/module-init-tools/module-init-tools.patch b/package/module-init-tools/module-init-tools.patch deleted file mode 100644 index 456ef1091..000000000 --- a/package/module-init-tools/module-init-tools.patch +++ /dev/null @@ -1,77 +0,0 @@ -diff -aur module-init-tools-3.1~orig/Makefile.in module-init-tools-3.1~patched/Makefile.in ---- module-init-tools-3.1~orig/Makefile.in 2004-11-15 01:59:48.000000000 +0100 -+++ module-init-tools-3.1~patched/Makefile.in 2005-03-22 22:10:26.843808464 +0100 -@@ -613,7 +613,7 @@ - check-am: all-am - $(MAKE) $(AM_MAKEFLAGS) check-TESTS - check: check-am --all-am: Makefile $(PROGRAMS) $(SCRIPTS) $(MANS) -+all-am: Makefile $(PROGRAMS) $(SCRIPTS) - - installdirs: - $(mkinstalldirs) $(DESTDIR)$(bindir) $(DESTDIR)$(sbindir) $(DESTDIR)$(sbindir) $(DESTDIR)$(man5dir) $(DESTDIR)$(man8dir) -@@ -760,17 +760,10 @@ - - release: check clean tarball testsuite - --moveold: check-for-sbin check-for-old move-old-targets -- --check-for-sbin: -- if [ "`echo $(DESTDIR)$(sbindir) | tr -s / /`" = /sbin ]; then :; \ -- else \ -- echo moveold usually only makes sense when installing into /sbin; \ -- exit 1; \ -- fi -+moveold: move-old-targets - - check-for-old: -- if [ -f /sbin/lsmod.old ]; then \ -+ if [ -f $(sbindir)/lsmod.old ]; then \ - echo Someone already moved old versions. >&2; exit 1; \ - fi - -@@ -778,27 +771,28 @@ - # RedHat 8.0 doesn't ship with readlink by default. Use ls -l. - # Also, make symlink from /bin to /sbin for lsmod (FHS compliant). - move-old-targets: -+ if [ ! -f $(sbindir)/lsmod.old ]; then \ - for f in lsmod modprobe rmmod depmod insmod modinfo; do \ -- if [ -L /sbin/$$f ]; then \ -- ln -sf `ls -l /sbin/$$f | sed 's/.* -> //'`.old /sbin/$$f; \ -+ if [ -L $(sbindir)/$$f ]; then \ -+ ln -sf `ls -l $(sbindir)/$$f | sed 's/.* -> //'`.old $(sbindir)/$$f; \ - fi; \ -- mv /sbin/$$f /sbin/$$f.old; \ -- if [ -f /usr/share/man/man8/$$f.8.gz ]; then \ -- mv /usr/share/man/man8/$$f.8.gz \ -- /usr/share/man/man8/$$f.old.8.gz; \ -- elif [ -f /usr/share/man/man8/$$f.8.bz2 ]; then \ -- mv /usr/share/man/man8/$$f.8.bz2 \ -- /usr/share/man/man8/$$f.old.8.bz2; \ -- else \ -- mv /usr/share/man/man8/$$f.8 /usr/share/man/man8/$$f.old.8; \ -+ mv $(sbindir)/$$f $(sbindir)/$$f.old; \ -+ if [ -f $(prefix)/usr/share/man/man8/$$f.8.gz ]; then \ -+ mv $(prefix)/usr/share/man/man8/$$f.8.gz \ -+ $(prefix)/usr/share/man/man8/$$f.old.8.gz; \ -+ elif [ -f $(prefix)/usr/share/man/man8/$$f.8.bz2 ]; then \ -+ mv $(prefix)/usr/share/man/man8/$$f.8.bz2 \ -+ $(prefix)/usr/share/man/man8/$$f.old.8.bz2; \ -+ elif [ -f $(prefix)/usr/share/man/man8/$$f.8 ]; then \ -+ mv $(prefix)/usr/share/man/man8/$$f.8 /usr/share/man/man8/$$f.old.8; \ - fi; \ -- done -+ done; \ - for f in kallsyms ksyms; do \ -- if [ -L /sbin/$$f ]; then \ -- ln -sf `ls -l /sbin/$$f | sed 's/.* -> //'`.old /sbin/$$f; \ -+ if [ -L $(sbindir)/$$f ]; then \ -+ ln -sf `ls -l $(sbindir)/$$f | sed 's/.* -> //'`.old $(sbindir)/$$f; \ - fi; \ -- done -- ln -s /sbin/lsmod.old /bin/lsmod.old -+ done; \ -+ fi - - # For installs in /usr/local/sbin - links: -- cgit v1.2.3-55-g7522 From dc4d5647a528b366d88d4c6f94405c12a1aa0ebf Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sat, 5 Jun 2010 21:26:18 +0200 Subject: linux: Add dependency on host-module-init-tools In order to not depend on module init tools being installed on the development environment of the Buildroot user, let's build module init tools for the host. Signed-off-by: Thomas Petazzoni --- linux/linux.mk | 2 +- package/module-init-tools/module-init-tools.mk | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/linux/linux.mk b/linux/linux.mk index 3e91ecaba..8b83e3066 100644 --- a/linux/linux.mk +++ b/linux/linux.mk @@ -111,7 +111,7 @@ $(LINUX26_DIR)/.stamp_installed: $(LINUX26_DIR)/.stamp_compiled fi $(Q)touch $@ -linux26: $(LINUX26_DEPENDENCIES) $(LINUX26_DIR)/.stamp_installed +linux26: host-module-init-tools $(LINUX26_DEPENDENCIES) $(LINUX26_DIR)/.stamp_installed ifeq ($(BR2_LINUX_KERNEL),y) TARGETS+=linux26 diff --git a/package/module-init-tools/module-init-tools.mk b/package/module-init-tools/module-init-tools.mk index 3e8b06bde..ea7c014dc 100644 --- a/package/module-init-tools/module-init-tools.mk +++ b/package/module-init-tools/module-init-tools.mk @@ -17,3 +17,5 @@ MODULE_INIT_TOOLS_AUTORECONF=YES HOST_MODULE_INIT_TOOLS_AUTORECONF=YES $(eval $(call AUTOTARGETS,package,module-init-tools)) +$(eval $(call AUTOTARGETS,package,module-init-tools,host)) + -- cgit v1.2.3-55-g7522 From 0802370746a91943ec44cbd67363525f72c873e4 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Tue, 8 Jun 2010 13:54:10 +0200 Subject: Add generic functions to enable/set/disable options in kconfig files The KCONFIG_ENABLE_OPT, KCONFIG_SET_OPT and KCONFIG_DISABLE_OPT are new make functions to respectively enable, set and disable options in Kconfig-like files (as used by the kernel, uClibc or Busybox). They can be used as follows : $(call KCONFIG_ENABLE_OPT,CONFIG_FOOBAR,/path/to/.config) $(call KCONFIG_SET_OPT,CONFIG_BARFOO,foobar,/path/to/.config) $(call KCONFIG_DISABLE_OPT,CONFIG_FARBOO,/path/to/.config) Signed-off-by: Thomas Petazzoni --- package/Makefile.package.in | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/package/Makefile.package.in b/package/Makefile.package.in index cdf49f8fe..b702c4988 100644 --- a/package/Makefile.package.in +++ b/package/Makefile.package.in @@ -40,6 +40,21 @@ UPPERCASE = $(strip $(eval __tmp := $1) \ $(__tmp)))) \ $(__tmp)) +define KCONFIG_ENABLE_OPT + $(SED) "/$(1)/d" $(2) + echo "$(1)=y" >> $(2) +endef + +define KCONFIG_SET_OPT + $(SED) "/$(1)/d" $(3) + echo "$(1)=$(2)" >> $(3) +endef + +define KCONFIG_DISABLE_OPT + $(SED) "/$(1)/d" $(2) + echo "# $(1) is not set" >> $(2) +endef + # Define extrators for different archive suffixes INFLATE.bz2 = $(BZCAT) INFLATE.gz = $(ZCAT) -- cgit v1.2.3-55-g7522 From 100c09a53b8806b2281a93ad21744d26f68bcc6b Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Tue, 8 Jun 2010 13:56:19 +0200 Subject: linux: adjust kernel config according to the Buildroot configuration We only adjust the configuration or ARM EABI and IPv6. The (more complicated) initramfs case is handled in a separate commit. The user is expected to take care of all other configuration details (like having Netfilter enabled to make iptables work, etc.) Signed-off-by: Thomas Petazzoni --- linux/linux.mk | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/linux/linux.mk b/linux/linux.mk index 8b83e3066..71d961603 100644 --- a/linux/linux.mk +++ b/linux/linux.mk @@ -84,6 +84,16 @@ ifeq ($(BR2_LINUX_KERNEL_USE_DEFCONFIG),y) $(TARGET_MAKE_ENV) $(MAKE1) $(LINUX26_MAKE_FLAGS) -C $(@D) $(call qstrip,$(BR2_LINUX_KERNEL_DEFCONFIG))_defconfig else ifeq ($(BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG),y) cp $(BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE) $(@D)/.config +endif +ifeq ($(BR2_ARM_EABI),y) + $(call KCONFIG_ENABLE_OPT,CONFIG_AEABI,$(@D)/.config) +else + $(call KCONFIG_DISABLE_OPT,CONFIG_AEABI,$(@D)/.config) +endif +ifeq ($(BR2_INET_IPV6),y) + $(call KCONFIG_ENABLE_OPT,CONFIG_IPV6,$(@D)/.config) +else + $(call KCONFIG_DISABLE_OPT,CONFIG_IPV6,$(@D)/.config) endif $(TARGET_MAKE_ENV) $(MAKE) $(LINUX26_MAKE_FLAGS) -C $(@D) oldconfig $(Q)touch $@ -- cgit v1.2.3-55-g7522 From 4944e8c883efd0e11cc9e7585905e89941eb825b Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sun, 13 Jun 2010 19:18:34 +0200 Subject: linux: add support for linux26-{menuconfig,xconfig,gconfig} targets These targets allow the user to customize the configuration of the Linux kernel. After changing the kernel configuration, the next time the user runs "make", the kernel is rebuilt to take into account the new configuration (not rebuilt from scratch). Signed-off-by: Thomas Petazzoni --- linux/linux.mk | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/linux/linux.mk b/linux/linux.mk index 71d961603..d1f1842f7 100644 --- a/linux/linux.mk +++ b/linux/linux.mk @@ -98,8 +98,9 @@ endif $(TARGET_MAKE_ENV) $(MAKE) $(LINUX26_MAKE_FLAGS) -C $(@D) oldconfig $(Q)touch $@ -# Compilation -$(LINUX26_DIR)/.stamp_compiled: $(LINUX26_DIR)/.stamp_configured +# Compilation. We make sure the kernel gets rebuilt when the +# configuration has changed. +$(LINUX26_DIR)/.stamp_compiled: $(LINUX26_DIR)/.stamp_configured $(LINUX26_DIR)/.config @$(call MESSAGE,"Compiling kernel") $(TARGET_MAKE_ENV) $(MAKE) $(LINUX26_MAKE_FLAGS) -C $(@D) $(LINUX26_IMAGE_NAME) @if [ $(shell grep -c "CONFIG_MODULES=y" $(LINUX26_DIR)/.config) != 0 ] ; then \ @@ -123,6 +124,9 @@ $(LINUX26_DIR)/.stamp_installed: $(LINUX26_DIR)/.stamp_compiled linux26: host-module-init-tools $(LINUX26_DEPENDENCIES) $(LINUX26_DIR)/.stamp_installed +linux26-menuconfig linux26-xconfig linux26-gconfig: $(LINUX26_DIR)/.stamp_configured + $(MAKE) $(LINUX26_MAKE_FLAGS) -C $(LINUX26_DIR) $(subst linux26-,,$@) + ifeq ($(BR2_LINUX_KERNEL),y) TARGETS+=linux26 endif -- cgit v1.2.3-55-g7522 From f507921d391bb2578261a9e45c003e72302dc67a Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sun, 13 Jun 2010 19:19:38 +0200 Subject: linux: add support for initramfs In Buildroot, the kernel is built and installed *before* the root filesystems are built. This allows the root filesystem to correctly contain the kernel modules that have been installed. However, in the initramfs case, the root filesystem is part of the kernel. Therefore, the kernel should be built *after* the root filesystem (which, in the initramfs case simply builds a text file listing all files/directories/devices/symlinks that should be part of the initramfs). However, this isn't possible as the initramfs text file would lack all kernel modules. So, the solution choosen here is to keep the normal order: kernel is built before the root filesystem is generated, and to add a little quirk to retrigger a kernel compilation after the root filesystem generation. To do so, we add a ROOTFS_$(FSTYPE)_POST_TARGETS variable to the fs/common.mk infrastructure. This allows individual filesystems to set a target name that we should depend on *after* generating the root filesystem itself (contrary to normal ROOTFS_$(FSTYPE)_DEPENDENCIES, on which we depend *before* generating the root filesystem). The initramfs code in fs/initramfs/initramfs.mk uses this to add a dependency on 'linux26-rebuild-with-initramfs'. In linux/linux.mk, we do various things : * If BR2_TARGET_ROOTFS_INITRAMFS is enabled (i.e if initramfs is enabled as a root filesystem type), then we create an empty rootfs.initramfs file (remember that at this point, the root filesystem hasn't been generated) and we adjust the kernel configuration to include an initramfs. Of course, in the initial kernel build, this initramfs will be empty. * In the linux26-rebuild-with-initramfs target, we retrigger a compilation of the kernel image, after removing the initramfs in the kernel sources to make sure it gets properly rebuilt (we've experienced cases were modifying the rootfs.initramfs file wouldn't retrigger the generation of the initramfs at the kernel level). This is fairly quirky, but initramfs really is a special case, so in one way or another, we need a little quirk to solve its specialness. Signed-off-by: Thomas Petazzoni --- fs/common.mk | 6 +++++- fs/initramfs/initramfs.mk | 2 ++ linux/linux.mk | 30 ++++++++++++++++++++++++++++++ 3 files changed, 37 insertions(+), 1 deletion(-) diff --git a/fs/common.mk b/fs/common.mk index 50dc97425..74e9ce060 100644 --- a/fs/common.mk +++ b/fs/common.mk @@ -19,6 +19,10 @@ # ROOTFS_$(FSTYPE)_POST_GEN_HOOKS, a list of hooks to call after # generating the filesystem image # +# ROOTFS_$(FSTYPE)_POST_TARGETS, the list of targets that should be +# run after running the main filesystem target. This is useful for +# initramfs, to rebuild the kernel once the initramfs is generated. +# # In terms of configuration option, this macro assumes that the # BR2_TARGET_ROOTFS_$(FSTYPE) config option allows to enable/disable # the generation of a filesystem image of a particular type. If @@ -60,7 +64,7 @@ endif $(1)-root-show-depends: @echo $(ROOTFS_$(2)_DEPENDENCIES) host-fakeroot host-makedevs $(if $(BR2_TARGET_ROOTFS_$(2)_LZMA),host-lzma) -$(1)-root: $(BINARIES_DIR)/rootfs.$(1) +$(1)-root: $(BINARIES_DIR)/rootfs.$(1) $(ROOTFS_$(2)_POST_TARGETS) ifeq ($$(BR2_TARGET_ROOTFS_$(2)),y) TARGETS += $(1)-root diff --git a/fs/initramfs/initramfs.mk b/fs/initramfs/initramfs.mk index 3e8156761..e6d004e9b 100644 --- a/fs/initramfs/initramfs.mk +++ b/fs/initramfs/initramfs.mk @@ -23,4 +23,6 @@ define ROOTFS_INITRAMFS_CMD $(SHELL) fs/initramfs/gen_initramfs_list.sh -u 0 -g 0 $(TARGET_DIR) > $$@ endef +ROOTFS_INITRAMFS_POST_TARGETS += linux26-rebuild-with-initramfs + $(eval $(call ROOTFS_TARGET,initramfs)) \ No newline at end of file diff --git a/linux/linux.mk b/linux/linux.mk index d1f1842f7..593a1b40a 100644 --- a/linux/linux.mk +++ b/linux/linux.mk @@ -94,6 +94,19 @@ ifeq ($(BR2_INET_IPV6),y) $(call KCONFIG_ENABLE_OPT,CONFIG_IPV6,$(@D)/.config) else $(call KCONFIG_DISABLE_OPT,CONFIG_IPV6,$(@D)/.config) +endif +ifeq ($(BR2_TARGET_ROOTFS_INITRAMFS),y) + # As the kernel gets compiled before root filesystems are + # built, we create a fake initramfs file list. It'll be + # replaced later by the real list, and the kernel will be + # rebuilt using the linux26-rebuild-with-initramfs target. + touch $(BINARIES_DIR)/rootfs.initramfs + $(call KCONFIG_ENABLE_OPT,CONFIG_BLK_DEV_INITRD,$(@D)/.config) + $(call KCONFIG_SET_OPT,CONFIG_INITRAMFS_SOURCE,\"$(BINARIES_DIR)/rootfs.initramfs\",$(@D)/.config) + $(call KCONFIG_ENABLE_OPT,CONFIG_INITRAMFS_COMPRESSION_GZIP,$(@D)/.config) +else + $(call KCONFIG_DISABLE_OPT,CONFIG_BLK_DEV_INITRD,$(@D)/.config) + $(call KCONFIG_SET_OPT,CONFIG_INITRAMFS_SOURCE,\"\",$(@D)/.config) endif $(TARGET_MAKE_ENV) $(MAKE) $(LINUX26_MAKE_FLAGS) -C $(@D) oldconfig $(Q)touch $@ @@ -127,6 +140,23 @@ linux26: host-module-init-tools $(LINUX26_DEPENDENCIES) $(LINUX26_DIR)/.stamp_in linux26-menuconfig linux26-xconfig linux26-gconfig: $(LINUX26_DIR)/.stamp_configured $(MAKE) $(LINUX26_MAKE_FLAGS) -C $(LINUX26_DIR) $(subst linux26-,,$@) +# Support for rebuilding the kernel after the initramfs file list has +# been generated in $(BINARIES_DIR)/rootfs.initramfs. +$(LINUX26_DIR)/.stamp_initramfs_rebuilt: $(LINUX26_DIR)/.stamp_installed $(BINARIES_DIR)/rootfs.initramfs + @$(call MESSAGE,"Rebuilding kernel with initramfs") + # Remove the previously generated initramfs which was empty, + # to make sure the kernel will actually regenerate it. + $(RM) -f $(@D)/usr/initramfs_data.cpio.* + # Build the kernel. + $(TARGET_MAKE_ENV) $(MAKE) $(LINUX26_MAKE_FLAGS) -C $(@D) $(LINUX26_IMAGE_NAME) + # Copy the kernel image to its final destination + cp $(LINUX26_IMAGE_PATH) $(BINARIES_DIR) + $(Q)touch $@ + +# The initramfs building code must make sure this target gets called +# after it generated the initramfs list of files. +linux26-rebuild-with-initramfs: $(LINUX26_DIR)/.stamp_initramfs_rebuilt + ifeq ($(BR2_LINUX_KERNEL),y) TARGETS+=linux26 endif -- cgit v1.2.3-55-g7522 From 7b7b4260966a5d991b1dabc82c792fbecd77c63a Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Fri, 18 Jun 2010 08:44:06 +0200 Subject: Remove now unused Config.in for kernel selection It's now linux/Config.in that allows to configure the kernel configuration/compilation. Signed-off-by: Thomas Petazzoni --- target/Config.in | 50 -------------------------------------------------- 1 file changed, 50 deletions(-) delete mode 100644 target/Config.in diff --git a/target/Config.in b/target/Config.in deleted file mode 100644 index 2d967931e..000000000 --- a/target/Config.in +++ /dev/null @@ -1,50 +0,0 @@ -menu "Kernel" -choice - prompt "Kernel type" - default BR2_KERNEL_none - -config BR2_KERNEL_none - bool "none" - help - Do not build a kernel - -config BR2_KERNEL_LINUX_ADVANCED - bool "linux (Advanced configuration)" - select BR2_PACKAGE_LINUX - help - The Linux kernel - Advanced Configuration. - http://www.kernel.org/ - - Note: Requires kernel-headers >= 2.6.19 since the other - kernel headers are just that (headers) and not full - kernels. This is a feature. - -# The kernel with the same version as linux headers cannot be compiled -# when using an external toolchain, because the linux headers are not -# handled by Buildroot in this case. -if BR2_TOOLCHAIN_BUILDROOT - -config BR2_KERNEL_LINUX - bool "linux (Same version as linux headers)" - select BR2_PACKAGE_LINUX - help - The Linux kernel. - http://www.kernel.org/ - - Note: Requires kernel-headers >= 2.6.19 since the other - kernel headers are just that (headers) and not full - kernels. This is a feature. - -endif - -endchoice - -config BR2_PACKAGE_LINUX - bool - -if BR2_PACKAGE_LINUX -source "target/linux/Config.in" -source "target/linux/Config.in.advanced" -endif - -endmenu -- cgit v1.2.3-55-g7522