Linux 2.6.37内核移植到Mini2440(一)
一、 平台说明
1. 主机环境
Fedora 9 .6.33.3-85.fc13.i686.PAE 2GB SDRAM
2. 目标机环境
n 开发板: Mini2440 S3C2440A-40
n Nor Flash: SST39VF1601 2MB
n NAND Flash: k9f2g08u0B 256MB
n SDRAM: HY57v561620 64MB
n 内核: linux-2.6.37
n Bootloader: u-boot-2009.11
3. 交叉链
arm-none-linux-gnueabi-gcc (ctng-1.6.1) 4.4.3(mini2440开发板自带)
arm-inux-4.4.3
二、 下载内核:
1) linux-2.6.37.tar.bz2
2) 解压linux-2.6.37.tar.bz2到如:/mywork/kernel
3) 进入linux-2.6.37文件夹
4) 修改交叉编译器
在内核根目录下,编辑Makefile,找到ARCH=。。。修改为如下内容。注意,行后面的//是注释,不要输入!
【技巧】为了让vi中显示行号,执行如下命令即可:
#echo “set nu ”>~/.vimrc
#vi Makefile
ARCH ?= arm
CROSS_COMPILE ?= arm-linux- //这个是交叉编译工具
保存退出
5) 生成默认.config配置文件
说明,在内核代码移植到时候,常常指定文件夹为/的什么,这里的根是指内核文件夹的根。
可以通过复制arch/arm/configs/mini2440_defconfig生成.config,或执行如下命令生成。
#cp arch/arm/configs/mini2440_defconfig .config //此方法可能行不通
#make mini2440_defconfig
【说明】如果配置乱套了,想重新配置,可以执行如下命令,重新从该步骤开始:
#make distclean //清除所有的配置,并删除.config。慎用!
6) 测试编译
#make //30分中左右
7) 生成uImage映像
./mkimage -A arm -T kernel -C none -O linux -a 0x30008000 -e 0x30008040 -d zImage -n 'jyb365_linux' kernel_uImage
上面的mkimage 是u-boot生成的。在u-boot下的/tools下。zImage是编译Linux内核产生的,在内核根下。uImage是u-boot中烧写的内核压缩映象。
(zImage)所在位置 linux-2.6.37 /arch/arm/boot/zImage
将zImage拷贝到linux-2.6.37 /下
(mkimage)所在位置U盘或者网上下载移到linux中linux-2.6.37 文件夹下一定别忘给它权限哦(chmod 755 mkimage)
Make