摘自:http://blog.csdn.net/weiniliuchao/article/details/50295527linux
增长内核配置选项ide
openwrt的.config文件中,关于内核的选项都是形如CONFIG_KERNEL_*(由关键字kernel)。在添加内核选项的时候,要在配置项前添加CONFIG_KERNEL_头。ui
上述添加方法是对于内核中已经存在的选项的添加方法(目前系统支持的内核配置选项可查看文件config/Config-kernel.in)。若目前系统没有该选项,需按照以下方法添加才可以使选项生效。spa
1) .config; 在此文件中配置CONFIG_KERNEL_选项.net
2) config/Config-kernel.in; 在此文件中添加相关配置项的选择 blog
openwrt的.config和kernel中的.config之间的联系进程
Make defconfig以后会执行scripts/config/conf --defconfig=.config Config.in (include/toplevel.mk)ip
conf主要是将Config.in中的各个文件夹中的Config.in(Config-build.in Config-devel.in Config-image.in Config-kernel.in)选项所有读取出来,放到一个表中。而后将.config中的选项逐个的与链表中各值对比。相同,则保存在一个叫做.tmp.xxxx(进程号)的文件中。当所有比对完成之后,将.config改名为.config.old ,将.tmp.xxxx改名为.config。此时openwrt配置选项加载完成。get
以后执行kernel的配置选项加载: (include/kernel-defaults.mk)awk
scripts/kconfig.pl +generic/config-3.10 mt7620/config-3.10 > .config.target
就是将generic和 mt7620中的config-3.10中的内核选项融合 添加到.config.target文件中
awk'/^(#[[:space:]]+)?CONFIG_KERNEL/{sub("CONFIG_KERNEL_","CONFIG_");print}'trunk/.config >> linux-3.10.14-p112871/.config.target
此处将openwrt.config中有关内核选项去掉KERNEL_关键字后添加到.config.target中去。
metadata.pl kconfig tmp/.packageinfotrunk/.config linux-3.10.14-p112871/.config.override
kconfig.pl 'm+' '+'linux-3.10.14-p112871/.config.target /dev/nulllinux-3.10.14-p112871/.config.override > linux-3.10.14-p112871/.config
mv linux-3.10.14-p112871/.configlinux-3.10.14-p112871/.config.old
grep -v INITRAMFS .config.old > .config