热门关键字:  ubuntu  分区  函数  linux系统进程  Fedora

Linux-2.6.20内核移植到AT91RM9200-EK

来源: 作者: 时间:2007-12-21 Tag: 点击:
以下文档也适用于Linux-2.6.21内核移植到AT91RM9200-EK



1. 准备相关的工具:http://www.kernel.org

从这里下载 linux-2.6.20.tar.bz2



http://maxim.org.za/AT91RM9200/2.6/

从这里下载补丁 2.6.20-at91.patch.gz



http://www.handhelds.org/download/projects/toolchain/

从这里下载交叉编译工具 arm-linux-gcc-3.4.1.tar.bz2



http://www.busybox.net/ 从这里下载 BusyBox 1.2.2.1 更改为busybox-1.00,1.2.2.1中的模块编译有问题



2. 首先建立交叉编译环境

由于arm-linux-gcc-3.4.1默认的安装路径是 /usr/local/,所以直接将arm-linux-gcc-3.4.1.tar.bz2放在根目录下解压。

#cd /

#tar jxvf arm-linux-gcc-3.4.1.tar.bz2



使用arm-linux-gcc –version 检查交叉编译器是否安装成功,正常情况下可以显示出版本信息,如果看不到, 在.bash_profile 文件中增加

export PATH=$PATH:/usr/local/arm/3.4.1/bin

然后重起系统。只有用arm-linux-gcc –version命令能够看到交叉编译器的版本信息,安装才算成功。



3.解压 linux-2.6.20.tar.bz2 #tar jxvf linux-2.6.20.tar.bz2

解压之后生成 linux-2.6.20,将2.6.20-at91.patch.gz拷贝到该目录下

$ cd linu-2.6.20

$ zcat 2.6.20-at91.patch.gz | patch –p1



修改该目录下的Makefile文件

ARCH ?=$(SUBARCH)
CROSS_COMPILE ?=
改成:
ARCH = arm
CROSS_COMPILE =/usr/local/arm/3.4.1/bin/arm-linux-



$ cp arch/arm/configs/at91rm9200ek_defconfig /.config

$ make clean

$ make zImage



由于我的板子上的U-boot,不支持zImage,另外machine ID不支持AT91RM9200EK.需要作如下修改:

a. linux-2.6.20/arch/arm/mach-at91rm9200/board-ek.c 中的

MACHINE_START(AT91RM9200EK,”Atmel AT91RM9200-EK”) 改为

MACHINE_START(AT91RM9200,”Atmel AT91RM9200-EK”)

b. 制作 uImage文件

$ /usr/local/arm/3.4.1/bin/arm-linux-objcopy –O binary –S vmlinux linux.bin

$ gzip –v9 linux.bin

$./mkimage –A arm –O linux –T kernel –C gzip –a 0x20008000 –e 0x20008000 –d linux.bin.gz uImage


最新评论共有 4 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册