新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 嵌入式Linux 的Cramfs 根文件系统配置的解决方案

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

作者:时间:2010-12-12来源:网络收藏

  初始化脚本类,包括/etc/init.d 和/etc/rc/init.d 等,它们包含一些服务类 程序及启动脚本。

  根系统对挂载系统的主要由两个文件决定,即fstab、init.d/rcS[3],fstab 描述了当前系统中已被定义好的可以被系统挂载的文件系统,init.d/rcS 文件描述了系统启 动时将启动的命令、服务程序及将要挂载的的文件系统。

  由此可见,要使 根文件系统能满足应用程序的读写要求,必须在系统启动 时为应用程序挂载一个可写型的文件系统,即/etc/fstab 及/etc/init.d/rcS 文件来挂载可写 型的文件系统。

3.2 为Crmafs文件系统添加应用程序

  要发布应用程序到系统中,须将应用程序及应用程序所需要的共享库文件一起 添加到根文件系统中。根文件系统可以根据需要定制,但这样需要花费大量时间且工作量 大;也可以修改已有的根文件系统,这样可以节省大量的时间和精力,且不易出错[4]。

  以下 是以蓝海微芯LJD-2410DVK-I 开发板所提供的root.cramfs 根文件系统为基础进行修 改和的,root.cramfs 是只读型的文件系统,为了能向里边加入用户应用程序,需要将其 重新挂载、压缩及解压缩成新的目录,步骤如下:

  在root.cramfs 的相同目录下新建立一个目录,如myroot。

  在终端中执行命令:mount -o loop root.cramfs myroot, tar –cvf myroot.tar myroot。这两条 命令的功能分别是将已有的root.cramfs 以块设备的方式挂载到myroot 并将myroot 压缩为 myroot.tar。

  为不出现目录重名,将 myroot.tar 拷贝到另一目录进行解压:tar –xvf myroot.tar,解压 出来的文件夹myroot 即是即将作为根文件系统的目录,它是可读可写的。

  将已经交叉编译并调试过的用户目标程序拷贝到myroot 目录下的/usr/bin 目录下,此目 录为根文件系统中为用户程序准备的目录。同时将用户程序所需要用到的关联库文件拷贝到 myroot 目录下的/usr/lib 目录下,用户程序的关联库文件可通过ldd 命令查看,ldd 命令格式 如下:

  Ldd [选项] 文件

  选项有-v:打印ldd 的版本号;-d:执行符号重部署,并报告缺少的目标对象(只对ELF 格式适用);-r:对目标对象和函数执行重新部署,并报告缺少的目标对象和函数(只对ELF 格式适用);-h:帮助信息。

  执行如下命令来查看应用程序所关联的库:

  Ldd –v 程序名

  将交叉编译工具目录下的/3.4.1/arm-linux/lib 下的libgcc-s.so.*,libstdc++.so.6 复制到 myroot 目录下的/root/lib 目录下。

3.3 配置根文件系统

  为使 能支持应用程序的写操作,需要修改文件系统的配置文件,即/etc 目录下的 文件。

  (1) 修改/etc/init.d/rcS 文件

  /etc/init.d/rcS 是 的系统初始化脚本,修改步骤如下:

  用 vi 或其它文本工具打开myroot 目录下的/etc/init.d/rcS 文件;

  在文件中增加:

  /bin/mount –n –t ramfs ramfs /mnt/yaffs(yaffs 是文件系统的一个目录);

  /bin/mkdir /mnt/yaffs/Qtopia;

  /bin/mkdir /mnt/yaffs/Qtopia/tmp。

  保存并退出 vi 或文本工具。

  根文件系统的配置如图 1 所示。


  图1 根文件系统的配置

linux操作系统文章专题:linux操作系统详解(linux不再难懂)

linux相关文章:linux教程




评论


相关推荐

技术专区

关闭