mini2440系统移植篇之kernel编译

1. 编译

Linux内核的Makefile分为5个部分:

     Makefile                 顶层Makefile

     .config                  内核配置文件

     arch/$(ARCH)/Makefile    具体架构的Makefile

     scripts/Makefile.*       通用的规则等。面向所有的Kbuild Makefiles

     kbuild Makefiles         内核源代码中大约有500个这样的文件

顶层Makefile阅读的.config文件,而该文件是由内核配置程序生成的

1.1. 顶层Makefile

根据.config自动生成

-->include/linux/autoconf.h

这个文件供所有源文件使用

-->include/config/auto.conf

这个文件供Makefile使用,被顶层Makefile包含

 

1、包含配置

442 -inlcude include/config/auto.conf

2、包含体系archmakefile

491 include $(srctree)/arch/$(ARCH)/Makefile

3、包含13个子目录分为5

433 

init-y := init/

drivers-y := drivers/ sound/

net-y := net/

libs-y := lib/

core-y := usr/

core-y += kernel/ mm/ fs/ ipc/ security/ crypto/ block/

 

4、修改体系和交叉编译

185 ARCH ?= arm

CROSS_COMPILE ?= arm-linux-

1.2. 体系Makefile

head-y := arch/arm/kernel/head.o arch/arm/kernel/init_task.o

 

core-y += arch/arm/kernel/ arch/arm/mm/ arch/arm/common

core-y += $(MACHINE)

core-$(CONFIG_ARCH_S3C2410) += arch/arm/mach-s3c2410/

core-$(CONFIG_ARCH_S3C2410) += arch/arm/mach-s3c2412/

core-$(CONFIG_ARCH_S3C2410) += arch/arm/mach-s3c2440/

 

libs-y := arch/arm/lib/ $(libs-y)

1.3. vmlinux

vmlinux$(vmlinux-lds) $(vmlinux-init) $(vmlinux-main) $(kallsyms.o) FORCE

vmlinux-init :=  $(head-y) $(init-y)

head-y := arch/arm/kernel/head.o arch/arm/kernel/init_task.o 

init –y := init/built-in.o

 

vmlinux-main := $(core-y) $(libs-y) $(drivers-y) $(net-y)

core-y := usr/

core-y += kernel/ mm/ fs/ ipc/ security/ crypto/ block/

libs-y := lib/lib.a lib/built-in.o

drivers-y := drivers/built-in.o sound/built-in.o

net-y := net/built-in.o

 

vmlinux-all = $(vmlinux-init) $(vmlinux-main)

vmlinux-lds = arch/$(ARCH)/kernel/vmlinux.lds

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值