内核的移植

第1步,改对硬件平台的支持
arm的架构

arm-linux-gcc的编译方式

 

第2步,平台时钟

只有选择了相对应得平台时钟才能正常的工作

 

第3步,硬件分区的支持

就是nand flash驱动的移植

 

linux内核的移植中,要更改的大部分设置都在 arch/架构/ 目录下


进入kernel顶层目录 

1、先添加对arm的支持


gedit Makefile
                        ARCH?=$(SUBARCH)
 
                        CROSS_COMPILE?=
          改成:
                        ARCH?= arm

                        CROSS_COMPILE?= arm-linux- //(编译器前缀根据自己的编译器来定,详见编译工具链的bin目录下的命令统一前缀)
 
 
2、改平台时钟
gedit arch/arm/mach-XXX/mach-XXX.c //看你的开发板上外接的晶振是多少
 
3、改机器码
gedit arch/arm/tools/mach-types

4、移植nandflash驱动,改MTD分区
gedit arch/arm/plat-XXX/commond-smdk.c //根据bootlorder里面的分区情况进行更改
 
 
机器码和nand flash的分区呢,就要看你的vivi在开发板上显示的信息作相应的更改
将开发板连接上电脑,启动超级终端
 
进入supervivi模式
 
输入以下命令:
param show  //查看机器码
part   show     //查看分区
 
5、在 arch/arm/tools/mach-type 中XXX(eg:s3c2440)的机器码一定要与vivi 中的一致
Vivi中param show查看
  
6、改MTD分区
在 arch/arm/plat-XXX/common-smdk.c 中修改
Vivi 中 part show –显示以下参数
bootloader中的分区要与内核中的分区完全一致,包括分区名、起始地址、分区大小,保证内核、文件系统能够烧写到nandflash中
 
定制内核:
首先复制arch/arm/configs/里面相同/相近平台的通用配置
cp arch/arm/configs/s3c2410_defconfig .config

make s3c2410_defconfig


make menuconfig


支持EABI
Kernel Features  --->
 [*] Use the ARM EABI to compile the kernel                   
 [*]   Allow old ABI binaries to run with this kernel (EXPERIMENTA)
 
支持 NandFlash 
Device Drivers ---> 
     <*> Memory Technology Device (MTD) support ---> 
           [*]   MTD partitioning support 
           <*> NAND Device Support ---> 
                <*>   NAND Flash support for S3C2410/S3C2440 SoC 
                [*]    S3C2410 NAND Hardware ECC     //这个一定要选上 
      Nand Flash Capacity Select(256M Nand For TX-24
 
还有别的以下定制

system type -> 2410/arm92410


去掉软浮点检测
gedit drivers/mtd/nand/s3c2410.c
找到chip->ecc.mode = nand_ECC_SOFT 改为NONE
 
接着就是添加yaffs2的文件系统的支持,当然你也可以选别的

如果选择yaffs2的话,在网上下载一个yaffs2源码,

进入,执行 

./patch-ker.sh c    /home/test/linux-2.6.32.2 //后面是你自己的linux源码的位置,注意最后面的/不要忘了, 添加完成后,make zImage 内核就算移植完成了。


如果遇到什么问题的话,就具体问题具体分析了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值