[Buildroot] building Kernel with target/device/vendor/board

Konstantin Kletschke kletschke at synertronixx.de
Wed Mar 7 14:49:28 UTC 2007


Actually I am trying to build a custom Kernel to get its modules into
the jffs2 image. My Makefile looks this:

BR2_BOARD_PATH:=target/device/synertronixx/scb9328

ifndef LINUX26_KCONFIG
LINUX26_KCONFIG=$(BR2_BOARD_PATH)/linux26.config
endif

LINUX26_FORMAT=uImage

BR2_PACKAGE_BUSYBOX_CONFIG=$(BR2_BOARD_PATH)/busybox-1.4.0.config
UCLIBC_CONFIG_FILE:=target/device/synertronixx/scb9328/uClibc-0.9.29.config

TARGET_SKELETON=$(BR2_BOARD_PATH)/target_skeleton
TARGET_DEVICE_TABLE=$(BR2_BOARD_PATH)/device_table.txt

This works well after I added 2.6.20 headers support into my buildroot
and after I enabled

BR2_PACKAGE_LINUX=y

buildroot tries to build my 2.6.20 kernel. But it does not apply
patches in LINUX26_PATCH_DIR=$(BR2_BOARD_PATH)/kernel-patches/ because
there is an (strange) ifneq around patching command in
target/linux26.mk:

#KONSTI ifneq ($(strip $(LINUX26_VERSION)),$(strip $(LINUX_HEADERS_VERSION)))
$(DL_DIR)/$(LINUX26_SOURCE):
	 $(WGET) -P $(DL_DIR) $(LINUX26_SITE)/$(LINUX26_SOURCE)

$(LINUX26_DIR)/.unpacked: $(DL_DIR)/$(LINUX26_SOURCE)
	rm -rf $(LINUX26_DIR)
	$(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) $(BUILD_DIR)/linux-$(LINUX26_VERSION)
endif
	touch $@

$(LINUX26_DIR)/.patched: $(LINUX26_DIR)/.unpacked
	toolchain/patch-kernel.sh $(LINUX26_DIR) $(LINUX26_PATCH_DIR)
	touch $@
#KONSTI endif # ($(LINUX26_VERSION),$(LINUX_HEADERS_VERSION))

If I disable this (already done with the "#KONSTI "s), things are
working like I expect, my .config is apllied and my modules get
installed and all.

Whats the canonical way to install custom headers including vendor
patches? Or did I found a bug?

Regards, Konsti



More information about the buildroot mailing list