`
saybody
  • 浏览: 907239 次
  • 性别: Icon_minigender_2
  • 来自: 西安
文章分类
社区版块
存档分类
最新评论

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

喜欢这篇文章就加我好友,点击下面链接即可!

http://student.csdn.net/invite.php?u=111047&c=758a60d66d3a92d1

分享到:
评论

相关推荐

    如何制作CRAMFS + YAFFS2文件系统

    在嵌入式领域,如RAM、NAND或NOR FLASH等不同类型的存储设备上,有多种文件系统可供选择,包括EXT2、TEMPFS、RAMDISK、CRAMFS、JFFS1/2、YAFFS1/2、XFS等。选择时应考虑应用需求,如可靠性、健壮性以及特定功能。...

    嵌入式系统/ARM技术中的cramfs+yaffs嵌入式平台的实现

    作者:蒙洋,华清远见嵌入式学院讲师。  首先我们要将我们的某个分区格式化成yaffs格式。  制作格式化工具过程如下:  mtd-utils编译  1、编译libz:  首先安装 zlib 库,这个是后面的库的编译基础。  ...

    linux2.6.18kernel+root.cramfs+vivi

    在嵌入式领域,尤其是针对S3C2410这种基于ARM920T处理器的平台,Linux 2.6.18内核是广泛使用的,因为它提供了良好的稳定性和低功耗特性,适合于各种嵌入式设备和移动应用。 S3C2410是一款由Samsung公司设计的微处理...

    嵌入式Linux_的Cramfs_根文件系统配置成可读可写

    为解决这个问题,通常采用复合文件系统,比如将Cramfs与YAFFS或YAFFS2结合,让Cramfs在启动时挂载可写文件系统。然而,这会增加存储空间的占用,加剧资源紧张。 本文提出了一个新的方法,通过修改Cramfs根文件系统...

    嵌入式Linux文件系统研究与应用.pdf

    在基于ARM的S3C2410处理器和嵌入式Linux平台上,结合CRAmFS和YAFFS2可以实现一种高效的数据存储策略。CRAmFS可以用于构建根文件系统,包含操作系统的核心组件和静态数据,而YAFFS2则用于用户数据分区,处理应用程序...

    Cramfs、JFFS2、YAFFS2全面对比

    本文将详细介绍三种开源的嵌入式文件系统——Cramfs、JFFS2、YAFFS2,并对其设计原理和主要性能进行深入分析与比较。 #### 二、Cramfs Cramfs是由Linux的创始人Linus Torvalds开发的一种只读文件系统。它的主要...

    嵌入式Linux 的Cramfs 根文件系统配置的解决方案

    传统的解决方案——复合文件系统法,通过结合Cramfs与YAFFS/YAFFS2等可写型文件系统,虽能解决问题,但增加了额外的存储负担,不适用于资源极度受限的嵌入式环境。 #### 三、创新解决方案:优化的Cramfs根文件系统...

    linux系统烧写包括u-boot.bin,zImage,rootfs.yaffs2,cramfs

    标题提及的"u-boot.bin"、"zImage"、"rootfs.yaffs2"和"cramfs"是嵌入式Linux系统烧写过程中的关键组件。下面我们将详细探讨这些组件以及它们在烧写过程中的作用。 1. **u-boot**: u-boot(统一的bootloader)是...

    嵌入式根文件制作工具

    本篇文章将详细介绍几种常见的根文件系统格式——Cramfs、JFFS和Yaffs2,并探讨它们在嵌入式设备,如机顶盒中的应用。 首先,Cramfs(Compressed ROM File System)是一种轻量级、只读的文件系统,由Linux内核...

    基于Linux的嵌入式多文件系统的实现.pdf

    在嵌入式Linux中,常见的文件系统包括Romfs、Cramfs、Jffs、Yaffs等,每种都有其特定的应用场景和优缺点。 Cramfs和Yaffs文件系统在嵌入式Linux中特别受到关注。Cramfs是一种压缩的只读文件系统,适合于小容量且...

    嵌入式linux2.6平台搭建之根文件系统制作过程

    接下来,我会详细描述嵌入式Linux 2.6平台搭建过程中根文件系统制作的相关知识点,涉及使用busybox构建根文件系统、配置NFS服务器、挂载文件系统、制作特定格式的文件系统以及在Linux环境下实现外设自动挂载的功能。...

    基于linux的嵌入式系统研究.rar_linux 嵌入式_基于Linux_嵌入式_嵌入式 linux_嵌入式系统

    4. **文件系统构建**:嵌入式系统通常使用静态文件系统,如 cramfs、yaffs 或 jffs2,以节省存储空间和提高启动速度。开发者需要了解如何构建这些文件系统,并将应用程序、库和其他必要文件打包其中。 5. **...

    嵌入式Linux檔系統及其存儲機制分析

    嵌入式Linux系统在设计上与通用PC机有很大区别,主要在于存储机制。...开发者需要根据实际的硬件条件和系统需求,选择匹配的Flash芯片驱动,并考虑文件系统的性能、大小和稳定性等因素,以实现最佳的嵌入式系统设计。

    博创s3c-2410s配套vivi+zImage+root.cramfs

    综上所述,这个压缩包包含了一套完整的基于S3C2410的嵌入式系统开发和运行环境:VIVI用于加载和调试内核,zImage是压缩后的Linux内核,root.cramfs提供了启动时的根文件系统,而yaffs则可能用于存储用户数据或其他非...

    使用Busybox制作Cramfs根文件系统.

    通过使用Busybox制作Cramfs根文件系统,可以在嵌入式Linux环境中实现高效的资源管理和性能优化。Cramfs作为一种只读压缩文件系统,在节省存储空间的同时,通过按需解压机制减少了RAM的使用,非常适合资源受限的...

    基于QT的嵌入式Linux智能加油站信息发布系统的设计与实现.pdf

    操作系统是基于嵌入式Linux 2.6.21的,并且文件系统使用Cramfs或Yaffs2,这些文件系统特别适合NAND Flash存储。 【QT/E embedded移植】 为了在嵌入式设备上实现图形用户界面,需要将QT/E embedded移植到系统中。...

    几种源码开放的嵌入式文件系统分析与比较

    总结来说,Cramfs、JFFS2和YAFFS2作为三种性能优越的源码开放嵌入式文件系统,它们各自针对不同的应用场景和需求,展现了独特的优势。通过深入分析每种文件系统的特性,开发者可以根据实际需要选择最合适的文件系统...

    filesystem make

    "filesystem make"涉及到创建和管理不同类型的文件系统,如cramfs、yaffs2等。这些特定的文件系统格式通常用于嵌入式设备和轻量级操作系统,因为它们具有小体积和高效的特点。 1. **基本文件系统**:文件系统是操作...

Global site tag (gtag.js) - Google Analytics