cramfs+yaffs嵌入式平台的实现

cramfs+yaffs嵌入式平台的实现
首先我们要将我们的某个分区格式化成yaffs格式。
制作格式化工具过程如下:
mtd-utils编译
1、编译libz:

首先安装 zlib 库,这个是后面的库的编译基础。
http://www.zlib.net/zlib-1.2.3.tar.gz 

解压
tar zxf zlib-1.2.3.tar.gz

由于 zlib 库的configure 脚本不支持交叉编译选项,可以采用以下方法来解决:

1)CC=arm-softfloat-linux-gnu-gcc ./configure --prefix=/*你的安装目录*/ --shared  
注意:这里配置指向 --prefix=/*你的安装目录*/,会自动安装在 --prefix=/*你的安装目录*/ [include,lib] 目录下,
千万不要装错目录了,不然后面会找不到这个库的。
2)make
3)make install

安装完后检查一下目录 --prefix=/*你的安装目录*/[include,lib] ,假如 include 中没有 zlib.h 之类的头文件,lib 中没有 libz.so.1.2.3 ,那就自己手动拷到这些目录下去,记着拷的时候把所有的 *.h  都需要拷过去,在拷库的时候用 cp –a libz.* /…./lib  就行,要用上 –a 选项

2、编译mtd-utils:
下载mtd-utils-1.0.0.tar.gz:
ftp://ftp.infradead.org/pub/mtd-utils/mtd-utils-1.0.0.tar.gz
解压目录为mtd-utils-1.0.0
#cd mtd-utils-1.0.0

1) 修改Makefile
CROSS=arm-softfloat-linux-gnu-

2) make ( 用file命令查看,如 file mkfs.jffs2 )
#file mkfs.jffs2
mkfs.jffs2: ELF 32-bit LSB executable, ARM, version 1 (ARM), for GNU/Linux 2.0.0, dynamically linked (uses shared libs), for GNU/Linux 2.0.0, not stripped
可知:交叉编译成功。
因为格式化flash分区是在板子上运行的,所以要交叉编译,这个概念一定要分清楚。

编译好后将生成的flash_eraseall工具拷贝你的文件系统下的usr/bin下
flash_eraseall /dev/mtd/x
擦除干净后再
mount -t yaffs /dev/mtdblock/x /mnt
即可挂上了yaffs分区,解释一下什么是/dev/mtd/x和/dev/mtdblock/x
/dev/mtd/x  是字符设备   mtd设备的主设备号为90,至于次设备号:单数为只读,双数为读写。《构建嵌入式LINUX系统》一书有介绍,可以参考一下
/dev/mtdblock/x 是块设备  

最后在linuxrc下添加一句话就可以实现分区的自动挂载了
/bin/mount -t yaffs /dev/mtdblock2 /mnt/yaffs

部署文件系统到开发板上
我的分区信息
 
dev:    size   erasesize  name
mtd0: 00100000 00004000 "bootloader"  //1M
mtd1: 00400000 00004000 "linux-kernel"  //4M
mtd2: 02000000 00004000 "cramfs-partition" //32M 
mtd3: 01b00000 00004000 "yaffs-partition" //27M
flash烧写命令和分区设置要和内核设置是一样的
烧写内核
tftp 30008000 zImage
nand erase 100000 400000
nand write 30008000 100000 400000
烧写cramfs文件系统
tftp 30008000 rootfs.cramfs
nand erase 500000 2000000
nand write 30008000 500000 2000000
启动参数设置
setenv bootargs root=1f02 console=ttySAC0,115200 init=/linuxrc devfs=mount display=sam240
setenv bootcmd nand read 30008000 100000 400000 /; go 30008000

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值