FL2440开发板内核移植笔记
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字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [教学研究]2012西拉科学校团少队工作总结
- [教学研究]建筑工程公司档案管理制度
- [教学研究]小学数学人教版六年级上册圆的周长和面
- [教学研究]ERP电子行业解决方案
- [教学研究]钢支撑租赁合同范本
- [教学研究]预应力自动张拉系统用户手册Rev1.0
- [教学研究]MOOC课程:金瓶梅人物写真(每章节课后
- [教学研究]追加被执行人申请书(适用追加夫妻关系)
- [教学研究]2014年驾考科目一考试最新题库766
- [教学研究]2013-2014学年度九年级物理第15章《电
- [教学研究]新版中日交流标准日本语初级下26课-客
- [教学研究]小导管注浆施工作业指导书
- [教学研究]一般财务人员能力及人岗匹配评估表
- [教学研究]打1.2.页 小学一年级暑假口算100以内加
- [教学研究]学习贯彻《中国共产党党和国家机关基层
- [教学研究]2012年呼和浩特市中考试卷_35412
- [教学研究]最简易的电线电缆购销合同范本
- [教学研究]如何开展安全标准化建设
- [教学研究]工作分析与人岗匹配
- [教学研究]2016-2017学年高中历史第七单元现代中
- 山东省义务教育必修地方课程小学三年级
- 台湾宜兰大学互联网交换技术课程 01_In
- 思想品德:第一课《我知我家》课件(人
- SAR合成孔径雷达图像点目标仿真报告(附
- 利辛县“十三五”规划研究报告
- 2015-2020年中国手机APP行业市场发展趋
- 广告策略、创意表现、媒体方案
- 企业如何申请专利的的几点思考
- 《中国教育简史》网上作业
- 高中历史第二单元西方人文精神的起源及
- 年终晚会必备_精彩的主持稿_精心整理_
- 信息工程专业自荐书
- 2019高考历史人教版一轮练习:第十二单
- JAVA俱乐部管理系统软件需求规格说明书
- 2016-2021年中国小型板料折弯机行业市
- (人教新课标)六上_比的基本性质课件PPT
- 辽宁省公务员考试网申论备考技巧:名言
- 神经阻滞麻醉知情同意书
- 施工企业信息填报、审核和发布的相关事
- 初一(七年级)英语完形填空100篇




