教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 教学研究 >

FL2440开发板内核移植笔记

来源:网络收集 时间:2026-01-24
导读: FL2440开发板内核移植笔记 参考:/thread-468-1-1.html 宿主机:Redhat Linux AS4 目标机:s3c2440 交叉编译器:arm-linux-gcc-3.4.1 交叉编译器路径:/usr/local/arm/3.4.1 要移植的内核版本:linux-2.6.33 文件系统类型: yaffs2 (目前使用光盘中linux-2.

FL2440开发板内核移植笔记

参考:/thread-468-1-1.html

宿主机:Redhat Linux AS4

目标机:s3c2440

交叉编译器:arm-linux-gcc-3.4.1

交叉编译器路径:/usr/local/arm/3.4.1

要移植的内核版本:linux-2.6.33

文件系统类型: yaffs2 (目前使用光盘中linux-2.6.28的文件系统touch.yaffs)

笔记作者:japleak

1、 下载内核linux-2.6.33.tar.gz(

中可以找到),然后还需要下载yaffs2文件系统,目的是为了给内核打补丁。下载地址为:http://www.aleph1.co.uk/cgi-bin/viewcvs.cgi/yaffs2.tar.gz?view=tar (此步骤很重要,如果yaffs2不正确,可能引起无法正常编译通过)。

2、 将下载的文件存放在/usr/src/中。

3、 分别解压缩: [root@WEB188 src]# tar xzf linux-2.6.33.tar.gz

[root@WEB188 src]# tar xzf yaffs2.tar.gz

4、 为内核增加yaffs2补丁 [root@WEB188 src]# cd yaffs2 [root@WEB188 yaffs2]# ./patch-ker.sh c ../linux-2.6.33/ Updating ../linux-2.6.33//fs/Kconfig

Updating ../linux-2.6.33//fs/Makefile

5、 修改机器码。进入内核目录,修改机器码跟bootloader的机器码一致(FL2440为193) [root@WEB188 yaffs2]# cd ../linux-2.6.33

[root@WEB188 linux-2.6.33]#vi arch/arm/tools/mach-types

首先删除以下行:

s3c2410 ARCH_S3C2410 S3C2410 182 然后将以下行:

s3c2440 ARCH_S3C2440 S3C2440 362 修改为:

s3c2440 ARCH_S3C2440 S3C2440 193

6、 指定目标板machine、编译器和编译器路径。修改Makefile文件,注意将

CROSS_COMPILE对应到你系统中交叉编译器地址

[root@WEB188 yaffs2]# vi Makefile

将两行:

ARCH ?= $(SUBARCH)

CROSS_COMPILE ?=

修改为以下两行:

ARCH ?= arm

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

7、 增加devfs文件管理器的支持。

[root@WEB188 linux-2.6.33]# vi fs/Kconfig

找到以下行:

menu "Pseudo filesystems"

在此行后面增加以下内容: config DEVFS_FS

bool "/dev file system support (OBSOLETE)"

default y

config DEVFS_MOUNT

bool "Automatically mount at boot"

default y

depends on DEVFS_FS

8、 修改晶振频率( 可解决打印信息乱码问题 )。修改文件

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

[root@WEB188 linux-2.6.33]# vi arch/arm/mach-s3c2440/mach-smdk2440.c

将如下行:

s3c24xx_init_clocks(16934400);

修改为:

s3c24xx_init_clocks(12000000);

9、 修改MTD分区。打开文件arch/arm/plat-s3c24xx/common-smdk.c,此处注意两个地方:一、必须跟bootloader分区一样,二、文件系统fs_yaffs必须在第4个分区,即索引号为3。其他一些分区信息可以不要,如下:

[root@WEB188 linux-2.6.33]# vi arch/arm/plat-s3c24xx/common-smdk.c

找到static struct mtd_partition smdk_default_nand_part[]的结构体,将内容修改为:

[0] = { .name = "boot",

.size = 0x00020000, .offset = 0

},

[1] = {

.name = "bootParam",

.size = 0x00060000, .offset = 0x00020000,

},

[2] = {

.name = "Kernel",

.size = 0x00300000, .offset = 0x00500000,

},

[3] = { .name = "fs_yaffs",

.size = 0x03c00000,

.offset = 0x00800000,

},

[4] = {

.name = "eboot",

.size = 0x00080000,

.offset = 0x04400000,

},

[5] = {

.name = "WINCE",

.size = 0x03b80000,

.offset = 0x04480000,

}

10、 关闭ECC校验。修改文件drivers/mtd/nand/s3c2410.c

[root@WEB188 linux-2.6.33]# vi drivers/mtd/nand/s3c2410.c

将以下行:

chip->ecc.mode = NAND_ECC_SOFT;

修改为:

chip->ecc.mode = NAND_ECC_NONE;

11、 修改nandflash驱动,支持K9F1G08的nandflash。文件为:drivers/mtd/nand/nand_bbt.c

[root@WEB188 linux-2.6.33]# vi drivers/mtd/nand/nand_bbt.c

将以下两个部分进行修改

static struct nand_bbt_descr largepage_memorybased = {

.options = 0,

.offs = 0,

.len = 1, //原始值为2,改成1

.pattern = scan_ff_pattern

};

static struct nand_bbt_descr largepage_flashbased = {

.options = NAND_BBT_SCAN2NDPAGE, .offs = 0,

.len = 2, //原始值为2,改成1

.pattern = scan_ff_pattern

}; 为什么要这样修改呢?

12、 把s3c2410的默认配置写入config文件(有的yaffs2可能会出错)。

[root@WEB188 linux-2.6.33]# make s3c2410_defconfig

HOSTCC scripts/basic/fixdep

HOSTCC scripts/basic/docproc

HOSTCC scripts/basic/hash

HOSTCC scripts/kconfig/conf.o

HOSTCC scripts/kconfig/kxgettext.o

SHIPPED scripts/kconfig/zconf.tab.c

SHIPPED scripts/kconfig/lex.zconf.c

SHIPPED scripts/kconfig/zconf.hash.c

HOSTCC scripts/kconfig/zconf.tab.o

HOSTLD scripts/kconfig/conf

fs/yaffs2/Kconfig:179: unknown option "boot"

make[1]: *** [s3c2410_defconfig] 错误 1

make: *** [s3c2410_defconfig] 错误 2

13、 以上出现错误,主要是补丁造成,修改fs/yaffs2/Kconfig的179行,将boot改成

bool,即改成如下: bool "Disable yaffs2 block refreshing" [root@WEB188 linux-2.6.33]# make s3c2410_defconfig

#

# configuration written to .config

#

14、 配置内核,注意System Type中,S3C2440中只选择以下内容即可。

[root@WEB188 linux-2.6.33]# make menuconfig

配置CPU选项(记得跟S3C2440 Machines平级的其它以及子项都不选) System Type --->

S3C2440 Machines ---> [*] SMDK2440

[*] SMDK2440 with S3C2440 CPU module 配置yaffs2选项

File systems --->

[*] Miscellaneous filesystems ---> <*> YAFFS2 file system support

-*- 512 byte / page devices

-*- 2048 byte (or larger) / page devices

[*] Autoselect yaffs2 format

[*] Cache short names in RAM

15、 最后等着基本内核大功告成 …… 此处隐藏:3830字,全部文档内容请下载后查看。喜欢就下载吧 ……

FL2440开发板内核移植笔记.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/49095.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)