免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1731 | 回复: 0
打印 上一主题 下一主题

yaffs2文件系统制作 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-12-23 03:35 |只看该作者 |倒序浏览

1、创建根文件系统的目录

mkdir rootfs

cd rootfs

mkdir bin dev etc lib proc sbin sys usr mnt tmp var

2、创建设备文件

#  cd dev/

#  mknod -m 666 console c 5 1

#  mknod -m 666 null c 1 3

3、安装/etc  etc.rar   :etC目录主要是一些启动时的脚本文件,一般不需要修改。

tar etc.tar.gz C /xxx/rootfs

4、编译busybox 获取:busybox源码busybox-1.15.2.tar.bz2这个压缩包,下载,解压

进入源码目录,修改Makefile164行: 

CROSS_COMPILE = arm-linux- 

190行: 

ARCH = arm 

执行#make menuconfig  进行配置busybox 

配置选项大部分都是保持默认的,只需要注意选择以下这几个选项,其他的选项都不用动: 

Busybox Setting ---> 

Build Options ---> 

[*]Build Busybox as a static binary(no shared libs) 

[*]Build with Large File Support (for accessing files > 2GB) 

Installation Options ---> 

(./_install) Busybox installation prefix  <进入这个选项,输入busybox的安装路径, 如:../rootfs 

Busybox Library Tuning ---> 

[*] vi-style line editing commands 

[*] Fancy shell prompts  <要选择这个选项:Fancy shell prompts,否则挂载文件系统后,无法正常显示命令提示符:[\u@\h \W]#

��

5、编译、安装busybox

make 

# make install

后,然后就会在上一级目录下生成rootfs文件夹,里面包含几个文件夹/bin/sbin/usrlinuxrc

安装gligc

进入lib 目录

#cpfa /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/lib/*so* ./

 

库文件是位于当前的交叉编译器目录下。由于交叉编译器的库文件比较多,体积较大,所以需要裁剪一下库文件,只保留常用的库文件。

到这里,文件系统的框架已经做好,我们需要把文件系统制作成可以烧写进Nandflash 中的yaffs2 镜像文件。

使用mkyaffs2image 工具,制作yaffs2 镜像,这个工具是在yaffs2 源码包中 utils 目录下的mkyaffs2image.c 文件编译得到的,如果使用的是大页NAND,需要修改源码

针对大页256M NAND

       mkyaffs2image.rar   

 针对小页64\128M NAND    mkyaffs2image 工具 

把解压出来的可执行文件复制到/usr/bin 目录下,

#cp mkyaffs2image /usr/bin

制作文件系统镜像:

#mkyaffs2image root_2.6.31 root_2.6.31.bin

root_2.6.31.bin 就是yaffs2 文件系统镜像,要先修改它的权限,否则该文件无法被复制:

#chmod 777 root_2.6.31.bin

把root_2.6.31.bin 下载到nandflash 中的文件系统分区中

其它:设置开发板IP地址:在init.d/rcS文件中加入:

ifconfig lo 127.0.0.1 

ifconfig eth0 192.168.1.10 netmask 255.255.255.0 up 

route add default gw 192.168.1.1 

/etc/profile中加入: alias ll=`ls -l` 

alias mntnfs=`mount -t nfs -o nolock` 

alias mntud1=`mount /dev/sda1 /mnt/udisk1` 

alias umntud1=`umount /mnt/udisk1` 

alias 命令的作用是给一个命令取个别名,可以把较长的命令简化成简单易记的短命令,可以根据自己的需要添加这里的内容。

 

 

移植手册: 文件系统制作v1.5.pdf   

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP