1.复制/arch/$(ARCH)/configs/xxxx_defconfig.config到.config,.config是作为编译时默认使用的配置文件2.子文件夹下的Kconfig声明对应的选项和相关说明,Makefile指明选项对应的.o文件,autoconf.h决定哪些选项可以被编译进内核,.config决定这些选项是怎么编译进内核,所以内核要增加一项功能时,需要修改对应目录下Kconfig,按照Kconfig语法增加对应的选项;对应目录下的Makefile指明选项对应的.o文件。 例如在/drivers/net目录下增加对DM9000网卡芯片的支持,先将对应的源文件dm9000.c和dm9000.h文件拷贝到/drivers/net文件夹下,然后打开Kconfig,增加如下配置:
config DM9000
tristate "DM9000 support"
depends on ARM || BLACKFIN || MIPS
select CRC32
select MII
---help---
Support for DM9000 chipset.
To compile this driver as a module, choose M here. The module
will be called dm9000. 接着在同级目录下的Makefile中增加:obj-$(CONFIG_DM9000) += dm9000.o,将dm9000的驱动编译进内核3.make menuconfig,系统读取/arch/$(ARCH)/Kconfig文件生成整个配置界面选项 ,然后读取.config文件生成默认的裁剪选项,这时候个人要根据需求增加或减少内核编译选项,裁剪完成后,保存结果到.config和/include/generated/atuoconf.h文件4.make uImage或make zImage生成内核文件