上一节《ARM9开发—Linux内核的移植方法》介绍了Linux源码的移植,本节接着介绍文件系统的移植。文件系统的移植一般包含三个步骤:(1)添加Nand Flash支持;(2)yaffs2文件系统移植;(3)利用busybox创建系统所需基本文件。
1. Nand Flash驱动
编辑 /opt/Learn2440/linux-2.6.30.4/arch/arm/plat-s3c24xx/common-smdk.c 文件。
(1)修改分区
在109行,将结构体名为 smdk_default_nand_part[] 的内容修改为:
static struct mtd_partition smdk_default_nand_part[] = {
[0] = {
.name = "EmbedSky_Board_uboot",
.offset = 0x00000000,
.size = 0x00040000,
},
[1] = {
.name = "EmbedSky_Board_kernel",
.offset = 0x00200000,
.size = 0x00300000,
},
[2] = {
.name = "EmbedSky_Board_yaffs2",
.offset = 0x00500000,
.size = MTDPART_SIZ_FULL,
}
};
(2)修改时序参数
在140行,修改smdk_nand_info结构体的内容如下:
static struct s3c2410_platform_nand smdk_nand_info = {
.tacls = 10,
.twrph0 = 25,
.twrph1 = 10,
.nr_sets = ARRAY_SIZE(smdk_nand_sets),
.sets = smdk_nand_sets,
};
(3)修改错误校验
编辑 /opt/Learn2440/linux-2.6.30.4/drivers/mtd/nand/s3c2410.c 第752行内容为:
chip->ecc.mode = NAND_ECC_NONE;
(4)添加flash配置
进入配置界面,终端输入如下指令:
make menuconfig
依次选择菜单,配置所需选项:
**(5)编译下载 **
将编译的 zImage.bin 镜像下载到开发板中,对比启动信息如下:

2. yaffs2移植
(1)获取yaffs2源码
在Linux终端执行git命令,获取最新版yaffs2源码:
git clone git://www.aleph1.co.uk/yaffs2
将下载的源码复制到/opt/Learn2440 目录下,如下:

(2)yaffs2补丁
执行补丁脚本patch-ker.sh,将yaffs2添加到linux源码中。
./patch-ker.sh c m /opt/Learn2440/linux-2.6.30.4/

(3)查看目录
在/opt/Learn2440/linux-2.6.30.4/fs目录下,将看到添加的yaffs2文件夹。
cd /opt/Learn2440/linux-2.6.30.4/fs

(4)添加yaffs配置单
cd /opt/Learn2440/linux-2.6.30.4 make menuconfig
依次选择配置内容,如下:

注:图片中未看到的选项内容,默认全部取消选中。
3.busybox移植
(1)获取busybox源码
访问Busybox官网 ,以 busybox-1.16.0.tar.bz2 版本为例下载。

将下载的源码解压到 /opt/Learn2440 目录下,如下:

(2)编辑Makefile
gedit /opt/Learn2440/busybox-1.16.0/Makefile
<1> 修改164行内容为:
CROSS_COMPILE = arm-linux-
<2> 修改189行内容为:
ARCH = arm
<3> 修改431行内容为:
%config: scripts_basic outputmakefile FORCE
<4> 修改1279行内容为:
%/: prepare scripts FORCE
编辑完成后,保存并退出。
(3)修改配置单
make menuconfig
依次选择所需配置,如下:

(4)编译
make install

编译完成后,在 /opt/Learn2440/busybox-1.16.0 目录下生成一个名为”_install”的目录,如下:

至此,所需编译的内容即完成,下一节介绍完整版文件系统的制作。
评论 (0)
暂无评论,快来抢沙发吧!