All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH 1/5] buildroot:linux: Rename blackfin kernel Image file from vmImage back to uImage.
@ 2012-08-07  9:09 Sonic Zhang
  2012-08-07  9:09 ` [Buildroot] [PATCH 2/5] linux: support unpacked kernel source tree Sonic Zhang
                   ` (4 more replies)
  0 siblings, 5 replies; 17+ messages in thread
From: Sonic Zhang @ 2012-08-07  9:09 UTC (permalink / raw)
  To: buildroot

From: Sonic Zhang <sonic.zhang@analog.com>

Consist with other architectures.

Signed-off-by: Sonic Zhang <sonic.zhang@analog.com>
---
 linux/linux.mk |    5 -----
 1 files changed, 0 insertions(+), 5 deletions(-)

diff --git a/linux/linux.mk b/linux/linux.mk
index 5365d5f..c4bdf90 100644
--- a/linux/linux.mk
+++ b/linux/linux.mk
@@ -69,12 +69,7 @@ ifeq ($(BR2_LINUX_KERNEL_IMAGE_TARGET_CUSTOM),y)
 LINUX_IMAGE_NAME=$(call qstrip,$(BR2_LINUX_KERNEL_IMAGE_TARGET_NAME))
 else
 ifeq ($(BR2_LINUX_KERNEL_UIMAGE),y)
-ifeq ($(KERNEL_ARCH),blackfin)
-# a uImage, but with a different file name
-LINUX_IMAGE_NAME=vmImage
-else
 LINUX_IMAGE_NAME=uImage
-endif
 else ifeq ($(BR2_LINUX_KERNEL_APPENDED_UIMAGE),y)
 LINUX_IMAGE_NAME=uImage
 else ifeq ($(BR2_LINUX_KERNEL_BZIMAGE),y)
-- 
1.7.0.4

^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [Buildroot] [PATCH 2/5] linux: support unpacked kernel source tree
  2012-08-07  9:09 [Buildroot] [PATCH 1/5] buildroot:linux: Rename blackfin kernel Image file from vmImage back to uImage Sonic Zhang
@ 2012-08-07  9:09 ` Sonic Zhang
  2012-08-11 18:06   ` Thomas Petazzoni
  2012-08-07  9:09 ` [Buildroot] [PATCH 3/5] buildroot: patch kernel by kernel version Sonic Zhang
                   ` (3 subsequent siblings)
  4 siblings, 1 reply; 17+ messages in thread
From: Sonic Zhang @ 2012-08-07  9:09 UTC (permalink / raw)
  To: buildroot

From: Sonic Zhang <sonic.zhang@analog.com>

Point the kernel build system to the unpacked source tree.
Allow the building folder differ from the source folder.

LINUX_DIR still refers to the building folder, while LINUX_SOURCE_DIR
refers to the customer specified source folder.

Signed-off-by: Sonic Zhang <sonic.zhang@analog.com>
---
 linux/Config.in              |   11 ++++++++++-
 linux/linux-ext-ocf-linux.mk |    4 ++--
 linux/linux-ext-rtai.mk      |    6 +++---
 linux/linux-ext-xenomai.mk   |    2 +-
 linux/linux.mk               |   42 ++++++++++++++++++++++++++----------------
 package/pkg-generic.mk       |   11 +++++++++++
 6 files changed, 53 insertions(+), 23 deletions(-)

diff --git a/linux/Config.in b/linux/Config.in
index 9c63215..2c9b79c 100644
--- a/linux/Config.in
+++ b/linux/Config.in
@@ -53,6 +53,11 @@ config BR2_LINUX_KERNEL_CUSTOM_GIT
 	  This option allows Buildroot to get the Linux kernel source
 	  code from a Git repository.
 
+config BR2_LINUX_KERNEL_CUSTOM_TREE
+	bool "Custom unpacked tree"
+	help
+	  This option allows use of an already unpacked linux tree.
+
 endchoice
 
 config BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE
@@ -75,12 +80,16 @@ config BR2_LINUX_KERNEL_CUSTOM_GIT_VERSION
 	  Git revision to use in the format used by git rev-parse,
 	  E.G. a sha id, a tag, branch, ..
 
+config BR2_LINUX_KERNEL_CUSTOM_PATH
+	string "PATH of custom kernel tree"
+	depends on BR2_LINUX_KERNEL_CUSTOM_TREE
+
 config BR2_LINUX_KERNEL_VERSION
 	string
 	default "3.4.7" if BR2_LINUX_KERNEL_3_4
 	default BR2_DEFAULT_KERNEL_HEADERS if BR2_LINUX_KERNEL_SAME_AS_HEADERS
 	default BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE if BR2_LINUX_KERNEL_CUSTOM_VERSION
-	default "custom" if BR2_LINUX_KERNEL_CUSTOM_TARBALL
+	default "custom" if BR2_LINUX_KERNEL_CUSTOM_TARBALL || BR2_LINUX_KERNEL_CUSTOM_TREE
 	default $BR2_LINUX_KERNEL_CUSTOM_GIT_VERSION if BR2_LINUX_KERNEL_CUSTOM_GIT
 
 #
diff --git a/linux/linux-ext-ocf-linux.mk b/linux/linux-ext-ocf-linux.mk
index faf7360..1fe7ffd 100644
--- a/linux/linux-ext-ocf-linux.mk
+++ b/linux/linux-ext-ocf-linux.mk
@@ -13,9 +13,9 @@ LINUX_DEPENDENCIES += ocf-linux
 # It works for older kernel versions.
 # Run tested from 2.6.38+ and build tested from 2.6.35+
 define OCF_LINUX_PREPARE_KERNEL
-	support/scripts/apply-patches.sh $(LINUX_DIR) \
+	support/scripts/apply-patches.sh $(LINUX_SOURCE_DIR) \
 		$(OCF_LINUX_DIR)/patches/ linux-3.2.1-ocf.patch ; \
-	cp -rf $(OCF_LINUX_DIR)/ocf $(LINUX_DIR)/crypto/ocf ;
+	cp -rf $(OCF_LINUX_DIR)/ocf $(LINUX_SOURCE_DIR)/crypto/ocf ;
 endef
 
 LINUX_PRE_PATCH_HOOKS += OCF_LINUX_PREPARE_KERNEL
diff --git a/linux/linux-ext-rtai.mk b/linux/linux-ext-rtai.mk
index 78488af..894b006 100644
--- a/linux/linux-ext-rtai.mk
+++ b/linux/linux-ext-rtai.mk
@@ -23,9 +23,9 @@ endif
 # Prepare kernel patch
 ifeq ($(RTAI_PATCH),)
 define RTAI_PREPARE_KERNEL
-	kver=`$(MAKE) $(LINUX_MAKE_FLAGS) -C $(LINUX_DIR) --no-print-directory -s kernelversion` ; \
+	kver=`$(MAKE) $(LINUX_MAKE_FLAGS) -C $(LINUX_SOURCE_DIR) --no-print-directory -s kernelversion` ; \
 	if test -f $(RTAI_DIR)/base/arch/$(RTAI_ARCH)/patches/hal-linux-$${kver}-*patch ; then \
-		support/scripts/apply-patches.sh $(LINUX_DIR) 		\
+		support/scripts/apply-patches.sh $(LINUX_SOURCE_DIR) 		\
 			$(RTAI_DIR)/base/arch/$(RTAI_ARCH)/patches/ 	\
 			hal-linux-$${kver}-*patch ; \
 	else \
@@ -36,7 +36,7 @@ endef
 else
 define RTAI_PREPARE_KERNEL
 	support/scripts/apply-patches.sh 	\
-		$(LINUX_DIR)			\
+		$(LINUX_SOURCE_DIR)		\
 		$(dir $(RTAI_PATCH))		\
 		$(notdir $(RTAI_PATCH))
 endef
diff --git a/linux/linux-ext-xenomai.mk b/linux/linux-ext-xenomai.mk
index 9b6772e..54a3fc7 100644
--- a/linux/linux-ext-xenomai.mk
+++ b/linux/linux-ext-xenomai.mk
@@ -19,7 +19,7 @@ endif
 # Prepare kernel patch
 define XENOMAI_PREPARE_KERNEL
 	$(XENOMAI_DIR)/scripts/prepare-kernel.sh \
-		--linux=$(LINUX_DIR) \
+		--linux=$(LINUX_SOURCE_DIR) \
 		--arch=$(KERNEL_ARCH) \
 		$(XENOMAI_ADEOS_OPT) \
 		--verbose
diff --git a/linux/linux.mk b/linux/linux.mk
index c4bdf90..2e0671b 100644
--- a/linux/linux.mk
+++ b/linux/linux.mk
@@ -9,9 +9,11 @@ LINUX_LICENSE_FILES = COPYING
 
 # Compute LINUX_SOURCE and LINUX_SITE from the configuration
 ifeq ($(LINUX_VERSION),custom)
+ifneq ($(BR2_LINUX_KERNEL_CUSTOM_TREE),y)
 LINUX_TARBALL = $(call qstrip,$(BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION))
 LINUX_SITE = $(dir $(LINUX_TARBALL))
 LINUX_SOURCE = $(notdir $(LINUX_TARBALL))
+endif
 else ifeq ($(BR2_LINUX_KERNEL_CUSTOM_GIT),y)
 LINUX_SITE = $(call qstrip,$(BR2_LINUX_KERNEL_CUSTOM_GIT_REPO_URL))
 LINUX_SITE_METHOD = git
@@ -31,6 +33,12 @@ LINUX_SITE := $(LINUX_SITE)testing/
 endif # -rc
 endif
 
+ifeq ($(BR2_LINUX_KERNEL_CUSTOM_TREE),y)
+LINUX_SOURCE_DIR := $(BR2_LINUX_KERNEL_CUSTOM_PATH)
+else
+LINUX_SOURCE_DIR := $(LINUX_DIR)
+endif
+
 LINUX_PATCHES = $(call qstrip,$(BR2_LINUX_KERNEL_PATCH))
 
 LINUX_INSTALL_IMAGES = YES
@@ -48,9 +56,13 @@ LINUX_MAKE_FLAGS = \
 	CROSS_COMPILE="$(CCACHE) $(TARGET_CROSS)" \
 	DEPMOD=$(HOST_DIR)/usr/sbin/depmod
 
+ifneq ($(LINUX_SOURCE_DIR),$(LINUX_DIR))
+LINUX_MAKE_FLAGS += O="$(LINUX_DIR)"
+endif
+
 # Get the real Linux version, which tells us where kernel modules are
 # going to be installed in the target filesystem.
-LINUX_VERSION_PROBED = $(shell $(MAKE) $(LINUX_MAKE_FLAGS) -C $(LINUX_DIR) --no-print-directory -s kernelrelease)
+LINUX_VERSION_PROBED = $(shell $(MAKE) $(LINUX_MAKE_FLAGS) -C $(LINUX_SOURCE_DIR) --no-print-directory -s kernelrelease)
 
 ifeq ($(BR2_LINUX_KERNEL_USE_INTREE_DTS),y)
 KERNEL_DTS_NAME = $(BR2_LINUX_KERNEL_INTREE_DTS_NAME)
@@ -135,11 +147,11 @@ LINUX_POST_DOWNLOAD_HOOKS += LINUX_DOWNLOAD_PATCHES
 define LINUX_APPLY_PATCHES
 	for p in $(LINUX_PATCHES) ; do \
 		if echo $$p | grep -q -E "^ftp://|^http://" ; then \
-			support/scripts/apply-patches.sh $(@D) $(DL_DIR) `basename $$p` ; \
+			support/scripts/apply-patches.sh $(LINUX_SOURCE_DIR) $(DL_DIR) `basename $$p` ; \
 		elif test -d $$p ; then \
-			support/scripts/apply-patches.sh $(@D) $$p linux-\*.patch ; \
+			support/scripts/apply-patches.sh $(LINUX_SOURCE_DIR) $$p linux-\*.patch ; \
 		else \
-			support/scripts/apply-patches.sh $(@D) `dirname $$p` `basename $$p` ; \
+			support/scripts/apply-patches.sh $(LINUX_SOURCE_DIR) `dirname $$p` `basename $$p` ; \
 		fi \
 	done
 endef
@@ -148,15 +160,13 @@ LINUX_POST_PATCH_HOOKS += LINUX_APPLY_PATCHES
 
 
 ifeq ($(BR2_LINUX_KERNEL_USE_DEFCONFIG),y)
-KERNEL_SOURCE_CONFIG = $(KERNEL_ARCH_PATH)/configs/$(call qstrip,$(BR2_LINUX_KERNEL_DEFCONFIG))_defconfig
+KERNEL_SOURCE_CONFIG = $(call qstrip,$(BR2_LINUX_KERNEL_DEFCONFIG))_defconfig
 else ifeq ($(BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG),y)
 KERNEL_SOURCE_CONFIG = $(BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE)
 endif
 
 define LINUX_CONFIGURE_CMDS
-	cp $(KERNEL_SOURCE_CONFIG) $(KERNEL_ARCH_PATH)/configs/buildroot_defconfig
-	$(TARGET_MAKE_ENV) $(MAKE1) $(LINUX_MAKE_FLAGS) -C $(@D) buildroot_defconfig
-	rm $(KERNEL_ARCH_PATH)/configs/buildroot_defconfig
+	$(TARGET_MAKE_ENV) $(MAKE1) $(LINUX_MAKE_FLAGS) -C $(LINUX_SOURCE_DIR) $(KERNEL_SOURCE_CONFIG)
 	$(if $(BR2_ARM_EABI),
 		$(call KCONFIG_ENABLE_OPT,CONFIG_AEABI,$(@D)/.config),
 		$(call KCONFIG_DISABLE_OPT,CONFIG_AEABI,$(@D)/.config))
@@ -181,7 +191,7 @@ define LINUX_CONFIGURE_CMDS
 		$(call KCONFIG_ENABLE_OPT,CONFIG_CGROUPS,$(@D)/.config))
 	$(if $(BR2_LINUX_KERNEL_APPENDED_DTB),
 		$(call KCONFIG_ENABLE_OPT,CONFIG_ARM_APPENDED_DTB,$(@D)/.config))
-	yes '' | $(TARGET_MAKE_ENV) $(MAKE1) $(LINUX_MAKE_FLAGS) -C $(@D) oldconfig
+	yes '' | $(TARGET_MAKE_ENV) $(MAKE1) $(LINUX_MAKE_FLAGS) -C $(LINUX_SOURCE_DIR) oldconfig
 endef
 
 ifeq ($(BR2_LINUX_KERNEL_DTS_SUPPORT),y)
@@ -213,9 +223,9 @@ endif
 define LINUX_BUILD_CMDS
 	$(if $(BR2_LINUX_KERNEL_USE_CUSTOM_DTS),
 		cp $(BR2_LINUX_KERNEL_CUSTOM_DTS_PATH) $(KERNEL_ARCH_PATH)/boot/dts/)
-	$(TARGET_MAKE_ENV) $(MAKE) $(LINUX_MAKE_FLAGS) -C $(@D) $(LINUX_IMAGE_TARGET)
+	$(TARGET_MAKE_ENV) $(MAKE) $(LINUX_MAKE_FLAGS) -C $(LINUX_SOURCE_DIR) $(LINUX_IMAGE_TARGET)
 	@if grep -q "CONFIG_MODULES=y" $(@D)/.config; then 	\
-		$(TARGET_MAKE_ENV) $(MAKE) $(LINUX_MAKE_FLAGS) -C $(@D) modules ;	\
+		$(TARGET_MAKE_ENV) $(MAKE) $(LINUX_MAKE_FLAGS) -C $(LINUX_SOURCE_DIR) modules ;	\
 	fi
 	$(LINUX_BUILD_DTB)
 	$(LINUX_APPEND_DTB)
@@ -247,7 +257,7 @@ define LINUX_INSTALL_TARGET_CMDS
 	# Install modules and remove symbolic links pointing to build
 	# directories, not relevant on the target
 	@if grep -q "CONFIG_MODULES=y" $(@D)/.config; then 	\
-		$(TARGET_MAKE_ENV) $(MAKE1) $(LINUX_MAKE_FLAGS) -C $(@D) 		\
+		$(TARGET_MAKE_ENV) $(MAKE1) $(LINUX_MAKE_FLAGS) -C $(LINUX_SOURCE_DIR) 	\
 			DEPMOD="$(HOST_DIR)/usr/sbin/depmod" modules_install ;		\
 		rm -f $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/build ;		\
 		rm -f $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/source ;	\
@@ -260,13 +270,13 @@ include linux/linux-ext-*.mk
 $(eval $(generic-package))
 
 ifeq ($(BR2_LINUX_KERNEL),y)
-linux-menuconfig linux-xconfig linux-gconfig linux-nconfig linux26-menuconfig linux26-xconfig linux26-gconfig linux26-nconfig: dirs linux-configure
-	$(MAKE) $(LINUX_MAKE_FLAGS) -C $(LINUX_DIR) \
+linux-config linux-menuconfig linux-xconfig linux-gconfig linux-nconfig linux26-menuconfig linux26-xconfig linux26-gconfig linux26-nconfig: dirs linux-configure
+	$(MAKE) $(LINUX_MAKE_FLAGS) -C $(LINUX_SOURCE_DIR) \
 		$(subst linux-,,$(subst linux26-,,$@))
 	rm -f $(LINUX_DIR)/.stamp_{built,target_installed,images_installed}
 
 linux-savedefconfig linux26-savedefconfig: dirs linux-configure
-	$(MAKE) $(LINUX_MAKE_FLAGS) -C $(LINUX_DIR) \
+	$(MAKE) $(LINUX_MAKE_FLAGS) -C $(LINUX_SOURCE_DIR) \
 		$(subst linux-,,$(subst linux26-,,$@))
 
 ifeq ($(BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG),y)
@@ -286,7 +296,7 @@ endif
 $(LINUX_DIR)/.stamp_initramfs_rebuilt: $(LINUX_DIR)/.stamp_target_installed $(LINUX_DIR)/.stamp_images_installed $(BINARIES_DIR)/rootfs.cpio
 	@$(call MESSAGE,"Rebuilding kernel with initramfs")
 	# Build the kernel.
-	$(TARGET_MAKE_ENV) $(MAKE) $(LINUX_MAKE_FLAGS) -C $(@D) $(LINUX_IMAGE_NAME)
+	$(TARGET_MAKE_ENV) $(MAKE) $(LINUX_MAKE_FLAGS) -C $(LINUX_SOURCE_DIR) $(LINUX_IMAGE_NAME)
 	# Copy the kernel image to its final destination
 	cp $(LINUX_IMAGE_PATH) $(BINARIES_DIR)
 	# If there is a .ub file copy it to the final destination
diff --git a/package/pkg-generic.mk b/package/pkg-generic.mk
index 68d23ba..83d70aa 100644
--- a/package/pkg-generic.mk
+++ b/package/pkg-generic.mk
@@ -77,6 +77,7 @@ endif
 $(BUILD_DIR)/%/.stamp_patched: NAMEVER = $(RAWNAME)-$($(PKG)_VERSION)
 $(BUILD_DIR)/%/.stamp_patched:
 	@$(call MESSAGE,"Patching $($(PKG)_DIR_PREFIX)/$(RAWNAME)")
+	$(Q)mkdir -p $(@D)
 	$(foreach hook,$($(PKG)_PRE_PATCH_HOOKS),$(call $(hook))$(sep))
 	$(if $($(PKG)_PATCH),support/scripts/apply-patches.sh $(@D) $(DL_DIR) $($(PKG)_PATCH))
 	$(Q)( \
@@ -296,8 +297,18 @@ $(2)_TARGET_CONFIGURE =		$$($(2)_DIR)/.stamp_configured
 $(2)_TARGET_RSYNC =	        $$($(2)_DIR)/.stamp_rsynced
 $(2)_TARGET_RSYNC_SOURCE =      $$($(2)_DIR)/.stamp_rsync_sourced
 $(2)_TARGET_PATCH =		$$($(2)_DIR)/.stamp_patched
+ifeq ($(2), LINUX)
+ifeq ($(BR2_LINUX_KERNEL_CUSTOM_TREE),y)
+$(2)_TARGET_EXTRACT =
+$(2)_TARGET_SOURCE =
+else
 $(2)_TARGET_EXTRACT =		$$($(2)_DIR)/.stamp_extracted
 $(2)_TARGET_SOURCE =		$$($(2)_DIR)/.stamp_downloaded
+endif
+else
+$(2)_TARGET_EXTRACT =		$$($(2)_DIR)/.stamp_extracted
+$(2)_TARGET_SOURCE =		$$($(2)_DIR)/.stamp_downloaded
+endif
 $(2)_TARGET_UNINSTALL =		$$($(2)_DIR)/.stamp_uninstalled
 $(2)_TARGET_CLEAN =		$$($(2)_DIR)/.stamp_cleaned
 $(2)_TARGET_DIRCLEAN =		$$($(2)_DIR)/.stamp_dircleaned
-- 
1.7.0.4

^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [Buildroot] [PATCH 3/5] buildroot: patch kernel by kernel version
  2012-08-07  9:09 [Buildroot] [PATCH 1/5] buildroot:linux: Rename blackfin kernel Image file from vmImage back to uImage Sonic Zhang
  2012-08-07  9:09 ` [Buildroot] [PATCH 2/5] linux: support unpacked kernel source tree Sonic Zhang
@ 2012-08-07  9:09 ` Sonic Zhang
  2012-08-11 18:08   ` Thomas Petazzoni
  2012-08-07  9:09 ` [Buildroot] [PATCH 4/5] Linux: Unpatch customer kernel source tree before make clean Sonic Zhang
                   ` (2 subsequent siblings)
  4 siblings, 1 reply; 17+ messages in thread
From: Sonic Zhang @ 2012-08-07  9:09 UTC (permalink / raw)
  To: buildroot

From: Bob Liu <bob.liu@analog.com>

support patch kernel by kernel version.

Signed-off-by: Sonic Zhang <sonic.zhang@analog.com>
---
 linux/linux.mk |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/linux/linux.mk b/linux/linux.mk
index 2e0671b..48021a1 100644
--- a/linux/linux.mk
+++ b/linux/linux.mk
@@ -64,6 +64,8 @@ endif
 # going to be installed in the target filesystem.
 LINUX_VERSION_PROBED = $(shell $(MAKE) $(LINUX_MAKE_FLAGS) -C $(LINUX_SOURCE_DIR) --no-print-directory -s kernelrelease)
 
+KERNELVERSION=$(shell cat $(LINUX_SOURCE_DIR)/Makefile | awk 'BEGIN { FS = " *= *" }  NF != 2 { next } $$1 == "VERSION" { maj = $$2} $$1 == "PATCHLEVEL" { mid = $$2 } $$1 == "SUBLEVEL" { mic = $$2 } END {print maj "." mid "." mic}')
+
 ifeq ($(BR2_LINUX_KERNEL_USE_INTREE_DTS),y)
 KERNEL_DTS_NAME = $(BR2_LINUX_KERNEL_INTREE_DTS_NAME)
 else ifeq ($(BR2_LINUX_KERNEL_USE_CUSTOM_DTS),y)
@@ -149,7 +151,7 @@ define LINUX_APPLY_PATCHES
 		if echo $$p | grep -q -E "^ftp://|^http://" ; then \
 			support/scripts/apply-patches.sh $(LINUX_SOURCE_DIR) $(DL_DIR) `basename $$p` ; \
 		elif test -d $$p ; then \
-			support/scripts/apply-patches.sh $(LINUX_SOURCE_DIR) $$p linux-\*.patch ; \
+			support/scripts/apply-patches.sh $(LINUX_SOURCE_DIR) $$p linux-$(KERNELVERSION)-\*.patch ; \
 		else \
 			support/scripts/apply-patches.sh $(LINUX_SOURCE_DIR) `dirname $$p` `basename $$p` ; \
 		fi \
-- 
1.7.0.4

^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [Buildroot] [PATCH 4/5] Linux: Unpatch customer kernel source tree before make clean.
  2012-08-07  9:09 [Buildroot] [PATCH 1/5] buildroot:linux: Rename blackfin kernel Image file from vmImage back to uImage Sonic Zhang
  2012-08-07  9:09 ` [Buildroot] [PATCH 2/5] linux: support unpacked kernel source tree Sonic Zhang
  2012-08-07  9:09 ` [Buildroot] [PATCH 3/5] buildroot: patch kernel by kernel version Sonic Zhang
@ 2012-08-07  9:09 ` Sonic Zhang
  2012-08-11 18:11   ` Thomas Petazzoni
  2012-08-07  9:09 ` [Buildroot] [PATCH 5/5] buildroot: initramfs: Generate vmImage without builtin initramfs rootfs Sonic Zhang
  2012-08-11 18:04 ` [Buildroot] [PATCH 1/5] buildroot:linux: Rename blackfin kernel Image file from vmImage back to uImage Thomas Petazzoni
  4 siblings, 1 reply; 17+ messages in thread
From: Sonic Zhang @ 2012-08-07  9:09 UTC (permalink / raw)
  To: buildroot

From: Sonic Zhang <sonic.zhang@analog.com>

Unpatch only patches which match current kernel version.

Signed-off-by: Sonic Zhang <sonic.zhang@analog.com>
---
 Makefile       |    2 +-
 linux/linux.mk |   13 +++++++++++++
 2 files changed, 14 insertions(+), 1 deletions(-)

diff --git a/Makefile b/Makefile
index ce81045..e7da18e 100644
--- a/Makefile
+++ b/Makefile
@@ -663,7 +663,7 @@ ifeq ($(NEED_WRAPPER),y)
 	$(Q)$(TOPDIR)/support/scripts/mkmakefile $(TOPDIR) $(O)
 endif
 
-clean:
+clean: linux-unpatch
 	rm -rf $(STAGING_DIR) $(TARGET_DIR) $(BINARIES_DIR) $(HOST_DIR) \
 		$(STAMP_DIR) $(BUILD_DIR) $(TOOLCHAIN_DIR) $(BASE_DIR)/staging \
 		$(LEGAL_INFO_DIR)
diff --git a/linux/linux.mk b/linux/linux.mk
index 48021a1..4ad8b49 100644
--- a/linux/linux.mk
+++ b/linux/linux.mk
@@ -309,6 +309,19 @@ $(LINUX_DIR)/.stamp_initramfs_rebuilt: $(LINUX_DIR)/.stamp_target_installed $(LI
 # after it generated the initramfs list of files.
 linux-rebuild-with-initramfs linux26-rebuild-with-initramfs: $(LINUX_DIR)/.stamp_initramfs_rebuilt
 
+LINUX_PATCH_LIST=$(wildcard $(LINUX_PATCHES)/linux-$(KERNELVERSION)-*.patch)
+linux-unpatch:
+ifeq ($(BR2_LINUX_KERNEL_CUSTOM_TREE),y)
+ifneq ($(wildcard $(BUILD_DIR)/linux-$(LINUX_VERSION)/.stamp_patched),)
+	@echo "unpatch linux kernel...."
+	for p in $(LINUX_PATCH_LIST) ; do \
+		patch -RE -p1 -d $(LINUX_SOURCE_DIR) < $$p; \
+	done
+else
+	@echo "linux kernel didn't patched, skip unpatch...."
+endif
+endif
+
 # Checks to give errors that the user can understand
 ifeq ($(filter source,$(MAKECMDGOALS)),)
 ifeq ($(BR2_LINUX_KERNEL_USE_DEFCONFIG),y)
-- 
1.7.0.4

^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [Buildroot] [PATCH 5/5] buildroot: initramfs: Generate vmImage without builtin initramfs rootfs.
  2012-08-07  9:09 [Buildroot] [PATCH 1/5] buildroot:linux: Rename blackfin kernel Image file from vmImage back to uImage Sonic Zhang
                   ` (2 preceding siblings ...)
  2012-08-07  9:09 ` [Buildroot] [PATCH 4/5] Linux: Unpatch customer kernel source tree before make clean Sonic Zhang
@ 2012-08-07  9:09 ` Sonic Zhang
  2012-08-11 18:13   ` Thomas Petazzoni
  2012-08-11 18:04 ` [Buildroot] [PATCH 1/5] buildroot:linux: Rename blackfin kernel Image file from vmImage back to uImage Thomas Petazzoni
  4 siblings, 1 reply; 17+ messages in thread
From: Sonic Zhang @ 2012-08-07  9:09 UTC (permalink / raw)
  To: buildroot

From: Sonic Zhang <sonic.zhang@analog.com>

This is for developer's convenience when debugging via initramfs uImage.

Signed-off-by: Sonic Zhang <sonic.zhang@analog.com>
---
 linux/linux.mk |    9 +++++++++
 1 files changed, 9 insertions(+), 0 deletions(-)

diff --git a/linux/linux.mk b/linux/linux.mk
index 4ad8b49..49545b8 100644
--- a/linux/linux.mk
+++ b/linux/linux.mk
@@ -223,6 +223,11 @@ endif
 # Compilation. We make sure the kernel gets rebuilt when the
 # configuration has changed.
 define LINUX_BUILD_CMDS
+	$(if $(BR2_TARGET_ROOTFS_INITRAMFS),
+	# Remove the any previously generated initramfs if do recompilation.
+		$(RM) -f $(BINARIES_DIR)/rootfs.initramfs
+		$(RM) -f $(@D)/usr/initramfs_data.cpio*
+		touch $(BINARIES_DIR)/rootfs.initramfs)
 	$(if $(BR2_LINUX_KERNEL_USE_CUSTOM_DTS),
 		cp $(BR2_LINUX_KERNEL_CUSTOM_DTS_PATH) $(KERNEL_ARCH_PATH)/boot/dts/)
 	$(TARGET_MAKE_ENV) $(MAKE) $(LINUX_MAKE_FLAGS) -C $(LINUX_SOURCE_DIR) $(LINUX_IMAGE_TARGET)
@@ -231,6 +236,8 @@ define LINUX_BUILD_CMDS
 	fi
 	$(LINUX_BUILD_DTB)
 	$(LINUX_APPEND_DTB)
+	$(if $(BR2_TARGET_ROOTFS_INITRAMFS),
+		cp $(LINUX_IMAGE_PATH) $(KERNEL_ARCH_PATH)/boot/vmImage)
 endef
 
 
@@ -251,6 +258,8 @@ endef
 
 define LINUX_INSTALL_IMAGES_CMDS
 	cp $(LINUX_IMAGE_PATH) $(BINARIES_DIR)
+	$(if $(BR2_TARGET_ROOTFS_INITRAMFS),
+		cp $(KERNEL_ARCH_PATH)/boot/vmImage $(BINARIES_DIR))
 endef
 
 define LINUX_INSTALL_TARGET_CMDS
-- 
1.7.0.4

^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [Buildroot] [PATCH 1/5] buildroot:linux: Rename blackfin kernel Image file from vmImage back to uImage.
  2012-08-07  9:09 [Buildroot] [PATCH 1/5] buildroot:linux: Rename blackfin kernel Image file from vmImage back to uImage Sonic Zhang
                   ` (3 preceding siblings ...)
  2012-08-07  9:09 ` [Buildroot] [PATCH 5/5] buildroot: initramfs: Generate vmImage without builtin initramfs rootfs Sonic Zhang
@ 2012-08-11 18:04 ` Thomas Petazzoni
  4 siblings, 0 replies; 17+ messages in thread
From: Thomas Petazzoni @ 2012-08-11 18:04 UTC (permalink / raw)
  To: buildroot

Le Tue, 7 Aug 2012 17:09:33 +0800,
Sonic Zhang <sonic.adi@gmail.com> a ?crit :

> From: Sonic Zhang <sonic.zhang@analog.com>
> 
> Consist with other architectures.
> 
> Signed-off-by: Sonic Zhang <sonic.zhang@analog.com>

Thanks, pushed to master. I have considered this as a bug fix, so I
could commit this to master.

Thomas
-- 
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [Buildroot] [PATCH 2/5] linux: support unpacked kernel source tree
  2012-08-07  9:09 ` [Buildroot] [PATCH 2/5] linux: support unpacked kernel source tree Sonic Zhang
@ 2012-08-11 18:06   ` Thomas Petazzoni
  2012-08-13 10:12     ` Sonic Zhang
  0 siblings, 1 reply; 17+ messages in thread
From: Thomas Petazzoni @ 2012-08-11 18:06 UTC (permalink / raw)
  To: buildroot

Hello,

Le Tue, 7 Aug 2012 17:09:34 +0800,
Sonic Zhang <sonic.adi@gmail.com> a ?crit :

> From: Sonic Zhang <sonic.zhang@analog.com>
> 
> Point the kernel build system to the unpacked source tree.
> Allow the building folder differ from the source folder.
> 
> LINUX_DIR still refers to the building folder, while LINUX_SOURCE_DIR
> refers to the customer specified source folder.
> 
> Signed-off-by: Sonic Zhang <sonic.zhang@analog.com>

I know Mike implemented this a while ago, but we don't want this in
Buildroot. The reason is that we don't want a per-package specific
mechanism to handle such a thing, but rather something at the package
infrastructure level.

At the moment, what we have to offer is the local.mk mechanism: you can
create a local.mk in which you write:

LINUX_OVERRIDE_SRCDIR = /path/to/linux/sources

and then Buildroot will use the sources of Linux from this directory
instead of doing the normal download/extract/patch strategy.

This mechanism is implemented at the package infrastructure level, and
therefore works for all packages, not only Linux.

We're definitely open to improving things at the package infrastructure
level, but we clearly don't want to add package-specific mechanisms
such as the one being proposed here.

Best regards,

Thomas
-- 
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [Buildroot] [PATCH 3/5] buildroot: patch kernel by kernel version
  2012-08-07  9:09 ` [Buildroot] [PATCH 3/5] buildroot: patch kernel by kernel version Sonic Zhang
@ 2012-08-11 18:08   ` Thomas Petazzoni
  2012-08-13 10:13     ` Sonic Zhang
  0 siblings, 1 reply; 17+ messages in thread
From: Thomas Petazzoni @ 2012-08-11 18:08 UTC (permalink / raw)
  To: buildroot

Le Tue, 7 Aug 2012 17:09:35 +0800,
Sonic Zhang <sonic.adi@gmail.com> a ?crit :

> +KERNELVERSION=$(shell cat $(LINUX_SOURCE_DIR)/Makefile | awk 'BEGIN { FS = " *= *" }  NF != 2 { next } $$1 == "VERSION" { maj = $$2} $$1 == "PATCHLEVEL" { mid = $$2 } $$1 == "SUBLEVEL" { mic = $$2 } END {print maj "." mid "." mic}')

This sounds horribly fragile.

>  ifeq ($(BR2_LINUX_KERNEL_USE_INTREE_DTS),y)
>  KERNEL_DTS_NAME = $(BR2_LINUX_KERNEL_INTREE_DTS_NAME)
>  else ifeq ($(BR2_LINUX_KERNEL_USE_CUSTOM_DTS),y)
> @@ -149,7 +151,7 @@ define LINUX_APPLY_PATCHES
>  		if echo $$p | grep -q -E "^ftp://|^http://" ; then \
>  			support/scripts/apply-patches.sh $(LINUX_SOURCE_DIR) $(DL_DIR) `basename $$p` ; \
>  		elif test -d $$p ; then \
> -			support/scripts/apply-patches.sh $(LINUX_SOURCE_DIR) $$p linux-\*.patch ; \
> +			support/scripts/apply-patches.sh $(LINUX_SOURCE_DIR) $$p linux-$(KERNELVERSION)-\*.patch ; \

Generally, we want to move away from patches having a version number in
their name. For the packages for which multiple versions are supported,
the patches should be organized in subdirectories named after the
version. So instead of this patch, just organize your kernel patches in
directories named linux-patches-3.2/, linux-patches-3.4/, etc.

Best regards,

Thomas
-- 
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [Buildroot] [PATCH 4/5] Linux: Unpatch customer kernel source tree before make clean.
  2012-08-07  9:09 ` [Buildroot] [PATCH 4/5] Linux: Unpatch customer kernel source tree before make clean Sonic Zhang
@ 2012-08-11 18:11   ` Thomas Petazzoni
  2012-08-13 10:21     ` Sonic Zhang
  0 siblings, 1 reply; 17+ messages in thread
From: Thomas Petazzoni @ 2012-08-11 18:11 UTC (permalink / raw)
  To: buildroot

Le Tue, 7 Aug 2012 17:09:36 +0800,
Sonic Zhang <sonic.adi@gmail.com> a ?crit :

> From: Sonic Zhang <sonic.zhang@analog.com>
> 
> Unpatch only patches which match current kernel version.
> 
> Signed-off-by: Sonic Zhang <sonic.zhang@analog.com>

What is the use case for this?

Again, you're implementing something completely specific for the linux
package while the logic itself has nothing specific to the Linux
kernel. So if we ever want something like this, we want to implement it
at the package infrastructure level, and clearly not in some random
specific package.

I'm sorry to reject some of your patches this way, but as Buildroot
developers, we have to maintain a good coherency and consistency in the
implementation of the package recipes and the package infrastructure.
And this consistency means that we don't want to implement specific
things in packages that should in fact be implemented at the package
infrastructure level.

Best regards,

Thomas
-- 
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [Buildroot] [PATCH 5/5] buildroot: initramfs: Generate vmImage without builtin initramfs rootfs.
  2012-08-07  9:09 ` [Buildroot] [PATCH 5/5] buildroot: initramfs: Generate vmImage without builtin initramfs rootfs Sonic Zhang
@ 2012-08-11 18:13   ` Thomas Petazzoni
  2012-08-13 10:32     ` Sonic Zhang
  0 siblings, 1 reply; 17+ messages in thread
From: Thomas Petazzoni @ 2012-08-11 18:13 UTC (permalink / raw)
  To: buildroot

Le Tue, 7 Aug 2012 17:09:37 +0800,
Sonic Zhang <sonic.adi@gmail.com> a ?crit :

> From: Sonic Zhang <sonic.zhang@analog.com>
> 
> This is for developer's convenience when debugging via initramfs uImage.
> 
> Signed-off-by: Sonic Zhang <sonic.zhang@analog.com>

What is the problem being solved here? Could you expand a bit on the
"why" this is needed? When you make changes to the root filesystem and
do "make", the initramfs is regenerated, and the kernel image is
regenerated as well with the current Buildroot, so I'm not sure what
this patch is solving.

> +	$(if $(BR2_TARGET_ROOTFS_INITRAMFS),
> +		cp $(LINUX_IMAGE_PATH) $(KERNEL_ARCH_PATH)/boot/vmImage)

I'm confused. What is this vmImage thing that you are copying back into
the kernel tree here...

>  define LINUX_INSTALL_IMAGES_CMDS
>  	cp $(LINUX_IMAGE_PATH) $(BINARIES_DIR)
> +	$(if $(BR2_TARGET_ROOTFS_INITRAMFS),
> +		cp $(KERNEL_ARCH_PATH)/boot/vmImage $(BINARIES_DIR))

and installing to output/images here?

Thanks,

Thomas
-- 
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [Buildroot] [PATCH 2/5] linux: support unpacked kernel source tree
  2012-08-11 18:06   ` Thomas Petazzoni
@ 2012-08-13 10:12     ` Sonic Zhang
  2012-08-13 17:27       ` Thomas Petazzoni
  0 siblings, 1 reply; 17+ messages in thread
From: Sonic Zhang @ 2012-08-13 10:12 UTC (permalink / raw)
  To: buildroot

On Sun, Aug 12, 2012 at 2:06 AM, Thomas Petazzoni
<thomas.petazzoni@free-electrons.com> wrote:
> Hello,
>
> Le Tue, 7 Aug 2012 17:09:34 +0800,
> Sonic Zhang <sonic.adi@gmail.com> a ?crit :
>
>> From: Sonic Zhang <sonic.zhang@analog.com>
>>
>> Point the kernel build system to the unpacked source tree.
>> Allow the building folder differ from the source folder.
>>
>> LINUX_DIR still refers to the building folder, while LINUX_SOURCE_DIR
>> refers to the customer specified source folder.
>>
>> Signed-off-by: Sonic Zhang <sonic.zhang@analog.com>
>
> I know Mike implemented this a while ago, but we don't want this in
> Buildroot. The reason is that we don't want a per-package specific
> mechanism to handle such a thing, but rather something at the package
> infrastructure level.
>
> At the moment, what we have to offer is the local.mk mechanism: you can
> create a local.mk in which you write:
>

Should I put this local.mk into buildroot/linux/ ?

> LINUX_OVERRIDE_SRCDIR = /path/to/linux/sources
>
> and then Buildroot will use the sources of Linux from this directory
> instead of doing the normal download/extract/patch strategy.
>

The kernel configuration options in linux/Config.in don't allow me to
choose a local source. What should I do after seting local.mk up?

Thanks

Sonic

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [Buildroot] [PATCH 3/5] buildroot: patch kernel by kernel version
  2012-08-11 18:08   ` Thomas Petazzoni
@ 2012-08-13 10:13     ` Sonic Zhang
  0 siblings, 0 replies; 17+ messages in thread
From: Sonic Zhang @ 2012-08-13 10:13 UTC (permalink / raw)
  To: buildroot

On Sun, Aug 12, 2012 at 2:08 AM, Thomas Petazzoni
<thomas.petazzoni@free-electrons.com> wrote:
> Le Tue, 7 Aug 2012 17:09:35 +0800,
> Sonic Zhang <sonic.adi@gmail.com> a ?crit :
>
>> +KERNELVERSION=$(shell cat $(LINUX_SOURCE_DIR)/Makefile | awk 'BEGIN { FS = " *= *" }  NF != 2 { next } $$1 == "VERSION" { maj = $$2} $$1 == "PATCHLEVEL" { mid = $$2 } $$1 == "SUBLEVEL" { mic = $$2 } END {print maj "." mid "." mic}')
>
> This sounds horribly fragile.
>
>>  ifeq ($(BR2_LINUX_KERNEL_USE_INTREE_DTS),y)
>>  KERNEL_DTS_NAME = $(BR2_LINUX_KERNEL_INTREE_DTS_NAME)
>>  else ifeq ($(BR2_LINUX_KERNEL_USE_CUSTOM_DTS),y)
>> @@ -149,7 +151,7 @@ define LINUX_APPLY_PATCHES
>>               if echo $$p | grep -q -E "^ftp://|^http://" ; then \
>>                       support/scripts/apply-patches.sh $(LINUX_SOURCE_DIR) $(DL_DIR) `basename $$p` ; \
>>               elif test -d $$p ; then \
>> -                     support/scripts/apply-patches.sh $(LINUX_SOURCE_DIR) $$p linux-\*.patch ; \
>> +                     support/scripts/apply-patches.sh $(LINUX_SOURCE_DIR) $$p linux-$(KERNELVERSION)-\*.patch ; \
>
> Generally, we want to move away from patches having a version number in
> their name. For the packages for which multiple versions are supported,
> the patches should be organized in subdirectories named after the
> version. So instead of this patch, just organize your kernel patches in
> directories named linux-patches-3.2/, linux-patches-3.4/, etc.
>

This fine.


Sonic

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [Buildroot] [PATCH 4/5] Linux: Unpatch customer kernel source tree before make clean.
  2012-08-11 18:11   ` Thomas Petazzoni
@ 2012-08-13 10:21     ` Sonic Zhang
  0 siblings, 0 replies; 17+ messages in thread
From: Sonic Zhang @ 2012-08-13 10:21 UTC (permalink / raw)
  To: buildroot

On Sun, Aug 12, 2012 at 2:11 AM, Thomas Petazzoni
<thomas.petazzoni@free-electrons.com> wrote:
> Le Tue, 7 Aug 2012 17:09:36 +0800,
> Sonic Zhang <sonic.adi@gmail.com> a ?crit :
>
>> From: Sonic Zhang <sonic.zhang@analog.com>
>>
>> Unpatch only patches which match current kernel version.
>>
>> Signed-off-by: Sonic Zhang <sonic.zhang@analog.com>
>
> What is the use case for this?
>
> Again, you're implementing something completely specific for the linux
> package while the logic itself has nothing specific to the Linux
> kernel. So if we ever want something like this, we want to implement it
> at the package infrastructure level, and clearly not in some random
> specific package.
>

I will try to turn these unpatch script into a make clean hook for
packages with override source.


Regards,

Sonic

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [Buildroot] [PATCH 5/5] buildroot: initramfs: Generate vmImage without builtin initramfs rootfs.
  2012-08-11 18:13   ` Thomas Petazzoni
@ 2012-08-13 10:32     ` Sonic Zhang
  2012-08-21 22:49       ` Arnout Vandecappelle
  0 siblings, 1 reply; 17+ messages in thread
From: Sonic Zhang @ 2012-08-13 10:32 UTC (permalink / raw)
  To: buildroot

On Sun, Aug 12, 2012 at 2:13 AM, Thomas Petazzoni
<thomas.petazzoni@free-electrons.com> wrote:
> Le Tue, 7 Aug 2012 17:09:37 +0800,
> Sonic Zhang <sonic.adi@gmail.com> a ?crit :
>
>> From: Sonic Zhang <sonic.zhang@analog.com>
>>
>> This is for developer's convenience when debugging via initramfs uImage.
>>
>> Signed-off-by: Sonic Zhang <sonic.zhang@analog.com>
>
> What is the problem being solved here? Could you expand a bit on the
> "why" this is needed? When you make changes to the root filesystem and
> do "make", the initramfs is regenerated, and the kernel image is
> regenerated as well with the current Buildroot, so I'm not sure what
> this patch is solving.

The uImage generated for initramfs can't be used directly to boot
kernel with a rootfs on the other device by setting boot parameters
"root=/dev/mtdblock0" in uboot. Some test cases need to boot from the
other device without rebuilding the uImage for initramfs.

This patch generates a pure kernel image (vmImage) for developers
convenience in addition to the uImage which has initramfs linked in.


Regards,

Sonic

>
>> +     $(if $(BR2_TARGET_ROOTFS_INITRAMFS),
>> +             cp $(LINUX_IMAGE_PATH) $(KERNEL_ARCH_PATH)/boot/vmImage)
>
> I'm confused. What is this vmImage thing that you are copying back into
> the kernel tree here...
>
>>  define LINUX_INSTALL_IMAGES_CMDS
>>       cp $(LINUX_IMAGE_PATH) $(BINARIES_DIR)
>> +     $(if $(BR2_TARGET_ROOTFS_INITRAMFS),
>> +             cp $(KERNEL_ARCH_PATH)/boot/vmImage $(BINARIES_DIR))
>
> and installing to output/images here?
>
> Thanks,
>
> Thomas
> --
> Thomas Petazzoni, Free Electrons
> Kernel, drivers, real-time and embedded Linux
> development, consulting, training and support.
> http://free-electrons.com

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [Buildroot] [PATCH 2/5] linux: support unpacked kernel source tree
  2012-08-13 10:12     ` Sonic Zhang
@ 2012-08-13 17:27       ` Thomas Petazzoni
  2012-08-14  8:44         ` Sonic Zhang
  0 siblings, 1 reply; 17+ messages in thread
From: Thomas Petazzoni @ 2012-08-13 17:27 UTC (permalink / raw)
  To: buildroot

Hello,

Le Mon, 13 Aug 2012 18:12:07 +0800,
Sonic Zhang <sonic.adi@gmail.com> a ?crit :

> > At the moment, what we have to offer is the local.mk mechanism: you can
> > create a local.mk in which you write:
> 
> Should I put this local.mk into buildroot/linux/ ?

By default, Buildroot reads local.mk from the top source directory, but
this is configurable through the BR2_PACKAGE_OVERRIDE_FILE
configuration option.

> > LINUX_OVERRIDE_SRCDIR = /path/to/linux/sources
> >
> > and then Buildroot will use the sources of Linux from this directory
> > instead of doing the normal download/extract/patch strategy.
> 
> The kernel configuration options in linux/Config.in don't allow me to
> choose a local source. What should I do after seting local.mk up?

Nothing, it will be picked automatically, because linux/ is handled by
the common package infrastructure, which takes care of the
<foo>_OVERRIDE_SRCDIR option you can set in local.mk.

I admit this isn't completely nice to use, but this is so far the best
solution we have found to implement this at the package infrastructure
level. If you have better suggestions, we are definitely open to
changing/improving this mechanism.

Best regards,

Thomas
-- 
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [Buildroot] [PATCH 2/5] linux: support unpacked kernel source tree
  2012-08-13 17:27       ` Thomas Petazzoni
@ 2012-08-14  8:44         ` Sonic Zhang
  0 siblings, 0 replies; 17+ messages in thread
From: Sonic Zhang @ 2012-08-14  8:44 UTC (permalink / raw)
  To: buildroot

Hi Thomas,

On Tue, Aug 14, 2012 at 1:27 AM, Thomas Petazzoni
<thomas.petazzoni@free-electrons.com> wrote:
> Hello,
>
> Le Mon, 13 Aug 2012 18:12:07 +0800,
> Sonic Zhang <sonic.adi@gmail.com> a ?crit :
>
>> > At the moment, what we have to offer is the local.mk mechanism: you can
>> > create a local.mk in which you write:
>>
>> Should I put this local.mk into buildroot/linux/ ?
>
> By default, Buildroot reads local.mk from the top source directory, but
> this is configurable through the BR2_PACKAGE_OVERRIDE_FILE
> configuration option.
>
>> > LINUX_OVERRIDE_SRCDIR = /path/to/linux/sources
>> >
>> > and then Buildroot will use the sources of Linux from this directory
>> > instead of doing the normal download/extract/patch strategy.
>>
>> The kernel configuration options in linux/Config.in don't allow me to
>> choose a local source. What should I do after seting local.mk up?
>
> Nothing, it will be picked automatically, because linux/ is handled by
> the common package infrastructure, which takes care of the
> <foo>_OVERRIDE_SRCDIR option you can set in local.mk.
>
> I admit this isn't completely nice to use, but this is so far the best
> solution we have found to implement this at the package infrastructure
> level. If you have better suggestions, we are definitely open to
> changing/improving this mechanism.
>

Current _OVERRIDE_SRCDIR method in local.mk doesn't help the
requirement to build developer's local SCM tree by buildroot without
copying the entire source code. This method asks for a complete copy
and rebuilding each time the developer changes anything in his local
SCM. It is inefficient and painful to develop large software packages
such as Linux kernel in this way.

To addresses this requirement, the generic package has to define its
source override path and forward the path flags to make command
explicitly. It is better to define _OVERRIDE_SRCDIR macro in the
generic package's makefile other than the local.mk.

I will revise my patch into common package infrastructure part and
Linux specific part for your comments.
Other generic packages can do similar change to support override
source without copying.

Regards,

Sonic Zhang

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [Buildroot] [PATCH 5/5] buildroot: initramfs: Generate vmImage without builtin initramfs rootfs.
  2012-08-13 10:32     ` Sonic Zhang
@ 2012-08-21 22:49       ` Arnout Vandecappelle
  0 siblings, 0 replies; 17+ messages in thread
From: Arnout Vandecappelle @ 2012-08-21 22:49 UTC (permalink / raw)
  To: buildroot

On 08/13/12 12:32, Sonic Zhang wrote:
> This patch generates a pure kernel image (vmImage) for developers
> convenience in addition to the uImage which has initramfs linked in.

  This sentence makes a much clearer commit message :-)

  Also, I would call this image $(LINUX_IMAGE_NAME)-noinitramfs rather than
vmImage.

  Regards,
  Arnout
-- 
Arnout Vandecappelle                               arnout at mind be
Senior Embedded Software Architect                 +32-16-286540
Essensium/Mind                                     http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium                BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F

^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2012-08-21 22:49 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-08-07  9:09 [Buildroot] [PATCH 1/5] buildroot:linux: Rename blackfin kernel Image file from vmImage back to uImage Sonic Zhang
2012-08-07  9:09 ` [Buildroot] [PATCH 2/5] linux: support unpacked kernel source tree Sonic Zhang
2012-08-11 18:06   ` Thomas Petazzoni
2012-08-13 10:12     ` Sonic Zhang
2012-08-13 17:27       ` Thomas Petazzoni
2012-08-14  8:44         ` Sonic Zhang
2012-08-07  9:09 ` [Buildroot] [PATCH 3/5] buildroot: patch kernel by kernel version Sonic Zhang
2012-08-11 18:08   ` Thomas Petazzoni
2012-08-13 10:13     ` Sonic Zhang
2012-08-07  9:09 ` [Buildroot] [PATCH 4/5] Linux: Unpatch customer kernel source tree before make clean Sonic Zhang
2012-08-11 18:11   ` Thomas Petazzoni
2012-08-13 10:21     ` Sonic Zhang
2012-08-07  9:09 ` [Buildroot] [PATCH 5/5] buildroot: initramfs: Generate vmImage without builtin initramfs rootfs Sonic Zhang
2012-08-11 18:13   ` Thomas Petazzoni
2012-08-13 10:32     ` Sonic Zhang
2012-08-21 22:49       ` Arnout Vandecappelle
2012-08-11 18:04 ` [Buildroot] [PATCH 1/5] buildroot:linux: Rename blackfin kernel Image file from vmImage back to uImage Thomas Petazzoni

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.