版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实训项目四-嵌入四Linux系统根文件系统制作一. 项目实施目的Ø 了解 UP-CUP2440 型实验平台Linux 系统下根文件系统结构Ø 掌握根文件系统的搭建过程Ø 掌握 busybox、mkcramfs 等工具的使用方法二. 项目主要任务Ø 使用 busybox 生成文件系统中的命令部分,使用mkcramfs 工具制作CRAMFS 格式的根文件系统。Ø 分析根文件系统 etc 目录下重要配置文件的格式及语法,熟悉根文件系统的启动过程三. 基本概念1 文件系统基本概念Linux的一个最重要特点就是它支持许多不同的文件系统。这使Linux非常
2、灵活,能够与许多其他的操作系统共存。Linux支持的常见的文件系统有:JFS、 ReiserFS、ext、ext2、ext3、ISO9660、XFS、Minx、MSDOS、UMSDOS、VFAT、NTFS、HPFS、NFS、SMB、SysV、PROC等。随着时间的推移, Linux支持的文件系统数还会增加。Linux是通过把系统支持的各种文件系统链接到一个单独的树形层次结构中,来实现对多文件系统的支持的。该树形层次结构把文件系统表示成一个整个的独立实体。无论什么类型的文件系统,都被装配到某个目录上,由被装配的文件系统的文件覆盖该目录原有的内容。该个目录被称为装配目录或装配点。在文件系统卸载时,
3、装配目录中原有的文件才会显露出来。在Linux 文件系统中,文件用i 节点来表示、目录只是包含有一组目录条目列表的简单文件,而设备可以通过特殊文件上的I/O 请求被访问。2常见的嵌入式文件系统嵌入式Linux系统一般没有大容量的磁盘,多使用flash存储器,所以多采用基于Flash(NOR和NAND)的文件系统或者RAM内存的文件系统。(1)Flash根据结构不同分为 NOR Flash和NAND Flash。基于flash的文件系统主要有:Ø jffs2:RedHat基于jffs开发的文件系统。 特点:可读写、支持数据压缩、支持哈希表的日志型文件系统,提供了崩溃掉电安全保护,提供“
4、写平衡”支持等。 缺点:不适合在体积和容量比较大的NAND Flash中使用,当文件系统已满或者快满时,因为垃圾收集的关系使它的运行速度大大放慢。Ø yaffs:专为嵌入式系统使用NAND型闪存而设计的一种日志型文件系统。 特点:1.减少了一些jffs2的功能,但是速度更快,占用内存更少,能够实现错误检测和坏块处理,能够提高文件系统的加载速度。采用多策略混合的垃圾回收算法。 2.跨平台文件系统,除了Linux还支持WinCE、pSOS、ThreadX。3.自带NAND芯片驱动,并为嵌入式系统提供直接访问文件系统的API,用户可不使用Linux中的MTD与VFS,直接对文件系统操作。也
5、可与MTD驱动程序配合使用。Ø Cramfs:Linux开发的只读的压缩文件系统,基于MTD驱动程序。 特点:速度快,效率高,保护文件系统免受破坏,提高了可靠性。 缺点:内容无法扩充。Ø Romfs:简单的、紧凑的、只读的文件系统,不支持动态擦写保存,安顺序存放数据。ucLinux通常采用本文件系统。(2)基于RAM的文件系统Ø Ramdisk:将一部分固定大小的内存当作分区来使用。它并非一个实际的文件系统,而是一种将实际的文件系统装入内存的机制,并且可以作为根文件系统。将一些经常被访问而又不会更改的文件通过Ramdisk放在内存中,可以明显的提高系统的性能。在L
6、inux的启动阶段,initrd提供了一套机制,可以将内核映像和根文件系统一起载入内存。Ø ramfs/tmpfs: Ramfs是Linus Torvalds开发的一种基于内存的文件系统,工作于虚拟文件系统(VFS)层,不能格式化,可以创建多个,在创建时可以指定其最大能使用的内存大小。(实际上VFS本质上可看成一种内存文件系统,它统一了文件在内核中的表示方式,并对磁盘文件系统进行缓冲。);Rmfs/tmpfs文件系统把所有的文件都放在RAM中,所以读/写操作发生在RAM中,可以用ramfs/tmpfs来存储一些临时性或经常要修改的数据,例如/tmp和/var目录,这样既避免了对Fla
7、sh存储器的读写损耗,也提高了数据读写速度;amfs/tmpfs相对于传统的Ramdisk的不同之处主要在于:不能格式化,文件系统大小可随所含文件内容大小变化;mpfs的一个缺点是当系统重新引导时会丢失所有数据。Ø 网络文件系统NFS (Network File System) NFS:是由Sun开发并发展起来的一项在不同机器、不同操作系统之间通过网络共享文件的技术。在嵌入式Linux系统的开发调试阶段,可以利用该技术在主机上建立基于NFS的根文件系统,挂载到嵌入式设备,可以很方便地修改根文件系统的内容。3嵌入式根文件系统 根文件系统也是一种文件系统,简单来说,根文件系统就是一种目录
8、结构,根文件系统与普通文件系统的区别在于根文件系统主要包括Linux操作系统启动所必须的目录和关键性的文件,例如Linux启动时都需要有init目录下的相关文件,在Linux挂载分区时Linux一定会找/etc/fstab这个挂载文件等,根文件系统中还包括了许多的应用程序,比如bin目录下的可执行文件,任何包括操作系统启动所必须的文件的文件系统都可以做根文件系统。 Linux启动所必须的文件系统目录结构如下: 对于用途单一的嵌入式系统,上边的一些用于多用户的目录可以省略,例如/home、/opt、/root 目录等。而/bin、/dev、/etc、/lib、/proc、/sbin 和/usr
9、目录,是几乎每个系统必备的目录,也是不可或缺的目录。生成这些目录和相关文件的方法主要有两种,可以通过手动建立相关目录和文件,也可以通过busybox工具来生成相关目录和文件。Busybox 是小型的嵌入式 Linux 系统制作 root 根文件系统时有一个常用的利器:BusyBox。Busybox 是 Debian GNU/Linux的大名鼎鼎的 Bruce Perens 首先开发,使用在 Debian 的安装程序中。后来又有许多 Debian developers 贡献力量,这其中尤推 busybox 目前的维护者 Erik Andersen,他患有癌症,可是却是一名优秀的自由软件开发者。B
10、usybox 编译出一个单个的独立执行程序,就叫做 busybox。但是它可以方便的进行配置,执行 ash shell 的功能,以及几十个各种小应用程序的功能。这其中包括有一个迷你的 vi 编辑器,以及其他诸如 sed, ifconfig,mkdir, mount, ln, ls, echo, cat . 等等这些都是一个正常的系统上必不可少的工具,但是如果我们把这些程序的原件拿过来的话,它们的体积加在一起,让人吃不消。可是 busybox 有全部的这么多功能,大小也不过 100K 左右。而且,用户还可以根据自己的需要,决定到底要在 busybox 中编译进哪几个应用程序的功能。本系统就是采用
11、busybox来制作根文件系同的。 四 .根文件系统制作步骤1重新编译配置内核,确保内核支持所选的根文件系统。rootlocalhost # cd /UP-CUP2440/SRC/kernel/linux-2.6.24.4/2、运行 make menuconfig 命令配置内核文件系统相关支持添加对CRAMFS 根文件以及YAFFS2 文件系统系统支持进入File systems ->菜单进入Miscellaneous filesystems ->菜单选择<*> Compressed ROM file system support (cramfs)支持,如图:选择<
12、;*> YAFFS2 file system support 支持,配置如下图保存退出。在前期Linux内核制作过程中,相关选项已经选择。在实验室,不需要真的重新去编译内核,只是需要学生理解,所选的根文件系统,在前期的内核编译时一定要选中相关的配置选项。3.查看已经制作好的文件系统(挂载up24402.iso)rootlocalhost /# cd /UP-CUP2440/SRC/rootfs/rootlocalhost rootfs# ls如下图所示,光盘文件里有已经制作好的根文件系统和制作根文件系统的busybox源代码。rootlocalhost rootfs# tar jxvf
13、rootfs.tar.bz2rootlocalhost /#ls 如上图所示,绿色的文件为制作根文件系统需要的工具,rootfs为根文件系统目录结构和相关内容。rootlocalhost /#cd rootfs_src4.根文件系统制作方法 (1)手动制作 建立相关目录,准备相关文件和命令,相关文件可以参考redhat的内容修改制作,相关命令需要下载源码交叉编译,这个过程非常复杂,且容易出错。常见的方式是采用busybox来制作。(2)busybox制作根文件系统 什么是Busybox?rootlocalhost /#make cleanrootlocalhost /#ls如上图,此时并没有可
14、执行的busybox程序。rootlocalhost rootfs#vi Makefile修改此目录的Makefile 文件,更改ARCH ?和CROSS_COMPILE ?=宏定义,如下:第164 行 CROSS_COMPILE ?= arm-linux-第189 行ARCH ?= arm退出保存rootlocalhost busybox-1.12.2# make menuconfig进入Busybox Settings ->选项进入Busybox Library Tuning -> 选项选中* Fancy shell prompts 支持进入Miscellaneous Util
15、ities ->选项(返回主菜单选项)去除 inotifyd 选项。退出保存设置编译 busyboxrootlocalhost busybox-1.12.2# make如上图所示,交叉编译完成后,就生成了我们需要的busybox可执行程序。这就是我们根文件系统需要的各种命令,后续通过安装命令建立命令连接。rootlocalhost busybox-1.12.2# make install成功后会在当前目录下生成 _install 目录,编译的工具也都集成在该安装目录下。rootlocalhost busybox-1.12.2# cd _install/rootlocalhost _ins
16、tall# ls可以看到_install 目录下生成了根文件系统常用的命令及工具,接下来的工作,用户可以根据需要将_install 目录下生成的命令拷贝到根文件系统相应目录下。例如:将从busybox 生成的which 命令拷贝到根文件系统目录的usr/bin 目录下,这样,我们的根文件系统就支持which 命令了。实际中我们出厂所带的根文件系统已经包含大部分常用工具及命令,以上步骤在于让用户了解根文件系统的工具及命令是如何制作出来的,以及如何添加自己需要的命令或工具集到自己的根文件系统中。4、 制作根文件系统/UP-CUP2440/SRC/rootfs/rootfs。将实验中已经提供好的根文
17、件系统目录rootfs 下的 rootfs_src 目录打包制作成CRAMFS 格式的根文件系统。rootlocalhost rootfs# cd rootfs/rootlocalhost rootfs# lsmkcramfs mkrootfs.sh rootfs_src rootfs.cramfsrootlocalhost rootfs#其中rootfs_src 根文件系统目录下已经建立好相关目录如etc、usr、bin、mnt 等rootlocalhost rootfs# ls rootfs_srcrootlocalhost rootfs#当然用户也可以将从busybox 工具中制作的相关命令及工具拷贝到此目录的相关目录下,再制作镜像文件。如果是动态编译的busybox 则还需要将生成的命令或工具所依赖的动态库拷贝进来。制作CRAMFS 根文件系统镜像。实验中已经提供了mkcramfs 制作工具以及mkrootfs.sh 脚本文件,用户只需执行mkrootfs.sh 脚本文件来使用mkcramfs 制作根文件系统镜像即可。当然也可以手动的执行命令:rootlocalhost rootfs#./mkcramfs rootfs_src rootf.cramfsrootlocalhost
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 建设申请报告范文(6篇)
- 社区的社会实践调查报告
- 政治必修四教案8篇
- 广东省广州市2024−2025学年高二上学期10月月考 数学试卷含答案
- 江西省宜春市(2024年-2025年小学五年级语文)统编版摸底考试(下学期)试卷及答案
- 二年级语文上册三单元教案
- 编制说明-《企业研发管理体系建设指南(征求意见稿)》
- 上海市市辖区(2024年-2025年小学五年级语文)人教版能力评测((上下)学期)试卷及答案
- 上海市县(2024年-2025年小学五年级语文)人教版竞赛题(上学期)试卷及答案
- 雨水回收系统技术规格书
- 【新能源汽车充电方案设计3500字(论文)】
- 深基坑开挖与支护施工监理实施细则
- GB/T 43910-2024物流仓储设备术语
- 2024年富宁县国有资本经营集团有限公司招聘笔试参考题库附带答案详解
- 多发性骨髓瘤教学查房
- JBT 7538-2016 管道用篮式过滤器
- 体育过程性评价实施方案
- MSDS中文版(锂电池电解液)
- 新版Join-In四年级上英语期中试卷
- 【客舱服务质量与空中乘务员综合素质浅论4800字(论文)】
- 2023年全媒体运营师理论考试复习题库(单选题)
评论
0/150
提交评论