注意: 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.和其它文件一样烧录