摘自: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