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

Martin Steigerwald Martin at lichtvoll.de
Sat Jun 16 09:54:56 CEST 2012


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


First I tried the recommended, but inofficial and possibly somewhat hacky 
approach from wpkg.org to do make ARCH=mips menuconfig inside

trunk/build_dir/linux-brcm47xx/linux-3.3.8

But then OpenWrt build process overwrites lots of options I set again from 
the target config. I tried to work around it by copying my config to the 
target one, but then I get build failures like:

make[5]: Entering directory 
`/home/martin/Computer/Gayatri/OpenWRT/trunk/build_dir/linux-
brcm47xx/linux-3.3.8'
  CHK     include/linux/version.h
  CHK     include/generated/utsrelease.h
  CALL    scripts/checksyscalls.sh
  CHK     include/generated/compile.h
  CC      arch/mips/bcm47xx/nvram.o
arch/mips/bcm47xx/nvram.c:166:12: error: 'early_nvram_init_nflash' defined 
but not used [-Werror=unused-function]
cc1: all warnings being treated as errors

make[7]: *** [arch/mips/bcm47xx/nvram.o] Error 1
make[6]: *** [arch/mips/bcm47xx] Error 2
make[5]: *** [arch/mips] Error 2
make[5]: Leaving directory 
`/home/martin/Computer/Gayatri/OpenWRT/trunk/build_dir/linux-
brcm47xx/linux-3.3.8'

even after having replaced all occurences of -Werror in any makefile by "".


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
CONFIG_BRIDGE_EBT_802_3=m
CONFIG_BRIDGE_EBT_AMONG=m
CONFIG_BRIDGE_EBT_ARP=m
CONFIG_BRIDGE_EBT_ARPREPLY=m
CONFIG_BRIDGE_EBT_BROUTE=m
CONFIG_BRIDGE_EBT_DNAT=m
CONFIG_BRIDGE_EBT_IP=m
CONFIG_BRIDGE_EBT_IP6=m
CONFIG_BRIDGE_EBT_LIMIT=m
CONFIG_BRIDGE_EBT_LOG=m
CONFIG_BRIDGE_EBT_MARK=m
CONFIG_BRIDGE_EBT_MARK_T=m
CONFIG_BRIDGE_EBT_NFLOG=m
CONFIG_BRIDGE_EBT_PKTTYPE=m
CONFIG_BRIDGE_EBT_REDIRECT=m
CONFIG_BRIDGE_EBT_SNAT=m
CONFIG_BRIDGE_EBT_STP=m
CONFIG_BRIDGE_EBT_T_FILTER=m
CONFIG_BRIDGE_EBT_T_NAT=m
CONFIG_BRIDGE_EBT_ULOG=m
CONFIG_BRIDGE_EBT_VLAN=m
CONFIG_BRIDGE_NF_EBTABLES=m
CONFIG_CRYPTO_AEAD=m
CONFIG_CRYPTO_AES=m
CONFIG_CRYPTO_ANSI_CPRNG=m
CONFIG_CRYPTO_ANUBIS=m
CONFIG_CRYPTO_ARC4=m
CONFIG_CRYPTO_BLKCIPHER=m
CONFIG_CRYPTO_BLOWFISH=m
CONFIG_CRYPTO_BLOWFISH_COMMON=m
CONFIG_CRYPTO_CAMELLIA=m
CONFIG_CRYPTO_CAST5=m
CONFIG_CRYPTO_CAST6=m
CONFIG_CRYPTO_CBC=m
CONFIG_CRYPTO_CCM=m
CONFIG_CRYPTO_CRYPTD=m
CONFIG_CRYPTO_CTR=m
CONFIG_CRYPTO_CTS=m
CONFIG_CRYPTO_DEFLATE=m
CONFIG_CRYPTO_DES=m
CONFIG_CRYPTO_ECB=m
CONFIG_CRYPTO_FCRYPT=m
CONFIG_CRYPTO_GCM=m
CONFIG_CRYPTO_GF128MUL=m
CONFIG_CRYPTO_GHASH=m
CONFIG_CRYPTO_HMAC=m
CONFIG_CRYPTO_KHAZAD=m
CONFIG_CRYPTO_LRW=m
CONFIG_CRYPTO_LZO=m
CONFIG_CRYPTO_MANAGER=m
CONFIG_CRYPTO_MD4=m
CONFIG_CRYPTO_MD5=m
CONFIG_CRYPTO_MICHAEL_MIC=m
CONFIG_CRYPTO_PCBC=m
CONFIG_CRYPTO_PCOMP=m
CONFIG_CRYPTO_RMD128=m
CONFIG_CRYPTO_RMD160=m
CONFIG_CRYPTO_RMD256=m
CONFIG_CRYPTO_RMD320=m
CONFIG_CRYPTO_RNG=m
CONFIG_CRYPTO_SALSA20=m
CONFIG_CRYPTO_SEED=m
CONFIG_CRYPTO_SEQIV=m
CONFIG_CRYPTO_SERPENT=m
CONFIG_CRYPTO_SHA1=m
CONFIG_CRYPTO_SHA256=m
CONFIG_CRYPTO_SHA512=m
CONFIG_CRYPTO_TEA=m
CONFIG_CRYPTO_TGR192=m
CONFIG_CRYPTO_TWOFISH=m
CONFIG_CRYPTO_TWOFISH_COMMON=m
CONFIG_CRYPTO_USER=m
CONFIG_CRYPTO_USER_API=m
CONFIG_CRYPTO_USER_API_HASH=m
CONFIG_CRYPTO_USER_API_SKCIPHER=m
CONFIG_CRYPTO_VMAC=m
CONFIG_CRYPTO_WP512=m
CONFIG_CRYPTO_XCBC=m
CONFIG_CRYPTO_XTS=m
CONFIG_CRYPTO_XZ=m
CONFIG_CRYPTO_ZLIB=m
CONFIG_EXPORTFS=m
CONFIG_FAT_FS=m
CONFIG_IOSCHED_CFQ=m
CONFIG_IP6_NF_FILTER=m
CONFIG_IP6_NF_IPTABLES=m
CONFIG_IP6_NF_MANGLE=m
CONFIG_IP6_NF_MATCH_AH=m
CONFIG_IP6_NF_MATCH_EUI64=m
CONFIG_IP6_NF_MATCH_FRAG=m
CONFIG_IP6_NF_MATCH_HL=m
CONFIG_IP6_NF_MATCH_IPV6HEADER=m
CONFIG_IP6_NF_MATCH_MH=m
CONFIG_IP6_NF_MATCH_OPTS=m
CONFIG_IP6_NF_MATCH_RPFILTER=m
CONFIG_IP6_NF_MATCH_RT=m
CONFIG_IP6_NF_QUEUE=m
CONFIG_IP6_NF_RAW=m
CONFIG_IP6_NF_TARGET_HL=m
CONFIG_IP6_NF_TARGET_LOG=m
CONFIG_IP6_NF_TARGET_REJECT=m
CONFIG_IP_NF_ARPFILTER=m
CONFIG_IP_NF_ARPTABLES=m
CONFIG_IP_NF_ARP_MANGLE=m
CONFIG_IP_NF_FILTER=m
CONFIG_IP_NF_IPTABLES=m
CONFIG_IP_NF_MANGLE=m
CONFIG_IP_NF_MATCH_AH=m
CONFIG_IP_NF_MATCH_ECN=m
CONFIG_IP_NF_MATCH_RPFILTER=m
CONFIG_IP_NF_MATCH_TTL=m
CONFIG_IP_NF_RAW=m
CONFIG_IP_NF_TARGET_CLUSTERIP=m
CONFIG_IP_NF_TARGET_ECN=m
CONFIG_IP_NF_TARGET_LOG=m
CONFIG_IP_NF_TARGET_MASQUERADE=m
CONFIG_IP_NF_TARGET_NETMAP=m
CONFIG_IP_NF_TARGET_REDIRECT=m
CONFIG_IP_NF_TARGET_REJECT=m
CONFIG_IP_NF_TARGET_TTL=m
CONFIG_IP_NF_TARGET_ULOG=m
CONFIG_IP_SET=m
CONFIG_IP_SET_BITMAP_IP=m
CONFIG_IP_SET_BITMAP_IPMAC=m
CONFIG_IP_SET_BITMAP_PORT=m
CONFIG_IP_SET_HASH_IP=m
CONFIG_IP_SET_HASH_IPPORT=m
CONFIG_IP_SET_HASH_IPPORTIP=m
CONFIG_IP_SET_HASH_IPPORTNET=m
CONFIG_IP_SET_HASH_NET=m
CONFIG_IP_SET_HASH_NETIFACE=m
CONFIG_IP_SET_HASH_NETPORT=m
CONFIG_IP_SET_LIST_SET=m
CONFIG_MSDOS_FS=m
CONFIG_NETFILTER_NETLINK=m
CONFIG_NETFILTER_NETLINK_LOG=m
CONFIG_NETFILTER_XTABLES=m
CONFIG_NETFILTER_XT_MARK=m
CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
CONFIG_NETFILTER_XT_MATCH_ECN=m
CONFIG_NETFILTER_XT_MATCH_HL=m
CONFIG_NETFILTER_XT_MATCH_STATE=m
CONFIG_NETFILTER_XT_TARGET_HL=m
CONFIG_NETFILTER_XT_TARGET_NFLOG=m
CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
CONFIG_NET_ACT_CSUM=m
CONFIG_NET_ACT_GACT=m
CONFIG_NET_ACT_MIRRED=m
CONFIG_NET_ACT_NAT=m
CONFIG_NET_ACT_PEDIT=m
CONFIG_NET_ACT_POLICE=m
CONFIG_NET_ACT_SIMP=m
CONFIG_NET_ACT_SKBEDIT=m
CONFIG_NET_CLS_BASIC=m
CONFIG_NET_CLS_FLOW=m
CONFIG_NET_CLS_FW=m
CONFIG_NET_CLS_ROUTE4=m
CONFIG_NET_CLS_RSVP=m
CONFIG_NET_CLS_RSVP6=m
CONFIG_NET_CLS_TCINDEX=m
CONFIG_NET_CLS_U32=m
CONFIG_NET_EMATCH_CMP=m
CONFIG_NET_EMATCH_META=m
CONFIG_NET_EMATCH_NBYTE=m
CONFIG_NET_EMATCH_TEXT=m
CONFIG_NET_EMATCH_U32=m
CONFIG_NET_SCH_CBQ=m
CONFIG_NET_SCH_CHOKE=m
CONFIG_NET_SCH_CODEL=m
CONFIG_NET_SCH_DRR=m
CONFIG_NET_SCH_DSMARK=m
CONFIG_NET_SCH_ESFQ=m
CONFIG_NET_SCH_FQ_CODEL=m
CONFIG_NET_SCH_GRED=m
CONFIG_NET_SCH_HFSC=m
CONFIG_NET_SCH_HTB=m
CONFIG_NET_SCH_MQPRIO=m
CONFIG_NET_SCH_MULTIQ=m
CONFIG_NET_SCH_PRIO=m
CONFIG_NET_SCH_QFQ=m
CONFIG_NET_SCH_RED=m
CONFIG_NET_SCH_SFB=m
CONFIG_NET_SCH_SFQ=m
CONFIG_NET_SCH_TBF=m
CONFIG_NET_SCH_TEQL=m
CONFIG_NF_CONNTRACK=m
CONFIG_NF_CONNTRACK_BROADCAST=m
CONFIG_NF_CONNTRACK_FTP=m
CONFIG_NF_CONNTRACK_IPV4=m
CONFIG_NF_CONNTRACK_IPV6=m
CONFIG_NF_CONNTRACK_IRC=m
CONFIG_NF_CONNTRACK_NETBIOS_NS=m
CONFIG_NF_CONNTRACK_SIP=m
CONFIG_NF_CT_NETLINK=m
CONFIG_NF_DEFRAG_IPV4=m
CONFIG_NF_DEFRAG_IPV6=m
CONFIG_NF_NAT=m
CONFIG_NF_NAT_FTP=m
CONFIG_NF_NAT_IRC=m
CONFIG_NF_NAT_SIP=m
CONFIG_NILFS2_FS=m
CONFIG_NTFS_FS=m
CONFIG_SCSI_TGT=m
CONFIG_TEXTSEARCH_BM=m
CONFIG_TEXTSEARCH_FSM=m
CONFIG_TEXTSEARCH_KMP=m
CONFIG_VFAT_FS=m
CONFIG_XFS_FS=m


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
CONFIG_NET_SCH_SFB=m
CONFIG_NET_SCH_DRR=m
CONFIG_NET_SCH_MQPRIO=m
CONFIG_NET_SCH_CHOKE=m
CONFIG_NET_SCH_QFQ=m
CONFIG_NET_CLS_RSVP=m
CONFIG_NET_CLS_RSVP6=m
CONFIG_NET_ACT_GACT=m
CONFIG_NET_ACT_NAT=m
CONFIG_NET_ACT_PEDIT=m
CONFIG_NET_ACT_SIMP=m
CONFIG_NET_ACT_CSUM=m
CONFIG_SCSI_TGT=m
CONFIG_SCSI_WAIT_SCAN=m
CONFIG_NILFS2_FS=m
CONFIG_CRYPTO_AEAD=m
CONFIG_CRYPTO_BLKCIPHER=m
CONFIG_CRYPTO_RNG=m
CONFIG_CRYPTO_PCOMP=m
CONFIG_CRYPTO_MANAGER=m
CONFIG_CRYPTO_USER=m
CONFIG_CRYPTO_GF128MUL=m
CONFIG_CRYPTO_CRYPTD=m
CONFIG_CRYPTO_CCM=m
CONFIG_CRYPTO_GCM=m
CONFIG_CRYPTO_SEQIV=m
CONFIG_CRYPTO_CTR=m
CONFIG_CRYPTO_CTS=m
CONFIG_CRYPTO_LRW=m
CONFIG_CRYPTO_PCBC=m
CONFIG_CRYPTO_XCBC=m
CONFIG_CRYPTO_VMAC=m
CONFIG_CRYPTO_GHASH=m
CONFIG_CRYPTO_RMD128=m
CONFIG_CRYPTO_RMD160=m
CONFIG_CRYPTO_RMD256=m
CONFIG_CRYPTO_RMD320=m
CONFIG_CRYPTO_AES=m
CONFIG_CRYPTO_ARC4=m
CONFIG_CRYPTO_SALSA20=m
CONFIG_CRYPTO_SEED=m
CONFIG_CRYPTO_ZLIB=m
CONFIG_CRYPTO_LZO=m
CONFIG_CRYPTO_XZ=m
CONFIG_CRYPTO_ANSI_CPRNG=m


I can certainly do without XFS module, maybe it can´t work on mips anyway, 
but I do like to have the netfilter modules. (Maybe minus ebtables, cause I 
think I do not really need those.)


How can I have OpenWrt to build the kernel with exactly my configuration 
and not strip out half of the modules?

I just need a kernel inside a flash able image with my configuration and:

martin at merkaba:~/Computer/Gayatri/OpenWRT/trunk/build_dir/linux-
brcm47xx/linux-3.3.8> grep root= .config
CONFIG_CMDLINE="root=/dev/sda1 rootdelay=15 console=ttyS0,115200"


I appreciate any help. I spend lots of time and I am also willing to 
provide a HOWTO should I get through.



PS: For a proper  make ARCH=mips modules_install I added the following:

martin at merkaba:~/Computer/Gayatri/OpenWRT> cat kernel-defaults.mk-make-
modules_install.patch 
--- include/kernel-defaults.mk.orig     2012-06-15 21:34:22.858217640 
+0200
+++ include/kernel-defaults.mk  2012-06-16 09:20:20.705721989 +0200
@@ -112,7 +112,10 @@
 
 define Kernel/CompileModules/Default
        rm -f $(LINUX_DIR)/vmlinux $(LINUX_DIR)/System.map
+       rm -rf /tmp/openwrt-modules
+       mkdir -p /tmp/openwrt-modules
        +$(MAKE) $(KERNEL_MAKEOPTS) modules
+       +$(MAKE) $(KERNEL_MAKEOPTS) -B 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

(sorry line-wrapped. I can repost this patch without wrapping in another 
mail, but when I switch KMail to no word wrapping for this long mail I 
would have to format all my free-form text by hand. I can´t set line 
wrapping on ranges in KMail.)

PPS: I am aware of DebWrt, but it doesn´t even get past the first simple 
build steps when I follow its build howto.


PPPS: I have seen ExtRoot, but I didn´t yet understand whether thats 
suitable for my usecase and how to use it.


[1] http://wpkg.org/Running_Debian_on_ASUS_WL-500G_deluxe

[2] http://wpkg.org/Running_Debian_on_ASUS_WL-500W

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