所谓的制作文件系统映像文件,就是将一个目录下的所有内容按照一定的格式存放到一个文件中,这个文件可以直接烧写到存储设备上去。当系统启动后挂接这个设备,就可以看到原来目录一样的内容。制作不同类型的文件系统映像文件需要使用不同的工具。
1、修改制作 yaffs映像文件的工具
首先声明,我也是初次学习制作根文件系统,完全是比着葫芦画剽,照着韦老师的教程写的,至于为什么要修改,是为了适应他之前编译的linux2.6.22.内核,不过不要紧,重要的是先熟悉流程,废话不多说,我也不进行修改,因为我用的内核不是他的,先生成yaffs映像文件再说。
制作 yaffs映像文件的工具名叫 mkyaffsimage ,可以通过在yafs源码包内make获取。yaffs源码包点此下载。
2、下图为我将此yaffs源码包的存放位置。
3、执行命令:tar -xzvf yaffs_source.tar.gz 解压源码包
4、咱们可以看到此时解压的文件夹为 Development
执行命令: cd Development/yaffs2/utils/
在这个目录中,存放的是工具 mkyaffsimage 和 mkyaffs2imag 的源代码,前者用来制作 yaffs1 映像文件,后者用来制作yaffs2映像文件。
同时,我先声明一点,我只能保证生成yaffs映像文件,并不能保证生成的映像文件能在我的mini2440板子上运行,因为我也是初学,写这博文主要是为了熟悉流程,具体的生成适合自己板子的还要加以配置,我一定会弄出来的!
现在,暂不修改。
执行命令:make 编译生成mkyaffsimage工具
现在可以看到生成了mkyaffsimage工具了
5、执行命令:sudo cp mkyaffsimage /usr/local/bin/ 将该工具复制到 /usr/local/bin 目录
6、执行命令:sudo chmod +x /usr/local/bin/mkyaffsimage
7、现在可以制作yaffs映像文件了
执行命令:cd /home/song/nfs_root
执行命令:mkyaffsimage fs_mini fs_mini.yaffs 可以看到生成了yaffs镜像文件
8、此时你可以利用uboot控制界面将 fs_mini.yaffs下载、烧如Nand Flash了,操作命令如下
执行命令: tftp fs_mini.yaffs
可以看到,下载根文件系统完毕。
执行命令:nand erase 0x580000 0xfa80000 #擦除此区域,nand使用之前需要先擦除,以便接下来将fs_mini.yaffs保存到这个地址处
执行命令:nand write.yaffs 0x30008000 0x580000 0xdbb040
现在可以修改命令行参数以MTD2分区作为根文件系统,比如在 U-bood控制界面如下设置
[u-boot@MINI2440]# set bootargs noinitrd console=ttySAC0 root=/dev/mtdblock2 rootfstyle=yaffs
[u-boot@MINI2440]# saveenv
到这里已经完成了,虽然制作出了根文件系统yaffs格式,但是并没有在我的板子上启动起来,结果不出所料,失败的原因就是还没有正确配置根文件系统,并且没有考虑移植的内核。接下来的任务就是好好学学怎么样配置。加油!