上一节《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”的目录,如下:

至此,所需编译的内容即完成,下一节介绍完整版文件系统的制作。

下一篇:《ARM9开发—Linux文件系统的移植和制作(2)》

注意:本站所有文章除特别说明外,均为原创,转载请务必以超链接方式并注明作者出处。