`
helloyesyes
  • 浏览: 1305840 次
  • 性别: Icon_minigender_2
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

ARM+LINUX移植攻略(七)Linux 2.6.30.4移植TE2440II开发板

阅读更多

哈尔滨理工大学软件工程专业08-7李万鹏原创作品,转载请标明出处

http://blog.csdn.net/woshixingaaa/archive/2011/02/14/6184884.aspx

宿主机:ubuntu9.10
目标机:s3c2440
交叉编译器:arm-linux-gcc-4.3.2
交叉编译器路径:/usr/local/arm/4.3.2
移植内核版本:linux-2.6.30.4
文件系统类型: yaffs2

步骤包括:

1)linux内核打上yaffs2补丁

2)修改机器码

3)修改目标板的arch和编译器路径,

4)增加devfs文件管理器支持

5)修改晶振频率

6)修改MTD分区

7)关闭ECC校验

8)修改nandflash驱动

9)配置内核

首先,从官网上下载linux-2.6.30.4的内核。
ftp://ftp.kernel.org/pub/linux/kernel/v2.6/
可以找到。

新建目录mkdir /home/haker,将内核源码包解压到hacker/目录下

tar –zxvf linux-2.6.30.4.tar.gz

1)给内核打jaffs2补丁

下载最新的驱动http://www.aleph1.co.uk/cgi-bin/ ... fs2.tar.gz?view=tar

解压到/home/hacker/

tar –zxvf yaffs2.tar.gz

进入目录

cd yaffs2

给内核打补丁

./patch-ker.sh c /home/hacker/linux-2.6.30.4

加上c 他会自动解压到后面的目录中

成功后会打印信息:

Updating /home/hacker/linux-2.6.30.4/fs/Kconfig

Updating /home/hacker/linux-2.6.30.4/fs/Makefile

2)修改机器码

暂时我使用的是飞凌的boot,自己的boot还没有完全做好,飞凌boot的默认机器码是193,修改arch/arm/tools/mach-types,将

s3c2410 ARCH_S3C2410 S3C2410 193 删掉

然后将

s3c2440 ARCH_S3C2440 S3C2440 362

修改为
s3c2440 ARCH_S3C2440 S3C2440 193

3)修改目标板的arch和编译器路径

修改linux/2.6.30.4下的Makefile

ARCH = $(SUBARCH)

CROSS_COMPILE ?=

修改成

ARCH ?= arm

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

4)增加devfs文件管理器支持

修改fs/Kconfig,找到

menu “Pseudo filesystems”

添加

config DEVFS_FS

bool “/dev file system support (OBSOLETE)”

default y

config DEVFS_MOUNT

bool “Automatially mount at bool”

default

depends on DEVFS_FS

5)修改晶振频率

arch/arm/mach-s3c2440/mach-smdk2440.c

/*s3c24xx_init_clocks(16934400);*/ s3c24xx_init_clocks(12000000);

6)修改MTD分区,由于自己的uboot还没有完全做好,暂时用飞凌的boot的分区,

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

static struct mtd_partition smdk_default_nand_part[] = {

[0] = {

.name = "Boot",

.size = 0x00100000,

.offset = 0

},

[1] = {

.name = "MyApp",

.size = 0x003c0000,

.offset = 0x00140000,

},

[2] = {

.name = "Kernel",

.size = 0x00300000,

.offset = 0x00500000,

},

[3] = {

.name = "fs_yaffs",

.size = 0x03c00000, //60M

.offset = 0x00800000,

},

[4] = {

.name = "WINCE",

.size = 0x03c00000,

.offset = 0x04400000,

}

};

7)关闭ECC校验

文件drivers/mtd/nand/s3c2410.c

函数:s3c2410_nand_init_chip

/*chip->ecc.mode = NAND_ECC_SOFT; */ chip->ecc.mode = NAND_ECC_NONE;

这个有两个 软件校验和硬件校验都要关掉

8)修改nandflash驱动,修改drivers/mtd/nand下面的nand_bbt.c文件:

static struct nand_bbt_descr largepage_memorybased = {

.options = 0,

.offs = 0,

.len = 1, // 原数值为2,支持2K每页的flash修改为1K9F1G08K9F2G082k每页的flash

.pattern = scan_ff_pattern

};

static struct nand_bbt_descr largepage_flashbased = {

.options = NAND_BBT_SCAN2NDPAGE,

.offs = 0,

.len = 1, //原数值为2,支持2K每页的flash修改为1K9F1G08K9F2G082k每页的flash

.pattern = scan_ff_pattern

};

9)配置内核

make menuconfig

首先加载s3c24xx系列的通用配置,然后在此基础上修改

配置完后将配置文件保存为.config,这样方便下次make menuconfig时默认加载上次配置过的文件

交叉编译内核

make zImage

如果没有任何错误,编译出来的内核在arch/arm/boot/目录下,文件zImage即是。

分享到:
评论

相关推荐

    linux-2.6.32.2-mini2440-20110413.tar.gz

    Linux 2.6.32.2 Mini2440是针对ARM架构的嵌入式开发板设计的一个轻量级操作系统内核版本。这个压缩包文件"linux-2.6.32.2-mini2440-20110413.tar.gz"包含了与2011年4月13日发布相关的源代码,适用于Mini2440开发板。...

    Linux-2.6.32.2内核在mini2440上的移植

    在深入探讨Linux-2.6.32.2内核如何在mini2440开发板上进行移植之前,让我们先了解几个关键概念与步骤。 ### 1. 构建自主开发环境 开发环境的搭建是任何项目的基础,对于Linux内核移植来说更是如此。文中提到的开发...

    linux-2.6.32.2移植到mini2440实录

    在本文中,我们将深入探讨如何将Linux内核版本2.6.32.2成功地移植到Mini2440开发板的过程。Mini2440是一款基于S3C2440处理器的嵌入式开发平台,广泛用于教学和项目开发。Linux内核移植是一项复杂但至关重要的任务,...

    天嵌科技出品--基于TQ2440开发板的Linux-2.6.30.4的网络摄像机的实现

    【天嵌科技出品--基于TQ2440开发板的Linux-2.6.30.4的网络摄像机的实现】 这篇文章主要讲解了如何在TQ2440开发板上,利用Linux内核版本2.6.30.4来构建一个网络摄像机系统。TQ2440开发板是一款基于Samsung S3C2440...

    linux2.6.30.4_framebuffer移植LCD驱动

    基于 Linux 2.6.30.4 framebuffer 移植 LCD 驱动到 FL2440 开发板,涉及到 LCD 硬件及显示原理、s3c2440 LCD 控制器、Framebuffer 驱动机制、驱动移植、应用程序接口等方面。 1、LCD 硬件及显示原理: 在 FL2440 ...

    2.6.32.2移植到Micro2440

    将Linux内核2.6.32.2移植到Micro2440开发板是一个复杂但有序的过程,涉及到软件配置、硬件适配和编译技巧的综合应用。通过遵循上述步骤,可以有效地完成移植工作,为构建稳定的嵌入式系统奠定基础。然而,需要注意的...

    arm-linux-gcc-4.4.1+Linux-2.6.31.6+busybox-1.15.1在TQ2440的移植.pdf

    在本文档中,作者详细介绍了如何将特定版本的软件组件移植到TQ2440开发板上。TQ2440是一款基于Samsung S3C2440处理器的嵌入式开发平台,常用于Linux系统的开发和实验。本文档主要涉及的组件包括arm-linux-gcc-4.4.1...

    linux 内核: linux-2.6.32.24-20240320-work.gz, 支出mini2440 开发板

    在本场景中,我们关注的是版本号为2.6.32.24的Linux内核,它特别适用于mini2440开发板。这个特定的内核版本包含了针对该开发板的定制优化,以确保最佳性能和兼容性。 mini2440开发板是一款基于Samsung S3C2440...

    mini2440-linux-2.6.30.10移植.

    本文将深入探讨如何将Linux 2.6.30.10版本移植到mini2440开发板上。mini2440是一款基于Samsung S3C2440处理器的嵌入式开发平台,广泛应用于各种嵌入式项目。Linux内核的移植涉及到硬件驱动、编译配置、启动加载等多...

    linux-2.6.14.1内核移植攻略

    ### Linux-2.6.14.1内核移植到ARM9平台的详细攻略 #### 标题解析:Linux-2.6.14.1内核移植攻略 标题明确了文章的主要内容是关于如何将Linux-2.6.14.1版本的内核移植到ARM9平台上。Linux-2.6.14.1是一个较早的内核...

    linux-2.6.22.6_100ask24x0.patch.zip

    标题中的"linux-2.6.22.6_100ask24x0.patch.zip"揭示了这个文件是一个针对Linux内核2.6.22.6版本的补丁包,它专为100ask24x0硬件平台定制。100ask24x0可能是某个特定的嵌入式系统或开发板型号,这通常意味着补丁包含...

    led驱动-各种版本的mplayer-arm+linux-gnueabi-5.4.0.tar.xz+Qt-Embedded-5.

    LED驱动:GEC6818开发板上的灯驱动 各种版本的mplaye: 音视频播放器,使用命令即可播放,支持win10和开发板,应用于各种场合,特别是语音识别技术,很多毕设都是用这个做的。 gcc编译工具:arm+linux-gnueabi-5.4.0....

    linux-2.6.29.1在utu2440上的移植(含lcd驱动移植)

    linux-2.6.29.1在utu2440开发板上的移植(含LCD驱动移植)

    tq2440 linux 2.6.30.4 网眼2000 (驱动 ov511) 安装及测试

    本文主要介绍的是如何在TQ2440开发板上,基于Linux 2.6.30.4内核版本安装和测试网眼2000摄像头的OV511驱动,以及进行相关的程序开发和测试。TQ2440是一款基于Samsung S3C2440处理器的嵌入式开发板,常用于教学和研发...

    最新Linux 2.6.30.4 移植手册及源码下载--基于TQ2440

    TQ2440开发板上,还将移植步骤记录下来,成为完整的移植手册。比之前2.6.25的移植手册更完善。 教 您如何移植Linux系统。 不但给您以镜像跟源码的开放,更教给您一种方法。是新手入门及开发者的明智选择。在产品...

Global site tag (gtag.js) - Google Analytics