Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2288728
  • 博文数量: 218
  • 博客积分: 5767
  • 博客等级: 大校
  • 技术积分: 5883
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-01 14:44
文章存档

2012年(53)

2011年(131)

2009年(1)

2008年(33)

分类: LINUX

2012-03-28 15:38:39

作者:mutes

硬件环境:ST2410X开发板(CPUS3C2410X
内核版本:3.3
运行环境:FC13
交叉编译环境:arm-linux-3.4.1

移植时间:2012.03.27

1.1 准备必要的文件

首先去官方网站下载最新的 linux 内核

因为linux-3.3.tar.bz2 内核需要更新版本的编译器,所以需要下载交叉编译器

ftp://ftp.handhelds.org/projects/toolchain/arm-linux-gcc-3.4.1.tar.bz2

1.2 安装文件

arm-linux-gcc 安装在 /usr/local/arm/3.4.1 目录下,安装方法和安装 gcc2.95.3 gcc3.3.2 是相同的!

接下来需要解压 linux 内核,输入命令:

 tar jxvf linux-3.3.tar.gz

 //tar zxvf linux-3.3.tar.gz

内核被解压到 linux-3.3 目录下。

1.3 修改 makefile 文件

内核的编译是根据 makefile 文件的指示进行的, Makefile 文件来组织内核的各模块之间的关系,记录了各个模块之间的相互联系和依赖关系。

我们首先修改 linux-3.3 的根目录下的 makfile 文件,须改的主要内容是目标代码的类型和为编译内核指定一个编译器。将以下内容:

ARCH   ?= $(SUBARCH)

CROSS_COMPILE     ?=

更改为如下内容:

ARCH   ?= arm

CROSS_COMPILE ?=/usr/local/arm/3.4.1/bin/arm-linux-

1.4 修改相关的文件。

1.4.1        修改 arch/arm/plat-s3c24xx/common-smdk.c 文件

说明:这里linux-3.3的设置分区与其他版本如2.6.142.6.11有点区别,其他版本是修改arch/arm/machs3c2410/devs.carch/arm/machs3c2410/mach-smdk2410.c 但3.3设置这些文件无效。

n  设置Nand Flash的分区和信息,下面是我的分区结构(与BIOS的分区保持一至):

name: 代表分区名字

size: 代表flash分区大小(单位:字节)

offset: 代表flash分区的起始地址(相对于0x0的偏移)

目标板计划分4个区,分别存放loader, param,kernel, root以及以便以后扩展使用的用户文件系统空间。

注:分区表信息要参考你自己的内核和文件系统的大小,排布来设置,BIOS中的分区信息要和mtd分区信息一致,分多少个区由你自己决定,我的就只分了4个区^_^

static struct mtd_partition smdk_default_nand_part[] = {

        [0] = {

                .name   = "loader",

                .size   = SZ_256K,

                .offset = 0,

        },

        [1] = {

                .name   = "kernel",

                .offset = MTDPART_OFS_APPEND,

                .size   = SZ_1M + SZ_256K + SZ_512K,

        },

        [2] = {

                .name   = "root",

                .offset = SZ_2M,

                .size   = SZ_32M,

        },

        [3] = {

                .name   = "user1",

                .offset = MTDPART_OFS_APPEND,

                .size   = MTDPART_SIZ_FULL,

        }

}; 




阅读(3003) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

重返人生2012-03-30 00:55:29

现在最新Linux内核是3.3?