嵌入式Linux学习笔记之Linux内核裁剪

2019-07-12 18:52发布

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生成内核文件