Hello. I'm not very good with make and I need to make many changes to my kernel .config for debugging. I wrote a patch to add an option to tell OpenWRT to leave it alone, but I don't understand this build system very well and it seems to always prevent the kernel .config from being modified as well as leading to modules & kernel always being rebuilt. Would somebody be kind enough to fix it for me? :)
I'm new to this project and I'm working with a device that has a crappy u-boot build installed on it. I need to run a debug kernel, but any time I attempt to tftp it to the device (directly to RAM) it fails to boot. If I send the whole damn sysupgrade via lcui then it works. Thus, if I upload a bad sysupgrade, I can potentially get locked out of the device until I manually flash the SPI (and I don't know how to do that yet, I guess some type of jtag?). So rather than just manually building my kernel and building a sysupgrade by hand, I would rather the build do it out of caution for messing it up. Oh yeah, and I'm using CC at this commit: 0625aaa6f37dcf6a2ffb611245fa9b6477642b78 -- of which I have no choice about. But if anybody can get that to work for the 17.x head, I can backport it. Thanks in advance! Daniel
>From 04d9b710782308106e6b37d40f3f08cba04e57fd Mon Sep 17 00:00:00 2001 From: Daniel Santos <daniel.san...@pobox.com> Date: Thu, 8 Mar 2018 22:39:33 -0600 Subject: [PATCH] external kernel .config --- config/Config-devel.in | 8 ++++++++ include/kernel-build.mk | 4 ++-- include/kernel-defaults.mk | 8 ++++++++ 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/config/Config-devel.in b/config/Config-devel.in index d096c18a72..8603010485 100644 --- a/config/Config-devel.in +++ b/config/Config-devel.in @@ -65,6 +65,14 @@ menuconfig DEVEL string "Use external kernel tree" if DEVEL default "" + config EXTERNAL_KERNEL_CONFIG + bool "Use .config in external kernel tree (and do not modify it)." if DEVEL + depends on (EXTERNAL_KERNEL_TREE != "") + default N + help + If enabled, OpenWRT will not generate or modify the .config + file in the external kernel tree. + config KERNEL_GIT_CLONE_URI string "Enter git repository to clone" if DEVEL default "" diff --git a/include/kernel-build.mk b/include/kernel-build.mk index 9abfd542e8..7f19a7260e 100644 --- a/include/kernel-build.mk +++ b/include/kernel-build.mk @@ -126,9 +126,9 @@ define BuildKernel oldconfig menuconfig nconfig: $(STAMP_PREPARED) $(STAMP_CHECKED) FORCE rm -f $(STAMP_CONFIGURED) - $(LINUX_RECONF_CMD) > $(LINUX_DIR)/.config + $(ifdef EXTERNAL_KERNEL_CONFIG,,$(LINUX_RECONF_CMD) > $(LINUX_DIR)/.config) $(_SINGLE)$(MAKE) -C $(LINUX_DIR) $(KERNEL_MAKEOPTS) $$@ - $(LINUX_RECONF_DIFF) $(LINUX_DIR)/.config > $(LINUX_RECONFIG_TARGET) + $(ifdef EXTERNAL_KERNEL_CONFIG,,$(LINUX_RECONF_DIFF) $(LINUX_DIR)/.config > $(LINUX_RECONFIG_TARGET)) install: $(LINUX_DIR)/.image +$(MAKE) -C image compile install TARGET_BUILD= diff --git a/include/kernel-defaults.mk b/include/kernel-defaults.mk index 24d26308b1..454c9da53d 100644 --- a/include/kernel-defaults.mk +++ b/include/kernel-defaults.mk @@ -100,6 +100,7 @@ define Kernel/SetNoInitramfs echo 'CONFIG_INITRAMFS_SOURCE=""' >> $(LINUX_DIR)/.config endef +ifdef EXTERNAL_KERNEL_CONFIG define Kernel/Configure/Default $(LINUX_CONF_CMD) > $(LINUX_DIR)/.config.target # copy CONFIG_KERNEL_* settings over to .config.target @@ -114,6 +115,13 @@ define Kernel/Configure/Default $(_SINGLE) [ -d $(LINUX_DIR)/user_headers ] || $(MAKE) $(KERNEL_MAKEOPTS) INSTALL_HDR_PATH=$(LINUX_DIR)/user_headers headers_install $(SH_FUNC) grep '=[ym]' $(LINUX_DIR)/.config | LC_ALL=C sort | md5s > $(LINUX_DIR)/.vermagic endef +else +define Kernel/Configure/Default + rm -rf $(KERNEL_BUILD_DIR)/modules + $(_SINGLE) [ -d $(LINUX_DIR)/user_headers ] || $(MAKE) $(KERNEL_MAKEOPTS) INSTALL_HDR_PATH=$(LINUX_DIR)/user_headers headers_install + $(SH_FUNC) grep '=[ym]' $(LINUX_DIR)/.config | LC_ALL=C sort | md5s > $(LINUX_DIR)/.vermagic +endef +endif define Kernel/Configure/Initramfs $(call Kernel/SetInitramfs) -- 2.15.0
_______________________________________________ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel