内核移植编译过程

本文详细介绍了解压内核源代码、打补丁、修改makefile等步骤,并提供了三种配置方法,最后讲解了如何生成zImage及uImage,以便通过U-Boot启动。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

内核:
一:解压内核源代码
二:打补丁:patch(可选)
三:修改makefile:
 在makefile里找到下面的两行:
ARCH     ?= $(SUBARCH)
CROSS_COMPILE ?=
 修改成如下两行:
ARCH            ?= arm
CROSS_COMPILE   ?= arm-linux-
(ps:上面这样修改的意思是说我们的目标平台是 arm,使用的交叉编译器的前缀是arm-linux-)

四:配置(3种方法):
1、直接make menuconfig;从头到尾每一项都自己去配置,
2、使用默认的配置,在该配置基础上自己修改;
例如:直接在主目录下用make s3c2410_defconfig,就会生成.config文件,则就可以用menuconfig配置内核
3、使用厂家提供的配置文件;
即:把config文件夹里面的*deconfig复制到主目录下.config;然后用make menuconfig
例如:cp arch/arm/configs/s3c2410_defconfig .config ;make menuconfig

五、编译内核:
(ps:目的是生成
1、make或make zImage;则会在boot/arch/arm目录生成zImage文件;这个文件就是内核的镜像文件。要经过处理,才可以供uboot引导,以启动内核。编译 U-Boot 时在源代码的 tools 目录下会生成一个 mkimage 可执行文件,用这个工具可以对前面编译内核时生成的 zImage 进行处理,以供 U-Boot 启动。把 mkimage 拷 贝 到 一 个 目 录 下 , 比 如内核源码目录, 把 上 面 编 译 生 成 的zImage 也拷贝到该目录下,运行如下命令生成 uImage:
./mkimage -A arm -T kernel -C none -O linux -a 0x30008000 -e 0x30008040 -d zImage -n 'Linux-2.6.24' uImage

ps:mkimage的用法:
{-A arm 目标平台是ARM构架的
 -T kernel 要处理的是内核
-C none 不采用任何压缩方式
-O linux 要处理的Linux内核
-a 0x30008000 加载地址,包括mkimage工具给内核添加的头信息
-e 0x30008040 真正的内核入口地址,不包括添加的0x40长度的头信息
-d zImage 使用的源文件是编译Linux内核得到的zImage
-n ‘linux-2.6.24’生成的内核镜像的名字uImage 生成的供U-Boot启动的二进制内核镜像

2、make uImage;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值