编译arm-linux内核

本文详述了编译arm-linux内核的过程,包括下载2.6.30.4内核源码、修改Makefile支持arm架构、调整平台时钟频率、统一u-boot与内核机器码、匹配nand flash分区以及通过make menuconfig配置并生成zImage内核镜像。

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

这一次写一下编译arm内核以及根文件系统的体验,我使用的是linux-2.6.30.4的内核,通过ftp://ftp.kernel.org/pub/linux/kernel下载。下面按步骤操作。

第一步:

解压源文件tar jxvf linux-2.6.30.4.tar.bz2  –C /opt 下。

第二步:

更改主目录下Makefile文件,使其支持arm架构。在193行的arch = $(SUBARCH)更改为arch =arm CROSS_COMPFILE ?=更改为 CROSS_COMPFILE ?= arm-linux-

第三步:

修改平台的输入时钟,我们采用的平台是TQ2440的开发板,该平台采用的是12M赫兹的主频,所以需要修改其arch/arm/mach-s3c2440/mach-smdk2440.c

__init smdk2440_map_io(void)

函数的时钟16934400 改为12000000.

第四步:

更改平台机器码,使得u-boot的机器码与内核的机器码一致,因为u-boot的机器码是168(系统提供,在include/asm-arm/mach-types.h中),

       所以在内核中将机器码改为168/arch/arm/tools/mach-types,默认是362

第五步:

修改nand flash分区信息(arch/arm/plat-s3c24xx/common-smdk..c

使nand的分区信息与u-boot的分区信息一致。

所以

这里需要注意的是内核的分区信息与u-boot的分区信息可能不一致,其实他们之间没有什么关系,最主要的是将内核的分区信息尤其是内核的kernel的分区信息和根文件系统分区得offsetsize定义好。

第六步 make menuconfig

              因为编译的是基于arm的内核,所以将arch/arm/boot/configs/s3c2410_defconfig配置文件复制到根目录下,然后执行make menuconfig

 

             

第七步: Make zImage,在/arch/arm/boot 生成zImage内核镜像文件。将镜像文件烧写到板子上即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值