2.3 制作cramfs、jffs2的镜像文件并烧录

本文详细介绍了如何为嵌入式系统制作并烧录cramfs和jffs2格式的根文件系统镜像,包括u-boot.bin、uImage等关键文件的烧录过程及配置方法。

注意: u-boot.bin、uImage、cramfs、jffs2都必须拷贝到 /tftpboot 目录下,并且确认flash是否支持该格式的文件系统

说明: 
            cramfs: 压缩、只读               
            jffs2   : 压缩、可读写
            yaffs  : 不压缩、可读写                     //不常用

1. 制作 cramfs镜像文件

1. 由于系统提供制作cramfs文件系统的工具,可以直接使用。在rootfs目录下:

   $ mkfs.cramfs  rootfs  rootfs.cramfs  //后缀是随便的,可以是rootfs.img
   $ sudo cp rootfs.cramfs /tftpboot

2. 制作 jffs2镜像文件

1. .jffs2 命令工具下载 : sudo apt-get install mtd-utils

//后缀是随便的,可以是rootfs.img 
2.1:mkfs.jffs2 -r rootfs -o rootfs.jffs2 -e 0x20000 -n                  

   制作用户可改数据时选择   
   //-e 0x20000 表示一页128k的内存,pad 为扩充的到多大2:mkfs.jffs2 -r rootfs -o rootfs.jffs2 -e 0x20000 -n --pad=0x800000  

   $ sudo cp rootfs.jffs2 /tftpboot

3. 烧录 u-boot.bin

提示: 烧录位置 0x0-0x100000 : "myuboot"

2. 烧录位置
        FS210 # tftp 0x40008000 u-boot.bin
        FS210 # nand erase 0x0 0x100000
        FS210 # nand write 0x40008000 0x0 0x100000

3. 重新修改环境变量:
        FS210 # set serverip 192.168.7.3
        FS210 # set ipaddr 192.168.7.7
        FS210 # set bootcmd tftp 0x40008000 uImage \; bootm 0x40008000
        set bootargs init=/init console=ttySAC0,115200 root=/dev/nfs nfsroot=192.168.7.3:/opt/rootfs_dir  ip=192.168.7.7

4. 烧录 uImage

1. 烧录位置 0x100000-0x500000 : "kernel"
   1.1 烧录位置
       FS210 # tftp 0x40008000 uImage
       FS210 # nand erase 0x100000 0x400000
       FS210 # nand write 0x40008000 0x100000 0x400000

   1.2开机就启动nand中内核:
        FS210 # set bootcmd nand read 0x40008000 0x100000 0x400000 \; bootm 0x40008000

5. 烧录 cramfs、jffs2 镜像文件(根文件系统)

1. 烧录位置 0x500000-0x1500000 : "rootfs"

2. cramfs格式根目录是不可修改的,jffs2格式根目录是可修改的

3. 烧录cramfs格式镜像
   3.1 烧录位置
       FS210 # tftp 0x40008000 myrootfs.cramfs
       FS210 # nand erase 0x500000 0x1000000
       FS210 # nand write 0x40008000 0x500000 0x1000000

   3.2 挂载根文件:
       set bootargs console=ttySAC0,115200  init=/linuxrc  root=/dev/mtdblock2  rootfstype=cramfs

       save


4. 烧录jffs2格式镜像
   4.0 烧录位置 0x500000-0x1500000 : "rootfs"
   4.1 烧录位置
       FS210 # tftp 0x40008000 myrootfs.jffs2
       FS210 # nand erase 0x1500000 0x1000000
       FS210 # nand write 0x40008000 0x1500000 0x1000000

   4.2 挂载根文件:
       //root的值还可以为 root=31:03 或 root=1f03
       set bootargs console=ttySAC0,115200  init=/linuxrc  root=/dev/mtdblock3   rootfstype=jffs2 

       save

5. 将jffs2格式镜像作为用户的数据
    1.制作用户数据文件
    mkfs.jffs2 -r rootfs -o rootfs.jffs2 -e 0x20000 -n --pad=0x800000    //用户空间8M

    2.修改更文件系统:
        在rcS后面添加(在 sbin//sbin/mdev -s  后执行)
        mount -t jffs2 /dev/mtdblock6  /home     ///dev/mtdblock6表示用户数据是那一块内存

    3.烧录到用户数据的那一块空间
        a.和其它文件一样烧录
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值