您的位置:首页 > 编程语言 > PHP开发

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

2015-07-17 14:59 621 查看

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文件,在操作平台上通过命令tarxvjf busybox-1.7.0.tar.bz2解压得到busybox-1.7.0文件。                                     

 (1)进入busybox-1.7.0修改Makefile使用交叉编译工具,把CROSS_COMPILE   ?=  改为  CROSS_COMPILE   ?= arm-linux-。

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

      


图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所示。

            


图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所示的文件。

       


图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所示。

    


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


图7 有文件系统时显示的信息
3.添加文件系统的命令工具

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

从http://daniel-baumann.ch/software/dosfstools/网站上下载dosfstools-3.0.16.tar.gz文件并通过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编译后目录信息
  


图9 具有mkdosfs命令显示的信息
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: