新闻中心

EEPW首页>嵌入式系统>设计应用> 基于s3c2410的CramFS根文件系统的移植

基于s3c2410的CramFS根文件系统的移植

作者: 时间:2012-05-21 来源:网络 收藏

4.2、拷贝需要加入的其他文件和链接库

(1)、Busybox 是 Debian GNU/Linux 的大名鼎鼎的 Bruce Perens 首先开发的。Busybox 编译出一个单个的独立执行程序,就叫做 busybox。但是它可以根据配置,执行 ash shell的功能,以及几十个各种小应用程序的功能。这其中包括有一个迷你的vi编辑器,系统不可或缺的/sbin/init程序,以及其他诸如 ifconfig, halt, reboot, mkdir, mount, ln, ls, echo, cat等等。而所有这一切功能却只有区区1M左右的大小,Busybox已经成为构建嵌入式Linux文件系统的必备软件。

首先我们从官方网站(http://www.busybox.org/)上下载BusyBox 的版本1.0.0。

#tar xvfz busybox-1.00.tar.gz
#cd busybox-1.00
#make menuconfig

下面是需要编译进busybox的功能选项,其他的可以根据需要自选。

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

这个选项是一定要选择的,这样才能把busybox编译成静态链接的可执行文件,运行时才独立于其他函数库,否则必需要其他库文件才能运行,在单个linux内核不能使他正常工作。
[*] Do you want to build BusyBox with a Cross Compiler
选择你自己定义的交叉编译环境。

Installation Options
[*] don’t use /usr

这个选项也一定要选,否则make install 后busybox将安装在原系统的/usr下,这将覆盖系统原有的命令。选择这个选项后,make install后会在busybox目录下生成一个叫_install的目录,里面有busybox和指向他的链接。

其他选项都是一些linux基本命令选项,自己需要哪些命令就编译进去,一般用默认的就可以了,配置好后退出并保存。编译BusyBox,如果能成功编译BusyBox,就将编译好的busybox 复制到文件系统的/bin 目录下,然后创建常用命令的建立快捷方式。建立快捷方式很简单,只要建一个符号链接,比方ln -s /bin/busybox /bin/ls,那么,执行/bin/ls的时候,busybox 就会执行ls的功能,也会按照ls的方式处理命令行参数。

(2)、拷贝一些管理员控制程序到/sbin目录下,最重要的就是要包含一个init命令,可以使用busybox提供的系统工具。比如 ln -s /bin/busybox /sbin/init,这样我们就有了系统运行不可或缺的 /sbin/init 程序了。

(3)、拷贝应用程序运行时所需要的库到/lib,库文件可以从PC机上的交叉编译工具安装目录下拷贝,如libc- 2.2.2.so、libcryt-2.2.2.so、libm-2.2.2.so、libutil-2.2.2.so等,为部分相应库建立快捷方式,提供一些应用程序按快捷方式名称调用。值得注意的是C库要采用C库的版本glibc, glibc位于/lib/libc.so.6。

4.3、利用mkcramfs工具生成cramfs压缩文件系统

一般情况下都要把已经规划好的目录结构转换成一个映象文件,创建Cramfs文件系统需要mkcramfs工具,mkcramfs能把相应的Cramfs目录树压缩成为单一的映象文件,这个映象文件就是我们需要移植的文件系统。Mkcramfs的命令格式为:

Mkcramfs [-h] [--e edition] [-I file] [-n name] DirName OutFile

#mkcramfs root cramfs.Img

用以上的命令就可以生成我们需要的cramfs文件系统映象文件,我们可以发现原本为2.36Mbytes大小的目录内容,被压缩成一个1.08Mbytes的文件系统映象文件,通过vivi或测试程序将其写入Flash中就可以验证是否移植成功。

五、小结

是一个压缩格式的文件系统,如果系统存储资源比较紧张的话,采用CramFS作为嵌入式Linux系统的是一个不错的选择。

创新点:

由于的内存资源比较紧张, 采用CramFS作为嵌入式Linux系统的是一种解决内存资源紧张的比较可行的方法。本文讨论了在嵌入式Linux系统中构建CramFS文件系统的详细过程,为解决内存资源紧张提供一种参考。

参考文献:

1、 李岩、荣盘祥,基于S3C44B0X嵌入式Uclinux系统的原理及应用[M],清华大学出版社,2005。

2、 ARM 9 Linux实验教程,深圳市英蓓特信息技术有限公司[M],2005。

3、 王集森、刘昊、胡晨,嵌入式Linux中多文件系统的构建[J],单片机与应用,2005 12,12-15页。

4、 周宏霖,CramFS在Linux嵌入式环境的应用,http://www.lee-1.com/hlchou/LinuxCramFS.htm

5、 郝淑凤等,基于ARM的uCLinux启动引导实现的分析[J],微计算机信息,2005,8-2,50-52页

作者简介:

卢剑翔(1978-),男,广西玉林人,西南科技大学在读硕士研究生;主要研究方向:嵌入式操作系统。

刘成安(1965-),男,西南科技大学副教授,硕士生导师;主要研究方向:开发与应用。

胡和智(1976-),男,陕西商南人,河北工业大学廊坊分院教师,主要研究方向:集成电路设计与制造。

刘振刚(1981-),男,山东青岛,西南科技大学在读硕士研究生;主要研究方向:控制理论与控制工程。


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭