全部博文(395)
分类: LINUX
2011-03-21 17:46:57
一, 下载安装交叉编译环境
1)下载安装交叉编译器
# tar jxvf arm-linux-gcc-4.3.2.tgz -C /
2)修改主用户目录 .bashrc 文件,将交叉编译器的路径添加到环境变量PATH,在.bashrc添加 :
export PATH=$PATH:/usr/local/arm/4.3.2/bin
这样下次电脑启动后直接就可以在shell中使用交叉开发工具了,但目前环境变量还没有生效,使用命令
#source .bashrc
之后输入
#arm-linux-gcc -v
可以查看交叉环境是否成功建立。
二、准备源码包
1)Linux 2.6.30.4的下载地址:
2)yaffs2文件系统的下载地址:
点击Download GNU tarball,下载cvs-root.tar.gz
请把linux-2.6.30.4.tar.bz2和cvs- root.tar.gz放在同一目录内!
三、移植内核
1)解压内核源码包
# tar jxvf linux-2.6.30.4.tar.bz2
2)进入内核目录
# cd linux-2.6.30.4
3)修改顶层Makefile
# gedit Makefile
在 193行
ARCH ?= $(SUBARCH)
CROSS_COMPILE ?=
修改为
ARCH ?= arm
CROSS_COMPILE ?= arm-linux-
4)修改机器码
# gedit arch/arm/tools/mach-types
在379行
s3c2440 ARCH_S3C2440 S3C2440 362
修改为
s3c2440 ARCH_S3C2440 S3C2440 1999
与 supervivi 传入的机器码参数一致即可!(注意此时的机器码不同的机器可能不一样,它对应于所使用的 vivi 源码中的include/platform/smdk2440.h文件中的MACH_TYPE,我的是1999)
5)修改时钟频率
# gedit arch/arm/mach-s3c2440/mach-smdk2440.c
在160行
{
s3c24xx_init_io(smdk2440_iodesc, ARRAY_SIZE(smdk2440_iodesc));
//s3c24xx_init_clocks(16934400); //注释这句,加入下一句
s3c24xx_init_clocks(12000000);
s3c24xx_init_uarts(smdk2440_uartcfgs, ARRAY_SIZE(smdk2440_uartcfgs));
}
6)修改Nand Flash分区
首先将开发板从nor flash启动,输入q进入supervivi命令行界面,输入
part show
以查看Nand Flash的分区情况,根据分区情况修改comman-smdk.c文件
比如我的分区情况为
name : offset size flag
--------------------------------------------------------------------------
vivi : 0x00000000 0x00040000 0
param : 0x00040000 0x00020000 0
kernel : 0x00060000 0x00500000 0
root : 0x00560000 0x3fa80000 0
# gedit arch/arm/plat-s3c24xx/common-smdk.c
在109行
static struct mtd_partition smdk_default_nand_part[] = { };
四、配置内核
七、加入对yaffs2文件系统的支持
# make zImage
之后你就可以把这个景象下载到你的开发板中了,我在我的板子上试过,成功运行了(nand flash 是256M的),注意了这个知识能够启动了,不过还是不能联网(dm9000驱动也没有移植),lcd驱动也没有移植,还有触摸屏。
|
};