Yaffs2文件系统的制作和mkdosfs等命令工具的增加

2.1移植环境

内核版本: Linux-2.6.22.6;

交叉编译器版本: gcc-3.4.5-glibc-2.3.6;

操作系统平台: Ubuntu14;

开发板平台: S3C2440A;

使用的工具: Busybox-1.7.0。

2.2配置编译 Busybox

    从 busybox官网 http://www.busybox.net/ 下载 busybox-1.7.0.tar.bz2 文件,在操作平台上通过命令

tar xvjf busybox-1.7.0.tar.bz2 # 解压得到busy box-1.7.0文件。

(1)进入busybox-1.7.0修改Makefile使用交叉编译工具,把

          CROSS_COMPILE   ?=  改为  CROSS_COMPILE   ?= arm-linux-。

(2)Busybox的性能微调,通过 make menuconfig 设置 “TAB” 键补全,比如在控制台上输入一个“inst”后按 “TAB” 键,它会补全为 “install”。配置如图1 busybox 性能微调所示。

       Yaffs2文件系统的制作和mkdosfs等命令工具的增加_第1张图片

                                                            图1 busybox性能微调

(3)编译安装 Busybox。通过 make 命令编译我们设置好的 Busybox,然后执行 “

make COFIG_PREFIX=/work/nfs_root/first_fsinstall” 把 Busybox 安装到 work/nfs_root/first_fs 目录下,我们在 /work/nfs_root/first_fs 文件下看到的内容如图2所示。

               

                                                                       图2 Busybox安装内容

2.3使用glibc库

    因为我们在配置 Busybox 的性能时选择了动态链接的 Busybox,我们需要安装 glibc 库。首先,我们在根文件系统目录下通过命令 mkdir lib 新建 lib 目录,然后把交叉编译工具链 gcc-3.4.5-glibc-2.3.6/arm-linux/lib 目录下的 “*.so*” 文件通过命令 cp *.so* /work/nfs_root/first_fs/lib/-d 拷贝到根文件系统新建的 lib 目中,我们可以看到根文件系统中lib目录下的文件如图3所示。

             Yaffs2文件系统的制作和mkdosfs等命令工具的增加_第2张图片

                                                                               图3 glibc库文件

2.4构建最小根文件系统

(1)通过命令

  sudomknod console c 5 1

  sudomknod null c 1 3

在文件系统目录下创建两个设备节点。

(2)构建inittab

    在文件系统目录先通过命令mkdir etc创建etc目录,使用命令构建inittab文件,inittab中的内容如图4所示。

                                                      

                                                                            图4 inittab内容显示

2.4制作/使用YAFFS2文件系统

 (1)通过解压 yaffs 文件可以得到 yaffs 和 yaffs2 两个文件,因为我们需要制作的是 yaffs2 文件系统映像文件,所以要使用的工具在 yaffs2/utils 目录下。在 utils 目录下进行 make 后得到如图5所示的文件。

        Yaffs2文件系统的制作和mkdosfs等命令工具的增加_第3张图片

                                                                      图5 utils目录

   (2)在我们的 PC 机中是没有 mkyaffs2image 命令来制作 yaffs2 文件系统映像文件的,要使我们的 PC 机能够执行 mkyaffs2image 命令我们需要 mkyaffs2image 通过命令 sudo cp mkyaffs2image /usr/local/bin/ 拷贝到 PC 机的命令执行文件夹下,同时我们还有通过 sudo chmod +x /usr/local/bin/mkyaffs2image 命令赋予该工具可执行权限。这样我们可以在 PC 机中执行 mkyaffs2image first_fsfirst_fs.yaffs2 命令可以生成 first_fs.yaffs2 映像文件。

 (3)下我们制作的文件系统之前,先把开发板上电然后通过 secureCRT 查看到的启动信息如图6所示。然后通过下载工具把我们制作的 first_fs.yaffs2 映像文件下载到我们的 S3C2440 开发板上,重新上电后我们可以通过 secureCRT 串口工具看到我们制作文件系统的目录如图7所示。

    Yaffs2文件系统的制作和mkdosfs等命令工具的增加_第4张图片

                                                              图6 没有文件系统时的打印信息

                                    Yaffs2文件系统的制作和mkdosfs等命令工具的增加_第5张图片

                                                                    图7 有文件系统时显示的信息

3、添加文件系统的命令工具

我们制作的最小根文件系统只有基础的一些功能,比如当我们需要在开发板上执行格式化磁盘命令 mkdosfs、磁盘分区命令 fdisk 等的命令时会发现我们制作的根文件系统没有这些命令工具,因此我们需要自己添加相应的命令工具。

从 http://daniel-baumann.ch/software/dosfstools/  或 网站上下载 dosfstools-3.0.16.tar.gz 文件(下载网址: http://www.dietpc.org/downloads/source/common/dosfstools/ 或 http://distfiles.lesslinux.org/)并通过 WinSCP 工具把文件传到PC机上进行解压让后通过 make CC=arm-linux-gcc 进行交叉编译得到的文件目录如图8所示。通过cp mkdosfs/work/nfs_711/first_fs/usr/sbin/ 命令把编译生成的 mkdosfs 拷贝到文件系统的 /usr/sbin 目录下,重新制作并使用 yaffs2 文件系统,重启开发板后我们通过 ssecureCRT 串口工具可以看到如图9所示的信息即表示添加成功。如果我们在实际的开发过程中发现自己制作的文件系统缺少我们需要的命令工具,则可以通过相同的方式进行添加。

          

                                                                 图8 dosfstools编译后目录信息

   Yaffs2文件系统的制作和mkdosfs等命令工具的增加_第6张图片

                                                                  图9 具有mkdosfs命令显示的信息

你可能感兴趣的:(系统,实践,嵌入式)