Discussion:
[pull request] Pull request for branch linux-cleanup
(too old to reply)
Thomas Petazzoni
2010-06-13 18:50:04 UTC
Permalink
Hello,

Here is a set of 10 patches that completely rewrites the Linux kernel
compilation process in Buildroot. It is supposed to be applied on top
of the bootloaders-cleanup branch I've sent yesterday.

I've fairly drastically reduced the number of options to configure the
kernel, and particulary removed the horrible mess of version
selection. See the first commit in this branch for what remains in
terms of configuration options for the kernel. As I've removed quite a
few things, I'm interested to know how you're using Buildroot to build
your kernel, and whether this proposal still matches your use cases.

Peter: for me, this patch set is ready for inclusion, unless there are
comments, of course.

Thomas

The following changes since commit fa2a311b7756fc458ae55b5aa90ac865cef6c498:
Thomas Petazzoni (1):
linux: fix dependency on mkimage

are available in the git repository at:

git://git.busybox.net/~tpetazzoni/git/buildroot linux-cleanup

Thomas Petazzoni (10):
New, simpler, infrastructure for building the Linux kernel
Remove old Linux infrastructure
iso9660: take into account the linux changes
module-init-tools: remove support for cross-depmod
module-init-tools: bump version + convert to autotools
linux: Add dependency on host-module-init-tools
Add generic functions to enable/set/disable options in kconfig files
linux: adjust kernel config according to the Buildroot configuration
linux: add support for linux26-{menuconfig,xconfig,gconfig} targets
linux: add support for initramfs

Config.in | 2 +-
Makefile | 5 +-
fs/common.mk | 6 +-
fs/initramfs/initramfs.mk | 2 +
fs/iso9660/Config.in | 4 +-
fs/iso9660/iso9660.mk | 6 +-
linux/Config.in | 129 +++++
linux/linux.mk | 169 +++++++
package/Makefile.package.in | 15 +
...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 | 124 +-----
package/module-init-tools/module-init-tools.patch | 77 ---
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 --------------------
19 files changed, 385 insertions(+), 1569 deletions(-)
create mode 100644 linux/Config.in
create mode 100644 linux/linux.mk
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
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

Thanks,
--
Thomas Petazzoni
Thomas Petazzoni
2010-06-13 18:50:05 UTC
Permalink
This patch introduces a single, simple, infrastructure to build the
Linux kernel. The configuration is limited to :

* Kernel version: a fixed recent stable version, 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 <thomas.petazzoni-wi1+55ScJUtKEb57/***@public.gmane.org>
---
Config.in | 2 +-
Makefile | 1 +
linux/Config.in | 129 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
linux/linux.mk | 120 +++++++++++++++++++++++++++++++++++++++++++++++++++
4 files changed, 251 insertions(+), 1 deletions(-)
create mode 100644 linux/Config.in
create mode 100644 linux/linux.mk

diff --git a/Config.in b/Config.in
index f5eb859..0a07576 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 67e41ae..a72dc80 100644
--- a/Makefile
+++ b/Makefile
@@ -322,6 +322,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 0000000..8449d6b
--- /dev/null
+++ b/linux/Config.in
@@ -0,0 +1,129 @@
+menu "Kernel"
+
+config BR2_LINUX_KERNEL
+ bool "Linux Kernel"
+
+if BR2_LINUX_KERNEL
+
+#
+# Version selection. We provide the choice between:
+#
+# 1. A limited number of stable versions
+# 2. A custom stable version
+# 3. 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_CUSTOM_STABLE
+ bool "Custom stable version"
+
+config BR2_LINUX_KERNEL_CUSTOM_TARBALL
+ bool "Custom tarball"
+
+endchoice
+
+if BR2_LINUX_KERNEL_CUSTOM_STABLE
+
+config BR2_LINUX_KERNEL_CUSTOM_STABLE_VALUE
+ string "Stable kernel version"
+ default "2.6.34"
+
+endif # BR2_LINUX_KERNEL_CUSTOM_STABLE
+
+if BR2_LINUX_KERNEL_CUSTOM_TARBALL
+
+config BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION
+ string "URL of custom kernel tarball"
+
+endif # BR2_LINUX_KERNEL_CUSTOM_TARBALL
+
+config BR2_LINUX_KERNEL_VERSION
+ string
+ default "2.6.34" if BR2_LINUX_KERNEL_2_6_34
+ default BR2_LINUX_KERNEL_CUSTOM_STABLE_VALUE if BR2_LINUX_KERNEL_CUSTOM_STABLE
+ default "custom" if BR2_LINUX_KERNEL_CUSTOM_TARBALL
+
+#
+# Patch selection
+#
+
+config BR2_LINUX_KERNEL_PATCH
+ bool "Custom patch for the Linux kernel"
+
+if BR2_LINUX_KERNEL_PATCH
+
+config BR2_LINUX_KERNEL_PATCH_LOCATION
+ string "Location of 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.
+
+endif # BR2_LINUX_KERNEL_PATCH
+
+#
+# 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
+ bool "Using a custom config file"
+
+endchoice
+
+if BR2_LINUX_KERNEL_USE_DEFCONFIG
+
+config BR2_LINUX_KERNEL_DEFCONFIG
+ string "Defconfig name"
+ help
+ Name of the defconfig file to use, without the leading
+ _defconfig.
+
+endif # BR2_LINUX_KERNEL_USE_DEFCONFIG
+
+if BR2_LINUX_KERNEL_USE_CUSTOM
+
+config BR2_LINUX_KERNEL_CUSTOM_FILE
+ string "Configuration file path"
+ help
+ Path to the kernel configuration file.
+
+endif # BR2_LINUX_KERNEL_USE_CUSTOM
+
+#
+# Binary format
+#
+
+choice
+ prompt "Kernel binary format"
+ default BR2_LINUX_KERNEL_UIMAGE if !BR2_386
+ default BR2_LINUX_KERNEL_BZIMAGE if BR2_386
+
+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 0000000..39abdea
--- /dev/null
+++ b/linux/linux.mk
@@ -0,0 +1,120 @@
+###############################################################################
+#
+# 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:=http://kernel.org/pub/linux/kernel/v2.6/
+endif
+
+LINUX26_DIR:=$(BUILD_DIR)/linux-$(LINUX26_VERSION)
+LINUX26_PATCH=$(call qstrip,$(BR2_LINUX_KERNEL_PATCH_LOCATION))
+
+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)
+
+# Get the real Linux version, which tells us where kernel modules are
+# going to be installed in the target filesystem.
+LINUX26_VERSION_PROBED = `$(MAKE) $(LINUX26_MAKE_FLAGS) -C $(LINUX26_DIR) --no-print-directory -s kernelrelease`
+
+ifeq ($(BR2_LINUX_KERNEL_UIMAGE),y)
+LINUX26_IMAGE_PATH=$(LINUX26_DIR)/arch/$(KERNEL_ARCH)/boot/uImage
+LINUX26_DEPENDENCIES+=$(MKIMAGE)
+else ifeq ($(BR2_LINUX_KERNEL_BZIMAGE),y)
+LINUX26_IMAGE_PATH=$(LINUX26_DIR)/arch/$(KERNEL_ARCH)/boot/bzImage
+else ifeq ($(BR2_LINUX_KERNEL_ZIMAGE),y)
+LINUX26_IMAGE_PATH=$(LINUX26_DIR)/arch/$(KERNEL_ARCH)/boot/zImage
+else ifeq ($(BR2_LINUX_KERNEL_VMLINUX),y)
+LINUX26_IMAGE_PATH=$(LINUX26_DIR)/arch/$(KERNEL_ARCH)/boot/vmlinux.bin
+endif
+
+# Download
+$(LINUX26_DIR)/.stamp_downloaded:
+ @$(call MESSAGE,"Downloading kernel")
+ $(call DOWNLOAD,$(LINUX26_SITE),$(LINUX26_SOURCE))
+ifeq ($(BR2_LINUX_KERNEL_PATCH),y)
+ifneq ($(findstring http://,$(LINUX26_PATCH)),)
+ $(call DOWNLOAD,$(dir $(LINUX26_PATCH)),$(notdir $(LINUX26_PATCH)))
+else ifneq ($(findstring ftp://,$(LINUX26_PATCH)),)
+ $(call DOWNLOAD,$(dir $(LINUX26_PATCH)),$(notdir $(LINUX26_PATCH)))
+endif
+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")
+ifeq ($(BR2_LINUX_KERNEL_PATCH),y)
+ifneq ($(findstring http://,$(LINUX26_PATCH)),)
+ toolchain/patch-kernel.sh $(@D) $(DL_DIR) $(notdir $(LINUX26_PATCH))
+else ifneq ($(findstring ftp://,$(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)
+ $(MAKE1) $(LINUX26_MAKE_FLAGS) -C $(@D) $(call qstrip,$(BR2_LINUX_KERNEL_DEFCONFIG))_defconfig
+else ifeq ($(BR2_LINUX_KERNEL_USE_CUSTOM),y)
+ cp $(BR2_LINUX_KERNEL_CUSTOM_FILE) $(@D)/.config
+ yes "" | $(MAKE1) $(LINUX26_MAKE_FLAGS) -C $(@D) oldconfig
+endif
+ $(Q)touch $@
+
+# Compilation
+$(LINUX26_DIR)/.stamp_compiled: $(LINUX26_DIR)/.stamp_configured
+ @$(call MESSAGE,"Compiling kernel")
+ $(MAKE) $(LINUX26_MAKE_FLAGS) -C $(@D)
+ifeq ($(BR2_LINUX_KERNEL_UIMAGE),y)
+ $(MAKE) $(LINUX26_MAKE_FLAGS) -C $(@D) uImage
+endif
+ $(Q)touch $@
+
+# Installation
+$(LINUX26_DIR)/.stamp_installed: $(LINUX26_DIR)/.stamp_compiled
+ @$(call MESSAGE,"Installing kernel")
+ cp $(LINUX26_IMAGE_PATH) $(BINARIES_DIR)
+ $(MAKE1) $(LINUX26_MAKE_FLAGS) -C $(@D) \
+ INSTALL_MOD_PATH=$(TARGET_DIR) modules_install
+ # Remove symbolic links pointing to build directories, not
+ # relevant on the target
+ rm -f $(TARGET_DIR)/lib/modules/$(LINUX26_VERSION_PROBED)/build
+ rm -f $(TARGET_DIR)/lib/modules/$(LINUX26_VERSION_PROBED)/source
+ $(Q)touch $@
+
+linux26: $(LINUX26_DEPENDENCIES) $(LINUX26_DIR)/.stamp_installed
+
+ifeq ($(BR2_LINUX_KERNEL),y)
+TARGETS+=linux26
+endif
\ No newline at end of file
--
1.7.0.4
Peter Korsgaard
2010-06-18 19:30:06 UTC
Permalink
Hi, some comments:

Thomas> This patch introduces a single, simple, infrastructure to build the
Thomas> Linux kernel. The configuration is limited to :

Thomas> * Kernel version: a fixed recent stable version, custom stable
Thomas> version, or custom tarball URL

Thomas> * Kernel patch: either a local file, directory or an URL

Thomas> * Kernel configuration: either the name of a defconfig or the
Thomas> location of a custom configuration file

Thomas> * Kernel image: either uImage, bzImage, zImage or vmlinux.

Thomas> +choice
Thomas> + prompt "Kernel version"
Thomas> + default BR2_LINUX_KERNEL_2_6_34
Thomas> +
Thomas> +config BR2_LINUX_KERNEL_2_6_34
Thomas> + bool "2.6.34"
Thomas> +
Thomas> +config BR2_LINUX_KERNEL_CUSTOM_STABLE
Thomas> + bool "Custom stable version"

I would drop "stable" here.

Thomas> +
Thomas> +config BR2_LINUX_KERNEL_CUSTOM_TARBALL
Thomas> + bool "Custom tarball"
Thomas> +

What about the same-as-kernel-headers choice? Or perhaps the fixed
version should used that?

Thomas> +if BR2_LINUX_KERNEL_CUSTOM_TARBALL
Thomas> +
Thomas> +config BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION
Thomas> + string "URL of custom kernel tarball"
Thomas> +
Thomas> +endif # BR2_LINUX_KERNEL_CUSTOM_TARBALL

For single options, just adding the 'depends on
BR2_LINUX_KERNEL_CUSTOM_TARBALL' is shorter/easier to read than all
those endif's - IMHO.

Thomas> +config BR2_LINUX_KERNEL_PATCH
Thomas> + bool "Custom patch for the Linux kernel"
Thomas> +
Thomas> +if BR2_LINUX_KERNEL_PATCH
Thomas> +
Thomas> +config BR2_LINUX_KERNEL_PATCH_LOCATION
Thomas> + string "Location of custom kernel patch"
Thomas> + help
Thomas> + The location can be an URL, a file path, or a directory. In
Thomas> + the case of a directory, all files matching linux-*.patch
Thomas> + will be applied.
Thomas> +
Thomas> +endif # BR2_LINUX_KERNEL_PATCH

Why not just keep this a single option and only make it do something if
it's different than ""?

Thomas> +choice
Thomas> + prompt "Kernel configuration"
Thomas> + default BR2_LINUX_KERNEL_USE_DEFCONFIG
Thomas> +
Thomas> +config BR2_LINUX_KERNEL_USE_DEFCONFIG
Thomas> + bool "Using a defconfig"
Thomas> +
Thomas> +config BR2_LINUX_KERNEL_USE_CUSTOM
Thomas> + bool "Using a custom config file"
Thomas> +
Thomas> +endchoice
Thomas> +
Thomas> +if BR2_LINUX_KERNEL_USE_DEFCONFIG
Thomas> +
Thomas> +config BR2_LINUX_KERNEL_DEFCONFIG
Thomas> + string "Defconfig name"
Thomas> + help
Thomas> + Name of the defconfig file to use, without the leading
Thomas> + _defconfig.

Trailing.

Thomas> +
Thomas> +endif # BR2_LINUX_KERNEL_USE_DEFCONFIG
Thomas> +
Thomas> +if BR2_LINUX_KERNEL_USE_CUSTOM
Thomas> +
Thomas> +config BR2_LINUX_KERNEL_CUSTOM_FILE
Thomas> + string "Configuration file path"
Thomas> + help
Thomas> + Path to the kernel configuration file.
Thomas> +
Thomas> +endif # BR2_LINUX_KERNEL_USE_CUSTOM

I think it would be nicer to do something like what you're doing with
BR2_LINUX_KERNEL_PATCH_LOCATION - E.G. make it autodetect if it's a
defconfig in the kernel tree or an external file. You can either do this
using $(wildcard ..) (to check if the file exists), or simply check for
slashes in the string $(findstring /,..).

If we do this, then I would prefer to give the complete make target for
defconfigs - E.G. 'blah_defconfig', no just 'blah'.

Thomas> +choice
Thomas> + prompt "Kernel binary format"
Thomas> + default BR2_LINUX_KERNEL_UIMAGE if !BR2_386
Thomas> + default BR2_LINUX_KERNEL_BZIMAGE if BR2_386

The symbol is BR2_i386. I guess we also want it on BR2_x86_64 as well.

I would have expected to see a hidden BR2_LINUX_KERNEL_FORMAT with the
text strings "zImage", "bzImage", "uImage", .. - That can then be used
as the make target.

Thomas> +# Get the real Linux version, which tells us where kernel modules are
Thomas> +# going to be installed in the target filesystem.
Thomas> +LINUX26_VERSION_PROBED = `$(MAKE) $(LINUX26_MAKE_FLAGS) -C $(LINUX26_DIR) --no-print-directory -s kernelrelease`

We typically use $(shell ..)

Thomas> +# Download
Thomas> +$(LINUX26_DIR)/.stamp_downloaded:
Thomas> + @$(call MESSAGE,"Downloading kernel")
Thomas> + $(call DOWNLOAD,$(LINUX26_SITE),$(LINUX26_SOURCE))
Thomas> +ifeq ($(BR2_LINUX_KERNEL_PATCH),y)
Thomas> +ifneq ($(findstring http://,$(LINUX26_PATCH)),)
Thomas> + $(call DOWNLOAD,$(dir $(LINUX26_PATCH)),$(notdir $(LINUX26_PATCH)))
Thomas> +else ifneq ($(findstring ftp://,$(LINUX26_PATCH)),)
Thomas> + $(call DOWNLOAD,$(dir $(LINUX26_PATCH)),$(notdir $(LINUX26_PATCH)))

You can combine these using $(filter) - E.G.:
ifneq ($(filter http:// ftp://,$(LINUX26_PATCH)),)

Thomas> +# Patch
Thomas> +$(LINUX26_DIR)/.stamp_patched: $(LINUX26_DIR)/.stamp_extracted
Thomas> + @$(call MESSAGE,"Patching kernel")
Thomas> +ifeq ($(BR2_LINUX_KERNEL_PATCH),y)
Thomas> +ifneq ($(findstring http://,$(LINUX26_PATCH)),)
Thomas> + toolchain/patch-kernel.sh $(@D) $(DL_DIR) $(notdir $(LINUX26_PATCH))
Thomas> +else ifneq ($(findstring ftp://,$(LINUX26_PATCH)),)
Thomas> + toolchain/patch-kernel.sh $(@D) $(DL_DIR) $(notdir $(LINUX26_PATCH))

Same as above.

Thomas> +else ifeq ($(shell test -d $(LINUX26_PATCH) && echo "dir"),dir)
Thomas> + toolchain/patch-kernel.sh $(@D) $(LINUX26_PATCH) linux-*.patch

You have to escape the * - E.G. linux-\*.patch

Thomas> +else
Thomas> + toolchain/patch-kernel.sh $(@D) $(dir $(LINUX26_PATCH)) $(notdir $(LINUX26_PATCH))
Thomas> +endif
Thomas> +endif
Thomas> + $(Q)touch $@
Thomas> +
Thomas> +
Thomas> +# Configuration
Thomas> +$(LINUX26_DIR)/.stamp_configured: $(LINUX26_DIR)/.stamp_patched
Thomas> + @$(call MESSAGE,"Configuring kernel")
Thomas> +ifeq ($(BR2_LINUX_KERNEL_USE_DEFCONFIG),y)
Thomas> + $(MAKE1) $(LINUX26_MAKE_FLAGS) -C $(@D) $(call qstrip,$(BR2_LINUX_KERNEL_DEFCONFIG))_defconfig
Thomas> +else ifeq ($(BR2_LINUX_KERNEL_USE_CUSTOM),y)
Thomas> + cp $(BR2_LINUX_KERNEL_CUSTOM_FILE) $(@D)/.config
Thomas> + yes "" | $(MAKE1) $(LINUX26_MAKE_FLAGS) -C $(@D) oldconfig

Hmm, why the yes '' here and not for defconfig? I would prefer to get
rid of it, so the user is in control (they can always use the yes
''|make stuff on the BR commandline if they want unattended builds, like
I do for buildbot).

Thomas> +endif
Thomas> + $(Q)touch $@
Thomas> +
Thomas> +# Compilation
Thomas> +$(LINUX26_DIR)/.stamp_compiled: $(LINUX26_DIR)/.stamp_configured
Thomas> + @$(call MESSAGE,"Compiling kernel")
Thomas> + $(MAKE) $(LINUX26_MAKE_FLAGS) -C $(@D)
Thomas> +ifeq ($(BR2_LINUX_KERNEL_UIMAGE),y)
Thomas> + $(MAKE) $(LINUX26_MAKE_FLAGS) -C $(@D) uImage

Why not simply $(MAKE) $(LINUX26_MAKE_FLAGS) -C $(@D) $(LINUX26_FORMAT)
where LINUX26_FORMAT is uImage/zImage/bzImage? That's afaik how it used
to be done.

Thomas> +# Installation
Thomas> +$(LINUX26_DIR)/.stamp_installed: $(LINUX26_DIR)/.stamp_compiled
Thomas> + @$(call MESSAGE,"Installing kernel")
Thomas> + cp $(LINUX26_IMAGE_PATH) $(BINARIES_DIR)
Thomas> + $(MAKE1) $(LINUX26_MAKE_FLAGS) -C $(@D) \
Thomas> + INSTALL_MOD_PATH=$(TARGET_DIR) modules_install

Does that do something sane with a nonmodular kernel?

Thomas> + # Remove symbolic links pointing to build directories, not
Thomas> + # relevant on the target
Thomas> + rm -f $(TARGET_DIR)/lib/modules/$(LINUX26_VERSION_PROBED)/build
Thomas> + rm -f $(TARGET_DIR)/lib/modules/$(LINUX26_VERSION_PROBED)/source
Thomas> + $(Q)touch $@
Thomas> +
Thomas> +linux26: $(LINUX26_DEPENDENCIES) $(LINUX26_DIR)/.stamp_installed
Thomas> +
Thomas> +ifeq ($(BR2_LINUX_KERNEL),y)
Thomas> +TARGETS+=linux26
Thomas> +endif
Thomas> \ No newline at end of file

You're good at this one ;)
--
Bye, Peter Korsgaard
Thomas Petazzoni
2010-06-19 14:13:27 UTC
Permalink
Hello Peter,

Thanks for reviewing my changes! My answer to your comments below.

On Fri, 18 Jun 2010 21:30:06 +0200
Post by Peter Korsgaard
Thomas> +choice
Thomas> + prompt "Kernel version"
Thomas> + default BR2_LINUX_KERNEL_2_6_34
Thomas> +
Thomas> +config BR2_LINUX_KERNEL_2_6_34
Thomas> + bool "2.6.34"
Thomas> +
Thomas> +config BR2_LINUX_KERNEL_CUSTOM_STABLE
Thomas> + bool "Custom stable version"
I would drop "stable" here.
Why ? Only stable releases, i.e releases available in
http://kernel.org/pub/linux/kernel/v2.6/ are supported. And in this
directory, only stable releases are available.
Post by Peter Korsgaard
Thomas> +
Thomas> +config BR2_LINUX_KERNEL_CUSTOM_TARBALL
Thomas> + bool "Custom tarball"
Thomas> +
What about the same-as-kernel-headers choice? Or perhaps the fixed
version should used that?
I could add another option to say « same version as kernel headers ».
However, I'd prefer to keep the "BR2_LINUX_KERNEL_2_6_34" option as it
is: remember that in the external toolchain case, « same version as
kernel headers » doesn't make sense.
Post by Peter Korsgaard
Thomas> +if BR2_LINUX_KERNEL_CUSTOM_TARBALL
Thomas> +
Thomas> +config BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION
Thomas> + string "URL of custom kernel tarball"
Thomas> +
Thomas> +endif # BR2_LINUX_KERNEL_CUSTOM_TARBALL
For single options, just adding the 'depends on
BR2_LINUX_KERNEL_CUSTOM_TARBALL' is shorter/easier to read than all
those endif's - IMHO.
Good idea, will do.
Post by Peter Korsgaard
Thomas> +config BR2_LINUX_KERNEL_PATCH
Thomas> + bool "Custom patch for the Linux kernel"
Thomas> +
Thomas> +if BR2_LINUX_KERNEL_PATCH
Thomas> +
Thomas> +config BR2_LINUX_KERNEL_PATCH_LOCATION
Thomas> + string "Location of custom kernel patch"
Thomas> + help
Thomas> + The location can be an URL, a file path, or a directory. In
Thomas> + the case of a directory, all files matching linux-*.patch
Thomas> + will be applied.
Thomas> +
Thomas> +endif # BR2_LINUX_KERNEL_PATCH
Why not just keep this a single option and only make it do something if
it's different than ""?
Good idea, will also do.
Post by Peter Korsgaard
Thomas> + Name of the defconfig file to use, without the leading
Thomas> + _defconfig.
Trailing.
Will fix.
Post by Peter Korsgaard
Thomas> +endif # BR2_LINUX_KERNEL_USE_DEFCONFIG
Thomas> +
Thomas> +if BR2_LINUX_KERNEL_USE_CUSTOM
Thomas> +
Thomas> +config BR2_LINUX_KERNEL_CUSTOM_FILE
Thomas> + string "Configuration file path"
Thomas> + help
Thomas> + Path to the kernel configuration file.
Thomas> +
Thomas> +endif # BR2_LINUX_KERNEL_USE_CUSTOM
I think it would be nicer to do something like what you're doing with
BR2_LINUX_KERNEL_PATCH_LOCATION - E.G. make it autodetect if it's a
defconfig in the kernel tree or an external file. You can either do this
using $(wildcard ..) (to check if the file exists), or simply check for
slashes in the string $(findstring /,..).
Why not, but I would find the semantic of the option rather strange,
and there might be corner cases where deciding whether it is a
defconfig name or the patch to a configuration file would be difficult.
Post by Peter Korsgaard
From an user perspective, I think it's clearer to have two separate
options for this, rather than a single option with a strange semantic
which requires looking at the help text to understand what it actually
does.

But of course, if you insist on having this, I'll implement it, no big
deal.
Post by Peter Korsgaard
If we do this, then I would prefer to give the complete make target for
defconfigs - E.G. 'blah_defconfig', no just 'blah'.
Why not, but this would not be consistent with what we do with U-Boot
configuration (in which we also ask only for the board name, and we
automatically suffix "_config" to it to configure U-Boot). Of course,
if you think the way we do things in U-Boot now is incorrect, we can
also fix it, but I'd prefer to have one option or the other, but not an
inconsistent mix of both.
Post by Peter Korsgaard
Thomas> +choice
Thomas> + prompt "Kernel binary format"
Thomas> + default BR2_LINUX_KERNEL_UIMAGE if !BR2_386
Thomas> + default BR2_LINUX_KERNEL_BZIMAGE if BR2_386
The symbol is BR2_i386. I guess we also want it on BR2_x86_64 as well.
Right, will fix.
Post by Peter Korsgaard
I would have expected to see a hidden BR2_LINUX_KERNEL_FORMAT with the
text strings "zImage", "bzImage", "uImage", .. - That can then be used
as the make target.
Why not. But I must confess that I find this computation of values
inside Config.in files a bit ugly: some values are computed in
Config.in files, some in the makefile rules directly. But here too, if
you insist on having this, I'll go ahead and implement it, as I don't
have a very strong opinion on this.
Post by Peter Korsgaard
Thomas> +# Get the real Linux version, which tells us where kernel modules are
Thomas> +# going to be installed in the target filesystem.
Thomas> +LINUX26_VERSION_PROBED = `$(MAKE) $(LINUX26_MAKE_FLAGS) -C $(LINUX26_DIR) --no-print-directory -s kernelrelease`
We typically use $(shell ..)
Will do.
Post by Peter Korsgaard
Thomas> +# Download
Thomas> + $(call DOWNLOAD,$(LINUX26_SITE),$(LINUX26_SOURCE))
Thomas> +ifeq ($(BR2_LINUX_KERNEL_PATCH),y)
Thomas> +ifneq ($(findstring http://,$(LINUX26_PATCH)),)
Thomas> + $(call DOWNLOAD,$(dir $(LINUX26_PATCH)),$(notdir $(LINUX26_PATCH)))
Thomas> +else ifneq ($(findstring ftp://,$(LINUX26_PATCH)),)
Thomas> + $(call DOWNLOAD,$(dir $(LINUX26_PATCH)),$(notdir $(LINUX26_PATCH)))
ifneq ($(filter http:// ftp://,$(LINUX26_PATCH)),)
Will do.
Post by Peter Korsgaard
Thomas> +else ifeq ($(shell test -d $(LINUX26_PATCH) && echo "dir"),dir)
You have to escape the * - E.G. linux-\*.patch
Will do again :-)
Post by Peter Korsgaard
Thomas> +else
Thomas> +endif
Thomas> +endif
Thomas> +
Thomas> +
Thomas> +# Configuration
Thomas> +$(LINUX26_DIR)/.stamp_configured: $(LINUX26_DIR)/.stamp_patched
Thomas> +ifeq ($(BR2_LINUX_KERNEL_USE_DEFCONFIG),y)
Thomas> +else ifeq ($(BR2_LINUX_KERNEL_USE_CUSTOM),y)
Hmm, why the yes '' here and not for defconfig? I would prefer to get
rid of it, so the user is in control (they can always use the yes
''|make stuff on the BR commandline if they want unattended builds, like
I do for buildbot).
So as by default not to have questions that could stop the build. In
general, I don't see doing "yes '' | make oldconfig" as a way of hiding
errors, as by default, oldconfig uses the default choice for every
configuration item, and this default choice usually makes sense.
Post by Peter Korsgaard
where LINUX26_FORMAT is uImage/zImage/bzImage? That's afaik how it used
to be done.
make uImage only builds the uImage kernel image. make with no arguments
builds the default kernel image (zImage in the ARM case) and also
builds the modules.

So we could also do :

make uImage
make modules

but in any case, we have two make targets to call.
Post by Peter Korsgaard
Thomas> +# Installation
Thomas> +$(LINUX26_DIR)/.stamp_installed: $(LINUX26_DIR)/.stamp_compiled
Thomas> + cp $(LINUX26_IMAGE_PATH) $(BINARIES_DIR)
Thomas> + INSTALL_MOD_PATH=$(TARGET_DIR) modules_install
Does that do something sane with a nonmodular kernel?
No, will fix.
Post by Peter Korsgaard
You're good at this one ;)
Will fix too :-)

Thanks a lot!

Thomas
--
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
Peter Korsgaard
2010-06-19 19:48:20 UTC
Permalink
Hi,

Thomas> +config BR2_LINUX_KERNEL_CUSTOM_STABLE
Thomas> + bool "Custom stable version"
Post by Peter Korsgaard
I would drop "stable" here.
Thomas> Why ? Only stable releases, i.e releases available in
Thomas> http://kernel.org/pub/linux/kernel/v2.6/ are supported. And in this
Thomas> directory, only stable releases are available.

Well, "stable" has different meanings to different people. When I think
of stable in regard to kernels, I think of the ***@kernel.org
releases (E.G. 2.6.x.y).

For the kernel headers we simply call it

"Linux 2.6 (manually specified version)"


Thomas> +
Thomas> +config BR2_LINUX_KERNEL_CUSTOM_TARBALL
Thomas> + bool "Custom tarball"
Thomas> +
Post by Peter Korsgaard
What about the same-as-kernel-headers choice? Or perhaps the fixed
version should used that?
Thomas> I could add another option to say « same version as kernel headers ».
Thomas> However, I'd prefer to keep the "BR2_LINUX_KERNEL_2_6_34" option as it
Thomas> is: remember that in the external toolchain case, « same version as
Thomas> kernel headers » doesn't make sense.

Ok. You could hide the option if !internal toolchain.
Post by Peter Korsgaard
I think it would be nicer to do something like what you're doing with
BR2_LINUX_KERNEL_PATCH_LOCATION - E.G. make it autodetect if it's a
defconfig in the kernel tree or an external file. You can either do this
using $(wildcard ..) (to check if the file exists), or simply check for
slashes in the string $(findstring /,..).
Thomas> Why not, but I would find the semantic of the option rather strange,
Thomas> and there might be corner cases where deciding whether it is a
Thomas> defconfig name or the patch to a configuration file would be difficult.
Post by Peter Korsgaard
From an user perspective, I think it's clearer to have two separate
Thomas> options for this, rather than a single option with a strange semantic
Thomas> which requires looking at the help text to understand what it actually
Thomas> does.

Thomas> But of course, if you insist on having this, I'll implement it, no big
Thomas> deal.

No, just leave it, I don't feel strongly about it.
Post by Peter Korsgaard
I would have expected to see a hidden BR2_LINUX_KERNEL_FORMAT with the
text strings "zImage", "bzImage", "uImage", .. - That can then be used
as the make target.
Thomas> Why not. But I must confess that I find this computation of values
Thomas> inside Config.in files a bit ugly: some values are computed in
Thomas> Config.in files, some in the makefile rules directly. But here too, if
Thomas> you insist on having this, I'll go ahead and implement it, as I don't
Thomas> have a very strong opinion on this.

Well, only add it if you need the text string for something (E.G. the
make target). If you prefer doing it in make, then that's fine as well -
It's not something that needs to change often.

In general I think it makes sense to keep these things in Kconfig when
you need to keep several lines in sync, and otherwise don't need to
change anything in .mk files (E.G. when adding new kernel headers,
busybox versions, ..).

Thomas> +# Configuration
Thomas> +$(LINUX26_DIR)/.stamp_configured: $(LINUX26_DIR)/.stamp_patched
Thomas> + @$(call MESSAGE,"Configuring kernel")
Thomas> +ifeq ($(BR2_LINUX_KERNEL_USE_DEFCONFIG),y)
Thomas> + $(MAKE1) $(LINUX26_MAKE_FLAGS) -C $(@D) $(call qstrip,$(BR2_LINUX_KERNEL_DEFCONFIG))_defconfig
Thomas> +else ifeq ($(BR2_LINUX_KERNEL_USE_CUSTOM),y)
Post by Peter Korsgaard
Hmm, why the yes '' here and not for defconfig? I would prefer to get
rid of it, so the user is in control (they can always use the yes
''|make stuff on the BR commandline if they want unattended builds, like
I do for buildbot).
Thomas> So as by default not to have questions that could stop the build. In
Thomas> general, I don't see doing "yes '' | make oldconfig" as a way of hiding
Thomas> errors, as by default, oldconfig uses the default choice for every
Thomas> configuration item, and this default choice usually makes sense.

The point is that it isn't consistent. We don't do this for
uclibc/busybox, and you don't do it for defconfigs in the kernel tree
(which often are also slightly outdated).
Post by Peter Korsgaard
where LINUX26_FORMAT is uImage/zImage/bzImage? That's afaik how it used
to be done.
Thomas> make uImage only builds the uImage kernel image. make with no arguments
Thomas> builds the default kernel image (zImage in the ARM case) and also
Thomas> builds the modules.

This seems platform/arch specific. On PPC, the default image is
typically uImage, so make with no arguments builds uImage and modules.

Does this mean that the existing advanced linux support is broken on
ARM/uImage when using a modular kernel? - There it looks like it just
calls 'make uImage'. I always use a nonmodular kernel, so I never
noticed.

Thomas> So we could also do :

Thomas> make uImage
Thomas> make modules

Probably better to do make; make <format> (where format is uImage/zImage/bzImage/..)

As make modules errors out with something like:

The present kernel configuration has modules disabled.
Type 'make config' and enable loadable module support.
Then build a kernel with module support enabled.

make: *** [modules] Error 1

Thomas> but in any case, we have two make targets to call.

Yes.
--
Bye, Peter Korsgaard
Thomas Petazzoni
2010-06-20 13:35:08 UTC
Permalink
On Sat, 19 Jun 2010 21:48:20 +0200
Post by Peter Korsgaard
Well, "stable" has different meanings to different people. When I think
releases (E.G. 2.6.x.y).
Ah, I see. For me, 2.6.x versions are also stable versions, by
oppposition with -rc versions. But ok, I've changed this.
Post by Peter Korsgaard
Thomas> I could add another option to say « same version as kernel headers ».
Thomas> However, I'd prefer to keep the "BR2_LINUX_KERNEL_2_6_34" option as it
Thomas> is: remember that in the external toolchain case, « same version as
Thomas> kernel headers » doesn't make sense.
Ok. You could hide the option if !internal toolchain.
Sure, done.
Post by Peter Korsgaard
Well, only add it if you need the text string for something (E.G. the
make target). If you prefer doing it in make, then that's fine as well -
It's not something that needs to change often.
In general I think it makes sense to keep these things in Kconfig when
you need to keep several lines in sync, and otherwise don't need to
change anything in .mk files (E.G. when adding new kernel headers,
busybox versions, ..).
Ok. I haven't changed this part for now.
Post by Peter Korsgaard
The point is that it isn't consistent. We don't do this for
uclibc/busybox, and you don't do it for defconfigs in the kernel tree
(which often are also slightly outdated).
Ok, I got rid of it.
Post by Peter Korsgaard
Thomas> make uImage only builds the uImage kernel image. make with no arguments
Thomas> builds the default kernel image (zImage in the ARM case) and also
Thomas> builds the modules.
This seems platform/arch specific. On PPC, the default image is
typically uImage, so make with no arguments builds uImage and modules.
Does this mean that the existing advanced linux support is broken on
ARM/uImage when using a modular kernel? - There it looks like it just
calls 'make uImage'. I always use a nonmodular kernel, so I never
noticed.
The current advanced thing does "make modules ; make modules_install"
when CONFIG_MODULES is enabled.
Post by Peter Korsgaard
Thomas> make uImage
Thomas> make modules
Probably better to do make; make <format> (where format is uImage/zImage/bzImage/..)
Isn't this what I'm doing already ?

Regards,

Thomas
--
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
Peter Korsgaard
2010-06-20 17:51:23 UTC
Permalink
Hi,
Post by Peter Korsgaard
Well, "stable" has different meanings to different people. When I think
releases (E.G. 2.6.x.y).
Thomas> Ah, I see. For me, 2.6.x versions are also stable versions, by
Thomas> oppposition with -rc versions. But ok, I've changed this.

Ok - Notice that there isn't anything stopping people from using a -rc
version (and there shouldn't be) - E.G.

http://www.kernel.org/pub/linux/kernel/v2.6/testing/linux-2.6.35-rc3.tar.bz2
Post by Peter Korsgaard
The point is that it isn't consistent. We don't do this for
uclibc/busybox, and you don't do it for defconfigs in the kernel tree
(which often are also slightly outdated).
Thomas> Ok, I got rid of it.

Thanks.
Post by Peter Korsgaard
Does this mean that the existing advanced linux support is broken on
ARM/uImage when using a modular kernel? - There it looks like it just
calls 'make uImage'. I always use a nonmodular kernel, so I never
noticed.
Thomas> The current advanced thing does "make modules ; make modules_install"
Thomas> when CONFIG_MODULES is enabled.

Ok, that makes sense.

Thomas> make uImage
Thomas> make modules
Post by Peter Korsgaard
Probably better to do make; make <format> (where format is uImage/zImage/bzImage/..)
Thomas> Isn't this what I'm doing already ?

No, you were doing:

+# Compilation
+$(LINUX26_DIR)/.stamp_compiled: $(LINUX26_DIR)/.stamp_configured
+ @$(call MESSAGE,"Compiling kernel")
+ $(MAKE) $(LINUX26_MAKE_FLAGS) -C $(@D)
+ifeq ($(BR2_LINUX_KERNEL_UIMAGE),y)
+ $(MAKE) $(LINUX26_MAKE_FLAGS) -C $(@D) uImage
+endif
+ $(Q)touch $@

E.G. just make (followed by make uImage if uImage is selected).

I guess we should do:

make <format>
if modules:
make modules
make modules-install
--
Bye, Peter Korsgaard
Thomas Petazzoni
2010-06-20 19:22:19 UTC
Permalink
Hello,

On Sun, 20 Jun 2010 19:51:23 +0200
Post by Peter Korsgaard
Ok - Notice that there isn't anything stopping people from using a -rc
version (and there shouldn't be) - E.G.
http://www.kernel.org/pub/linux/kernel/v2.6/testing/linux-2.6.35-rc3.tar.bz2
Nothing prevents people from doing this, but in that case they have to
use the "Custom tarball" option and give the full URL.

The "Custom version" only works with versions that are available
directly in http://www.kernel.org/pub/linux/kernel/v2.6/.
Post by Peter Korsgaard
Thomas> Isn't this what I'm doing already ?
+# Compilation
+$(LINUX26_DIR)/.stamp_compiled: $(LINUX26_DIR)/.stamp_configured
+ifeq ($(BR2_LINUX_KERNEL_UIMAGE),y)
+endif
E.G. just make (followed by make uImage if uImage is selected).
make <format>
make modules
make modules-install
I have separate build and install steps. Would something like the
following be OK for you ?

* build step
make <format>
if modules:
make modules

* install step
cp .... $(BINARIES_DIR)
if modules:
make modules_install

Thomas
--
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
Peter Korsgaard
2010-06-20 21:08:27 UTC
Permalink
Thomas> Hello,
Thomas> On Sun, 20 Jun 2010 19:51:23 +0200
Post by Peter Korsgaard
Ok - Notice that there isn't anything stopping people from using a -rc
version (and there shouldn't be) - E.G.
http://www.kernel.org/pub/linux/kernel/v2.6/testing/linux-2.6.35-rc3.tar.bz2
Thomas> Nothing prevents people from doing this, but in that case they have to
Thomas> use the "Custom tarball" option and give the full URL.

Thomas> The "Custom version" only works with versions that are available
Thomas> directly in http://www.kernel.org/pub/linux/kernel/v2.6/.

Ahh yes, sorry about the noise then.

Thomas> I have separate build and install steps. Would something like the
Thomas> following be OK for you ?

Thomas> * build step
Thomas> make <format>
Thomas> if modules:
Thomas> make modules

Thomas> * install step
Thomas> cp .... $(BINARIES_DIR)
Thomas> if modules:
Thomas> make modules_install

Yes, that sounds good.
--
Bye, Peter Korsgaard
Thomas Petazzoni
2010-06-13 18:50:07 UTC
Permalink
Signed-off-by: Thomas Petazzoni <thomas.petazzoni-wi1+55ScJUtKEb57/***@public.gmane.org>
---
fs/iso9660/Config.in | 4 ++--
fs/iso9660/iso9660.mk | 6 +++---
2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/fs/iso9660/Config.in b/fs/iso9660/Config.in
index 7830581..5f7cdf4 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_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_LINUX_KERNEL
diff --git a/fs/iso9660/iso9660.mk b/fs/iso9660/iso9660.mk
index 66e2de2..6f60893 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
--
1.7.0.4
Peter Korsgaard
2010-06-18 19:32:14 UTC
Permalink
Thomas> Signed-off-by: Thomas Petazzoni <thomas.petazzoni-wi1+55ScJUtKEb57/***@public.gmane.org>
Thomas> ---
Thomas> fs/iso9660/Config.in | 4 ++--
Thomas> fs/iso9660/iso9660.mk | 6 +++---
Thomas> 2 files changed, 5 insertions(+), 5 deletions(-)

Thomas> diff --git a/fs/iso9660/Config.in b/fs/iso9660/Config.in
Thomas> index 7830581..5f7cdf4 100644
Thomas> --- a/fs/iso9660/Config.in
Thomas> +++ b/fs/iso9660/Config.in
Thomas> @@ -1,7 +1,7 @@
Thomas> config BR2_TARGET_ROOTFS_ISO9660
Thomas> bool "iso image"
Thomas> depends on BR2_i386
Thomas> - depends on !BR2_KERNEL_none
Thomas> + depends on BR2_LINUX_KERNEL
Thomas> select BR2_TARGET_ROOTFS_EXT2
Thomas> select BR2_TARGET_GRUB
Thomas> help
Thomas> @@ -13,4 +13,4 @@ config BR2_TARGET_ROOTFS_ISO9660_BOOT_MENU
Thomas> default "fs/iso9660/menu.lst"

Thomas> comment "iso image requires a Linux kernel to be built"
Thomas> - depends on BR2_i386 && BR2_KERNEL_none
Thomas> + depends on BR2_i386 && !BR2_LINUX_KERNEL

I know you're not the author of this, but any reason this shouldn't work
on x86-64 as well?
--
Bye, Peter Korsgaard
Thomas Petazzoni
2010-06-13 18:50:06 UTC
Permalink
Signed-off-by: Thomas Petazzoni <thomas.petazzoni-wi1+55ScJUtKEb57/***@public.gmane.org>
---
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, 0 insertions(+), 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 a72dc80..d04c6e3 100644
--- a/Makefile
+++ b/Makefile
@@ -308,10 +308,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 8feb564..9a75116 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 c79fca2..0000000
--- 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=<path> 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=<string> to
- make.
-endif
diff --git a/target/linux/Config.in.advanced b/target/linux/Config.in.advanced
deleted file mode 100644
index 645ed2e..0000000
--- 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 <custom> 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=<path> to
- make.
-
-config BR2_PACKAGE_LINUX_USE_DEFCONFIG
- bool "Run make <board>_defconfig "
- depends on BR2_PACKAGE_LINUX
- help
- Configure Linux by make <board>_defconfig
- You have to supply a BOARD_NAME, either by
- defining it in a BSP or by make BOARD_NAME=<board>
-
-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=<path> 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 "<custom> 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=<string> 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 <root>/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 <dir>..."
- 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 "<root>/boot" directory.
-
-endmenu
-endif
-
diff --git a/target/linux/Config.in.versions b/target/linux/Config.in.versions
deleted file mode 100644
index c5263a4..0000000
--- 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 f019824..0000000
--- 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 9cbbd2c..0000000
--- 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
--
1.7.0.4
Thomas Petazzoni
2010-06-13 18:50:08 UTC
Permalink
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 <thomas.petazzoni-wi1+55ScJUtKEb57/***@public.gmane.org>
---
package/module-init-tools/module-init-tools.mk | 44 ------------------------
1 files changed, 0 insertions(+), 44 deletions(-)

diff --git a/package/module-init-tools/module-init-tools.mk b/package/module-init-tools/module-init-tools.mk
index 129770e..8adb684 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
#
--
1.7.0.4
Thomas Petazzoni
2010-06-13 18:50:09 UTC
Permalink
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 <thomas.petazzoni-wi1+55ScJUtKEb57/***@public.gmane.org>
---
...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 0000000..28f51de
--- /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 <thomas.petazzoni-wi1+55ScJUtKEb57/***@public.gmane.org>
+---
+ 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 1a2da28..0000000
--- 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 8adb684..3e8b06b 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 456ef10..0000000
--- 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:
--
1.7.0.4
Peter Korsgaard
2010-06-18 19:34:01 UTC
Permalink
Thomas> The "remove-index" patch is no longer needed, the newer version of
Thomas> module-init-tools correctly uses strchr().

Thomas> The "module-init-tools" patch, whose main purpose was to disable the
Thomas> generation of man pages (it requires docbook2man), is replaced by a
Thomas> simpler implementation,
Thomas> module-init-tools-3.11-add-manpages-config-option.patch.

Looks good, don't forget to send upstream.
--
Bye, Peter Korsgaard
Thomas Petazzoni
2010-06-13 18:50:10 UTC
Permalink
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 <thomas.petazzoni-wi1+55ScJUtKEb57/***@public.gmane.org>
---
linux/linux.mk | 2 +-
package/module-init-tools/module-init-tools.mk | 2 ++
2 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/linux/linux.mk b/linux/linux.mk
index 39abdea..d3a583e 100644
--- a/linux/linux.mk
+++ b/linux/linux.mk
@@ -113,7 +113,7 @@ $(LINUX26_DIR)/.stamp_installed: $(LINUX26_DIR)/.stamp_compiled
rm -f $(TARGET_DIR)/lib/modules/$(LINUX26_VERSION_PROBED)/source
$(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 3e8b06b..ea7c014 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))
+
--
1.7.0.4
Thomas Petazzoni
2010-06-13 18:50:11 UTC
Permalink
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 <thomas.petazzoni-wi1+55ScJUtKEb57/***@public.gmane.org>
---
package/Makefile.package.in | 15 +++++++++++++++
1 files changed, 15 insertions(+), 0 deletions(-)

diff --git a/package/Makefile.package.in b/package/Makefile.package.in
index cdf49f8..b702c49 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)
--
1.7.0.4
Thomas Petazzoni
2010-06-13 18:50:12 UTC
Permalink
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 <thomas.petazzoni-wi1+55ScJUtKEb57/***@public.gmane.org>
---
linux/linux.mk | 12 ++++++++++++
1 files changed, 12 insertions(+), 0 deletions(-)

diff --git a/linux/linux.mk b/linux/linux.mk
index d3a583e..4cdc304 100644
--- a/linux/linux.mk
+++ b/linux/linux.mk
@@ -90,6 +90,18 @@ else ifeq ($(BR2_LINUX_KERNEL_USE_CUSTOM),y)
cp $(BR2_LINUX_KERNEL_CUSTOM_FILE) $(@D)/.config
yes "" | $(MAKE1) $(LINUX26_MAKE_FLAGS) -C $(@D) oldconfig
endif
+ifeq ($(BR2_ARM_EABI),y)
+ $(call KCONFIG_ENABLE_OPT,CONFIG_AEABI,$(@D)/.config)
+ $(call KCONFIG_DISABLE_OPT,CONFIG_OABI_COMPAT,$(@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
+ yes "" | $(MAKE) $(LINUX26_MAKE_FLAGS) -C $(@D) oldconfig 2>&1 >/dev/null
$(Q)touch $@

# Compilation
--
1.7.0.4
Peter Korsgaard
2010-06-18 19:43:10 UTC
Permalink
Thomas> We only adjust the configuration or ARM EABI and IPv6. The (more

s/or/of/.

Thomas> complicated) initramfs case is handled in a separate commit. The user
Thomas> is expected to take care of all other configuration details (like
Thomas> having Netfilter enabled to make iptables work, etc.)

Thomas> Signed-off-by: Thomas Petazzoni <thomas.petazzoni-wi1+55ScJUtKEb57/***@public.gmane.org>
Thomas> ---
Thomas> linux/linux.mk | 12 ++++++++++++
Thomas> 1 files changed, 12 insertions(+), 0 deletions(-)

Thomas> diff --git a/linux/linux.mk b/linux/linux.mk
Thomas> index d3a583e..4cdc304 100644
Thomas> --- a/linux/linux.mk
Thomas> +++ b/linux/linux.mk
Thomas> @@ -90,6 +90,18 @@ else ifeq ($(BR2_LINUX_KERNEL_USE_CUSTOM),y)
Thomas> cp $(BR2_LINUX_KERNEL_CUSTOM_FILE) $(@D)/.config
Thomas> yes "" | $(MAKE1) $(LINUX26_MAKE_FLAGS) -C $(@D) oldconfig
Thomas> endif
Thomas> +ifeq ($(BR2_ARM_EABI),y)
Thomas> + $(call KCONFIG_ENABLE_OPT,CONFIG_AEABI,$(@D)/.config)
Thomas> + $(call KCONFIG_DISABLE_OPT,CONFIG_OABI_COMPAT,$(@D)/.config)
Thomas> +else
Thomas> + $(call KCONFIG_DISABLE_OPT,CONFIG_AEABI,$(@D)/.config)

I'm not sure I like this hardcoded policy. What if the user wants to run
some precompiled OABI binaries together with his EABI rootfs?


Thomas> +endif
Thomas> +ifeq ($(BR2_INET_IPV6),y)
Thomas> + $(call KCONFIG_ENABLE_OPT,CONFIG_IPV6,$(@D)/.config)
Thomas> +else
Thomas> + $(call KCONFIG_DISABLE_OPT,CONFIG_IPV6,$(@D)/.config)
Thomas> +endif
Thomas> + yes "" | $(MAKE) $(LINUX26_MAKE_FLAGS) -C $(@D) oldconfig 2>&1 >/dev/null

The yes shouldn't be needed, and I don't like hiding errors.
--
Bye, Peter Korsgaard
Thomas Petazzoni
2010-06-19 14:24:35 UTC
Permalink
On Fri, 18 Jun 2010 21:43:10 +0200
Post by Peter Korsgaard
I'm not sure I like this hardcoded policy. What if the user wants to run
some precompiled OABI binaries together with his EABI rootfs?
I don't really like this hardcoded policy either, but I kept what
existed before.

What should we do ? Just not modify the kernel configuration, except
for the initramfs case ? Isn't the EABI thing going to hit a large
number of users, coming back with a "my Busybox init doesn't start"
question ?
Post by Peter Korsgaard
Thomas> +endif
Thomas> +ifeq ($(BR2_INET_IPV6),y)
Thomas> +else
Thomas> +endif
The yes shouldn't be needed, and I don't like hiding errors.
It does not hide errors, it uses the default choice for every unset
option :-)

But ok, if you don't like it, why not.

Regards,

Thomas
--
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
Peter Korsgaard
2010-06-19 17:45:53 UTC
Permalink
Hi,
Post by Peter Korsgaard
I'm not sure I like this hardcoded policy. What if the user wants to run
some precompiled OABI binaries together with his EABI rootfs?
Thomas> I don't really like this hardcoded policy either, but I kept what
Thomas> existed before.

Thomas> What should we do ? Just not modify the kernel configuration, except
Thomas> for the initramfs case ? Isn't the EABI thing going to hit a large
Thomas> number of users, coming back with a "my Busybox init doesn't start"
Thomas> question ?

I find the EABI one ok, but the COMPAT thing is afaik just an
optimization, it doesn't really harm to have it enabled.
Post by Peter Korsgaard
The yes shouldn't be needed, and I don't like hiding errors.
Thomas> It does not hide errors, it uses the default choice for every unset
Thomas> option :-)

It's the 2>&1 >/dev/null that I don't like - That does hide errors.
--
Bye, Peter Korsgaard
Peter Korsgaard
2010-06-20 07:06:52 UTC
Permalink
Nataraj> Hi
Nataraj> I was using  atmel patched kernel 2.6.30 on at91sam9263 Sbc with
Nataraj> CONFIG_OABI_COMPAT=y default.  But when disabled, my freepascal (
Nataraj> ww.freepascal.org) binanies wouldnt work.

Nataraj> Maybe fcp dont generate  fully EABI for arm-uclibc.

Ok, please send your mails to the list instead of directly to me so
Thomas can also see it.
--
Bye, Peter Korsgaard
Thomas Petazzoni
2010-06-13 18:50:13 UTC
Permalink
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 <thomas.petazzoni-wi1+55ScJUtKEb57/***@public.gmane.org>
---
linux/linux.mk | 8 ++++++--
1 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/linux/linux.mk b/linux/linux.mk
index 4cdc304..05a95af 100644
--- a/linux/linux.mk
+++ b/linux/linux.mk
@@ -104,8 +104,9 @@ endif
yes "" | $(MAKE) $(LINUX26_MAKE_FLAGS) -C $(@D) oldconfig 2>&1 >/dev/null
$(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")
$(MAKE) $(LINUX26_MAKE_FLAGS) -C $(@D)
ifeq ($(BR2_LINUX_KERNEL_UIMAGE),y)
@@ -127,6 +128,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
\ No newline at end of file
--
1.7.0.4
Thomas Petazzoni
2010-06-13 18:50:14 UTC
Permalink
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 <thomas.petazzoni-wi1+55ScJUtKEb57/***@public.gmane.org>
---
fs/common.mk | 6 +++++-
fs/initramfs/initramfs.mk | 2 ++
linux/linux.mk | 33 +++++++++++++++++++++++++++++++++
3 files changed, 40 insertions(+), 1 deletions(-)

diff --git a/fs/common.mk b/fs/common.mk
index 50dc974..74e9ce0 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 3e81567..e6d004e 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 05a95af..1c32c86 100644
--- a/linux/linux.mk
+++ b/linux/linux.mk
@@ -101,6 +101,19 @@ ifeq ($(BR2_INET_IPV6),y)
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
yes "" | $(MAKE) $(LINUX26_MAKE_FLAGS) -C $(@D) oldconfig 2>&1 >/dev/null
$(Q)touch $@

@@ -131,6 +144,26 @@ 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.
+ $(MAKE) $(LINUX26_MAKE_FLAGS) -C $(@D)
+ifeq ($(BR2_LINUX_KERNEL_UIMAGE),y)
+ $(MAKE) $(LINUX26_MAKE_FLAGS) -C $(@D) uImage
+endif
+ # 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
\ No newline at end of file
--
1.7.0.4
Paul Jones
2010-06-14 01:50:02 UTC
Permalink
-----Original Message-----
Sent: Monday, 14 June 2010 4:50 AM
Cc: Thomas Petazzoni
Subject: [Buildroot] [pull request] Pull request for branch linux-cleanup
Hello,
Here is a set of 10 patches that completely rewrites the Linux kernel
compilation process in Buildroot. It is supposed to be applied on top of
the
bootloaders-cleanup branch I've sent yesterday.
I've fairly drastically reduced the number of options to configure the
kernel,
and particulary removed the horrible mess of version selection. See the
first
commit in this branch for what remains in terms of configuration options
for
the kernel. As I've removed quite a few things, I'm interested to know how
you're using Buildroot to build your kernel, and whether this proposal
still
matches your use cases.
Looks good to me. The only comment I have is I liked the old automatic
kernel patching from kernel.org, but now you need to know what the latest
version is. No big deal though.


Cheers,
Paul.
Thomas Petazzoni
2010-06-18 06:46:26 UTC
Permalink
Hello,

On Sun, 13 Jun 2010 20:50:04 +0200
Post by Thomas Petazzoni
Here is a set of 10 patches that completely rewrites the Linux kernel
compilation process in Buildroot. It is supposed to be applied on top
of the bootloaders-cleanup branch I've sent yesterday.
I've fairly drastically reduced the number of options to configure the
kernel, and particulary removed the horrible mess of version
selection. See the first commit in this branch for what remains in
terms of configuration options for the kernel. As I've removed quite a
few things, I'm interested to know how you're using Buildroot to build
your kernel, and whether this proposal still matches your use cases.
Peter: for me, this patch set is ready for inclusion, unless there are
comments, of course.
I've done the following changes :

* Rebased on top of master, now that the bootloaders-cleanup branch
has been merged. As the linux-cleanup branch was initially based on
bootloaders-cleanup, this rebase did not require any change in the
code.

* Added a new commit that deletes target/Config.in which is now longer
used/needed.

Thanks,

Thomas
--
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
Thomas Petazzoni
2010-06-20 13:37:16 UTC
Permalink
On Sun, 13 Jun 2010 20:50:04 +0200
Post by Thomas Petazzoni
Here is a set of 10 patches that completely rewrites the Linux kernel
compilation process in Buildroot. It is supposed to be applied on top
of the bootloaders-cleanup branch I've sent yesterday.
I've fairly drastically reduced the number of options to configure the
kernel, and particulary removed the horrible mess of version
selection. See the first commit in this branch for what remains in
terms of configuration options for the kernel. As I've removed quite a
few things, I'm interested to know how you're using Buildroot to build
your kernel, and whether this proposal still matches your use cases.
Peter: for me, this patch set is ready for inclusion, unless there are
comments, of course.
I've pushed a newer version, with the following changes since the
previous post :

* Provide a "same as kernel headers" choice for the version selection

* Use "depends on" instead of an "if...endif" block when a single
option needs to be conditionnaly shown

* Merge BR2_LINUX_KERNEL_PATCH and BR2_LINUX_KERNEL_PATCH_LOCATION
into a single option. When the option value is empty, not patch is
applied. When the option value is non empty, it is considered as a
path or URL to a patch to be applied to the kernel.

* Rename BR2_LINUX_KERNEL_USE_CUSTOM to
BR2_LINUX_KERNEL_USE_CUSTOM_FILE.

* Fix the default value for the kernel binary format: BR2_i386
instead of BR2_386 and bzImage by default on BR2_x86_64.

* Use BR2_KERNEL_MIRROR where appropriate

* Use the $(shell...) construct instead of back-quotes

* Use $(filter ...) instead of multiple $(findstring ...)

* Fix escaping of linux-*.patch -> linux-\*.patch

* Remove yes "" | make oldconfig constructs

* Install the modules only if CONFIG_MODULES is enabled

* Add newline at the end of linux.mk.

* Add $(TARGET_MAKE_ENV) to $(MAKE) invocations so that a PATH
containing $(HOST_DIR)/usr/bin is used when building the
kernel. This is needed in order to allow the kernel to find mkimage
and other host tools (module-init-tools). This fixes the problem
reported by Ossy.

* Rename option mentioning "stable" so as to not use the "stable"
wording since it could be confusing for users.

Thomas
--
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
Thomas Petazzoni
2010-06-20 13:51:40 UTC
Permalink
On Sun, 20 Jun 2010 15:37:16 +0200
Post by Thomas Petazzoni
I've pushed a newer version, with the following changes since the
* Provide a "same as kernel headers" choice for the version selection
* Use "depends on" instead of an "if...endif" block when a single
option needs to be conditionnaly shown
* Merge BR2_LINUX_KERNEL_PATCH and BR2_LINUX_KERNEL_PATCH_LOCATION
into a single option. When the option value is empty, not patch is
applied. When the option value is non empty, it is considered as a
path or URL to a patch to be applied to the kernel.
* Rename BR2_LINUX_KERNEL_USE_CUSTOM to
BR2_LINUX_KERNEL_USE_CUSTOM_FILE.
* Fix the default value for the kernel binary format: BR2_i386
instead of BR2_386 and bzImage by default on BR2_x86_64.
* Use BR2_KERNEL_MIRROR where appropriate
* Use the $(shell...) construct instead of back-quotes
* Use $(filter ...) instead of multiple $(findstring ...)
* Fix escaping of linux-*.patch -> linux-\*.patch
* Remove yes "" | make oldconfig constructs
* Install the modules only if CONFIG_MODULES is enabled
* Add newline at the end of linux.mk.
* Add $(TARGET_MAKE_ENV) to $(MAKE) invocations so that a PATH
containing $(HOST_DIR)/usr/bin is used when building the
kernel. This is needed in order to allow the kernel to find mkimage
and other host tools (module-init-tools). This fixes the problem
reported by Ossy.
* Rename option mentioning "stable" so as to not use the "stable"
wording since it could be confusing for users.
And also :

* Enable OABI compatibility as well as EABI when EABI is enabled in
Buildroot configuration

* Enable iso9660 when BR2_x86_64 is the architecture.

Thomas
--
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
Peter Korsgaard
2010-06-20 17:52:44 UTC
Permalink
Hi,

Thomas> And also :

Thomas> * Enable OABI compatibility as well as EABI when EABI is enabled in
Thomas> Buildroot configuration

Didn't we just agree that we shouldn't touch the compat option? People
might have good reasons (compatibility) to enable it or not (size).
--
Bye, Peter Korsgaard
Thomas Petazzoni
2010-06-20 19:22:48 UTC
Permalink
On Sun, 20 Jun 2010 19:52:44 +0200
Post by Peter Korsgaard
Didn't we just agree that we shouldn't touch the compat option? People
might have good reasons (compatibility) to enable it or not (size).
Ah, ok, I misunderstood. Fixed in my tree, will be part of the next
push. I'll let you know when it's ready.

Thomas
--
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
Thomas Petazzoni
2010-06-22 20:15:48 UTC
Permalink
On Sun, 20 Jun 2010 21:22:48 +0200
Post by Thomas Petazzoni
Ah, ok, I misunderstood. Fixed in my tree, will be part of the next
push. I'll let you know when it's ready.
The next (and hopefully final) push has been made. Changes since the
last one :

* Do not touch the OABI_COMPAT kernel option

* At compile time do :
make <image-type>
if modules:
make modules

At install time do :
cp <image-path> $(BINARIES_DIR)
if modules:
make modules_install

At initramfs regeneration time do :
make <image-type>

* Minor Config.in improvements (tabulations, help texts, etc.)

As usual, available in the linux-cleanup branch at
git://git.busybox.net/~tpetazzoni/git/buildroot.

Thanks,

Thomas
--
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
Peter Korsgaard
2010-06-23 09:29:32 UTC
Permalink
Thomas> On Sun, 20 Jun 2010 21:22:48 +0200
Post by Thomas Petazzoni
Ah, ok, I misunderstood. Fixed in my tree, will be part of the next
push. I'll let you know when it's ready.
Thomas> The next (and hopefully final) push has been made. Changes since the
Thomas> last one :

Thanks, pulled and pushed.

I think we need to update the defconfigs having kernel builds
enabled. Will you do it, or should I?
--
Bye, Peter Korsgaard
Continue reading on narkive:
Loading...