[debian-non-standard] [OpenWrt-Users] building a kernel to boot debian - build process strips out lots of kernel module options

Martin Steigerwald Martin at lichtvoll.de
Sat Jun 16 10:47:06 CEST 2012


Am Samstag, 16. Juni 2012 schrieb Martin Steigerwald:
> Hi!
> 
> I am just trying to use OpenWrt to build a kernel for my Debian Squeeze
> on ASUS WL-500 gP installation which still uses 2.6.30 from
> 
> http://wpkg.org/files/debian-asus/2.6.30/
> 
> 
> This is with
> 
> URL: svn://svn.openwrt.org/openwrt/trunk
> Revision: 32384
[…]
> Thus I went for the official make kernel_menuconfig approach. The
> kernel is now build.
> 
> But OpenWrt build process still doesn´t take all modules for the
> effective kernel configuration in
> trunk/build_dir/linux-brcm47xx/linux-3.3.8/.config. I have configured:
> 
> martin at merkaba:~/Computer/Gayatri/OpenWRT/trunk/target/linux/brcm47xx>
> grep "=m" config-3.3
> CONFIG_BLK_DEV_CRYPTOLOOP=m
> CONFIG_BLK_DEV_LOOP=m
> CONFIG_BLK_DEV_NBD=m
[ … lots of options enabled as modules …]

> But I still get:
> 
> martin at merkaba:~/Computer/Gayatri/OpenWRT/trunk/build_dir/linux-
> brcm47xx/linux-3.3.8> grep "=m" .config
> CONFIG_IOSCHED_CFQ=m
> CONFIG_NET_SCH_CBQ=m
> CONFIG_NET_SCH_MULTIQ=m

[… way less options enabled as modules as in original configuration …]

I think this has to do with the magic in include/kernel-defaults.mk:

define Kernel/Configure/Default
        $(LINUX_CONF_CMD) > $(LINUX_DIR)/.config.target
# copy CONFIG_KERNEL_* settings over to .config.target
        awk 
'/^(#[[:space:]]+)?CONFIG_KERNEL/{sub("CONFIG_KERNEL_","CONFIG_");print}' 
$(TOPDIR)/.config >> 
$(LINUX_DIR)/.config.target
        echo "# CONFIG_KALLSYMS_EXTRA_PASS is not set" >> 
$(LINUX_DIR)/.config.target
        echo "# CONFIG_KALLSYMS_ALL is not set" >> 
$(LINUX_DIR)/.config.target
        echo "# CONFIG_KPROBES is not set" >> $(LINUX_DIR)/.config.target
        $(SCRIPT_DIR)/metadata.pl kconfig $(TMP_DIR)/.packageinfo 
$(TOPDIR)/.config > $(LINUX_DIR)/.config.override
        $(SCRIPT_DIR)/kconfig.pl 'm+' '+' $(LINUX_DIR)/.config.target 
/dev/null $(LINUX_DIR)/.config.override > 
$(LINUX_DIR)/.config
        $(call Kernel/SetInitramfs)
        -$(_SINGLE)$(MAKE) $(KERNEL_MAKEOPTS) oldconfig prepare scripts
        rm -rf $(KERNEL_BUILD_DIR)/modules
        $(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

martin at merkaba:~/Computer/Gayatri/OpenWRT/trunk/target/linux/brcm47xx> 
grep =m config-3.3 | wc -l 
211

martin at merkaba:~/Computer/Gayatri/OpenWRT/trunk/build_dir/linux-
brcm47xx/linux-3.3.8> grep =m .config.target | wc -l
212
martin at merkaba:~/Computer/Gayatri/OpenWRT/trunk/build_dir/linux-
brcm47xx/linux-3.3.8> grep =m .config.old | wc -l   
71
martin at merkaba:~/Computer/Gayatri/OpenWRT/trunk/build_dir/linux-
brcm47xx/linux-3.3.8> grep =m .config | wc -l    
48
martin at merkaba:~/Computer/Gayatri/OpenWRT/trunk/build_dir/linux-
brcm47xx/linux-3.3.8>


Thus I am trying the following magic for building modules:

martin at merkaba:~/Computer/Gayatri/OpenWRT/trunk> diff -u include/kernel-
defaults.mk.orig include/kernel-defaults.mk 
--- include/kernel-defaults.mk.orig     2012-06-15 21:34:22.858217640 
+0200
+++ include/kernel-defaults.mk  2012-06-16 10:39:37.679318175 +0200
@@ -112,7 +112,10 @@
 
 define Kernel/CompileModules/Default
        rm -f $(LINUX_DIR)/vmlinux $(LINUX_DIR)/System.map
-       +$(MAKE) $(KERNEL_MAKEOPTS) modules
+       rm -rf /tmp/openwrt-modules
+       mkdir -p /tmp/openwrt-modules
+       +$(MAKE) $(KERNEL_MAKEOPTS) KCONFIG_CONFIG=.config.target modules
+       +$(MAKE) $(KERNEL_MAKEOPTS) KCONFIG_CONFIG=.config.target 
INSTALL_MOD_PATH=/tmp/openwrt-modules 
modules_install
 endef
 
 OBJCOPY_STRIP = -R .reginfo -R .notes -R .note -R .comment -R .mdebug -R 
.note.gnu.build-id


(not line-wrapped this time)

Ciao,
-- 
Martin 'Helios' Steigerwald - http://www.Lichtvoll.de
GPG: 03B0 0D6C 0040 0710 4AFA  B82F 991B EAAC A599 84C7



More information about the debian-non-standard mailing list