arm嵌入式原理技术及应用ch-11_第1页
arm嵌入式原理技术及应用ch-11_第2页
arm嵌入式原理技术及应用ch-11_第3页
arm嵌入式原理技术及应用ch-11_第4页
arm嵌入式原理技术及应用ch-11_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2022-5-3 2010.12 陈陈 赜赜ARMARM嵌入式技术原理与应用嵌入式技术原理与应用 131356998032022-5-3 理解文件系统的概念理解文件系统的概念 掌握根文件系统制作的制作方法。掌握根文件系统制作的制作方法。2022-5-3 11.1.1 11.1.1 根文件系统的概念根文件系统的概念 通常我们把与管理文件有关的软件和数据,通常我们把与管理文件有关的软件和数据,统称为文件系统。它方便地组织管理计算机中统称为文件系统。它方便地组织管理计算机中的所有文件,为用户提供文件的操作手段和存的所有文件,为用户提供文件的操作手段和存取控制。同时,文件系统隐藏了系统中最为纷取控制。

2、同时,文件系统隐藏了系统中最为纷繁复杂的硬件设备特征,为用户以及操作系统繁复杂的硬件设备特征,为用户以及操作系统的其他子系统提供一个统一、简洁的接口,通的其他子系统提供一个统一、简洁的接口,通过文件系统,使得用户方便地使用计算机的存过文件系统,使得用户方便地使用计算机的存储、输入储、输入/输出等设备。输出等设备。 11.1 11.1 根文件系统概述根文件系统概述2022-5-3 Linux系统中把系统中把CPU、内存之外所有其他设、内存之外所有其他设备都抽象为文件来处理。进程只和文件系统打备都抽象为文件来处理。进程只和文件系统打交道,具体的细节,由设备管理部分具体实现交道,具体的细节,由设备管

3、理部分具体实现并为文件系统提供尽可能简洁统一的接口。因并为文件系统提供尽可能简洁统一的接口。因此,文件系统还同时充当着设备管理接口的角此,文件系统还同时充当着设备管理接口的角色,用户进程使用和操作具体的设备,都必须色,用户进程使用和操作具体的设备,都必须通过文件系统进行。文件系统是操作系统中与通过文件系统进行。文件系统是操作系统中与管理文件有关的所有软件和数据的集合。管理文件有关的所有软件和数据的集合。2022-5-3 Linux系统自身的文件系称为系统自身的文件系称为ext2,它也是,它也是Linux默认的文件系统。我们把默认的文件系统。我们把ext2以及以及Linux支持的文件系统称为逻辑

4、文件系统,支持的文件系统称为逻辑文件系统, 通常每一通常每一种逻辑文件系统服务于一种特定的操作系统,种逻辑文件系统服务于一种特定的操作系统,具有不同的组织结构和文件操作函数,相互之具有不同的组织结构和文件操作函数,相互之间差别很大。间差别很大。 2022-5-3 Linux在传统的逻辑文件系统的基础上,增在传统的逻辑文件系统的基础上,增加了一个称为虚拟文件系统(加了一个称为虚拟文件系统(VFS)的接口层,)的接口层,如图所示。如图所示。2022-5-3 系统中所有的设备,包括系统中所有的设备,包括: 字符设备字符设备 块设备块设备 网络设备网络设备 按照某种方式由逻辑文件系统统一管理,逻按照某

5、种方式由逻辑文件系统统一管理,逻辑文件系统为它们提供访问接口。辑文件系统为它们提供访问接口。 2022-5-3 虚拟文件系统在最上层,管理各种逻辑文件虚拟文件系统在最上层,管理各种逻辑文件系统,屏蔽了它们之间的差异,为用户命令、函系统,屏蔽了它们之间的差异,为用户命令、函数调用和内核其他部分提供访问文件和设备的统数调用和内核其他部分提供访问文件和设备的统一接口,一接口, 使得不同的逻辑文件系统按照同样的模使得不同的逻辑文件系统按照同样的模式呈现在使用者面前,对于普通用户来讲,觉察式呈现在使用者面前,对于普通用户来讲,觉察不到逻辑文件系统之间的差异,可以使用同样的不到逻辑文件系统之间的差异,可以

6、使用同样的命令来操作不同逻辑文件系统所管理的文件,可命令来操作不同逻辑文件系统所管理的文件,可以在它们之间自由地复制文件。以在它们之间自由地复制文件。 2022-5-3 根文件系统是一种特殊的文件系统。内核根文件系统是一种特殊的文件系统。内核启动的最后步骤就是挂载根文件系统,由于根启动的最后步骤就是挂载根文件系统,由于根文件系统是内核启动时挂载的第一个文件系统,文件系统是内核启动时挂载的第一个文件系统,因此根文件系统必须包括因此根文件系统必须包括Linux启动时所必须启动时所必须的目录和关键性的文件:的目录和关键性的文件: Init进程进程 Shell文件系统、网络系统等等的工具集文件系统、网

7、络系统等等的工具集系统配置文件系统配置文件链接库链接库2022-5-311.1.2 文件系统的分类 Linux支持多种文件系统,包括支持多种文件系统,包括ext2、ext3、vfat、ntfs、iso9660、jffs、romfs和和nfs等,为等,为了对各类文件系统进行统一管理,了对各类文件系统进行统一管理,Linux引入了引入了虚拟文件系统虚拟文件系统VFS(Virtual File System),为各,为各类文件系统提供一个统一的操作界面和应用编程类文件系统提供一个统一的操作界面和应用编程接口。接口。 2022-5-3 嵌入式系统文件系统的层次示意图如图所示。嵌入式系统文件系统的层次示

8、意图如图所示。2022-5-3 Linux启动时,第一个必须挂载的是根文件启动时,第一个必须挂载的是根文件系统;系统; 若系统不能从指定设备上挂载根文件系统,若系统不能从指定设备上挂载根文件系统,则系统会出错而退出启动。则系统会出错而退出启动。 之后可以自动或手动挂载其他的文件系统。之后可以自动或手动挂载其他的文件系统。因此,一个系统中可以同时存在不同的文件系统。因此,一个系统中可以同时存在不同的文件系统。 2022-5-3 不同的文件系统类型有不同的特点,因而根据不同的文件系统类型有不同的特点,因而根据存储设备的硬件特性、系统需求等有不同的应用场存储设备的硬件特性、系统需求等有不同的应用场合

9、。合。 在嵌入式在嵌入式Linux应用中,主要的存储设备为应用中,主要的存储设备为RAM(DRAM, SDRAM)和和ROM(常采用常采用FLASH存存储器储器),常用的基于存储设备的文件系统类型包括:,常用的基于存储设备的文件系统类型包括:jffs2, yaffs, cramfs, romfs, ramdisk, ramfs/tmpfs等。等。2022-5-3 1. 基于基于FLASH的文件系统的文件系统 Flash(闪存闪存)作为嵌入式系统的主要存储媒作为嵌入式系统的主要存储媒介,有其自身的特性。介,有其自身的特性。Flash的写入操作只能把的写入操作只能把对应位置的对应位置的1修改为修改

10、为0,而不能把,而不能把0修改为修改为1(擦擦 除除Flash就是把对应存储块的内容恢复为就是把对应存储块的内容恢复为1),因此,因此,一般情况下,向一般情况下,向Flash写入内容时,需要先擦除写入内容时,需要先擦除对应的存储区间,这种擦除是以块对应的存储区间,这种擦除是以块(block)为为 单单位进行的。位进行的。 2022-5-3 闪存主要有闪存主要有NOR和和NAND两种技术。两种技术。Flash存储器的擦写次数是有限的,存储器的擦写次数是有限的,NAND闪存还有闪存还有特殊的硬件接口和读写时序。因此,必须针对特殊的硬件接口和读写时序。因此,必须针对Flash的硬件特性设计符合应用要

11、求的文件系统;的硬件特性设计符合应用要求的文件系统;传统的文件系统如传统的文件系统如ext2等,用作等,用作Flash的文件系的文件系统会有诸多弊端。统会有诸多弊端。2022-5-3 在嵌入式在嵌入式Linux下,下,MTD(Memory Technology Device,存储技术设备存储技术设备)为底层硬件为底层硬件(闪存闪存)和上层和上层(文件系统文件系统)之间提供一个统一的抽象之间提供一个统一的抽象接口,即接口,即Flash的文件系统都是基于的文件系统都是基于MTD驱动层驱动层的的. 使用使用MTD驱动程序的主要优点在于,它是专驱动程序的主要优点在于,它是专门针对各种非易失性存储器门针

12、对各种非易失性存储器(以闪存为主以闪存为主)而设计而设计的,因而它对的,因而它对Flash有有 更好的支持、管理和基于更好的支持、管理和基于扇区的擦除、读扇区的擦除、读/写操作接口。写操作接口。2022-5-3 一块一块Flash芯片可以被划分为多个分区,芯片可以被划分为多个分区,各分区可以采用不同的文件系统;各分区可以采用不同的文件系统; 两块两块Flash芯片也可以合并为一个分区使芯片也可以合并为一个分区使用,采用一个文件系统。即文件系统是针对于用,采用一个文件系统。即文件系统是针对于存储器分区而言的,而非存储芯片。存储器分区而言的,而非存储芯片。2022-5-3 1) JFFS2 JFF

13、S文件系统最早是由瑞典文件系统最早是由瑞典Axis Communications公司基于公司基于Linux2.0的内核为的内核为嵌入式系统开发的文件系统。嵌入式系统开发的文件系统。JFFS2 (Journalling Flash FileSystem v2,JFFS2) 是是RedHat公司基于公司基于JFFS开发的闪存文件系统,开发的闪存文件系统,最初是针对最初是针对RedHat公司的嵌入式产品公司的嵌入式产品eCos开开发的嵌入式文件系统,所以发的嵌入式文件系统,所以JFFS2也可以用在也可以用在Linux, uCLinux中。中。 2022-5-3 主要用于主要用于NOR型闪存,基于型闪

14、存,基于MTD驱动层,驱动层,特点是:特点是: 可读写的、支持数据压缩的、基于哈希表可读写的、支持数据压缩的、基于哈希表的日志型文件系统,并提供了崩溃的日志型文件系统,并提供了崩溃/掉电安全保掉电安全保护,提供护,提供“写平衡写平衡”支持等。缺点主要是当文支持等。缺点主要是当文件系统已满或接近满时,因为垃圾收集的关系件系统已满或接近满时,因为垃圾收集的关系而使而使JFFS2的运行速度大大放慢。的运行速度大大放慢。2022-5-3 2) YAFFSYAFFS(Yet Another Flash File System, YAFFS)/ YAFFS2是专为嵌入式系统使用是专为嵌入式系统使用NAND

15、型型闪存而设计的一种日志型文件系统。与闪存而设计的一种日志型文件系统。与YAFFS 2相比,它减少了一些功能相比,它减少了一些功能(例如不支持数据压缩例如不支持数据压缩),所以速度更快,挂载时间很短,对内存的占用较所以速度更快,挂载时间很短,对内存的占用较小。小。 另外,它还是跨平台的文件系统,除了另外,它还是跨平台的文件系统,除了Linux和和eCos,还支持,还支持WinCE, pSOS和和ThreadX等。等。2022-5-3YAFFS/YAFFS2自带自带NAND芯片的驱动,并且为芯片的驱动,并且为嵌入式系统提供了直接访问文件系统的嵌入式系统提供了直接访问文件系统的API,用户,用户可

16、以不使用可以不使用Linux中的中的MTD与与VFS,直接对文件,直接对文件系统操作。当然,系统操作。当然,YAFFS也可与也可与MTD驱动程序配驱动程序配合使用。合使用。 YAFFS与与YAFFS2的主要区别在于,前者仅的主要区别在于,前者仅支持小页支持小页(512 Bytes) NAND闪存,后者则可支持闪存,后者则可支持大页大页(2KB) NAND闪存。同时,闪存。同时,YAFFS2在内存空在内存空间占用、垃圾回收速度、读间占用、垃圾回收速度、读/写速度等方面均有大写速度等方面均有大幅提升。幅提升。2022-5-3 3) CramfsCramfs(Compressed ROM File

17、System, Cramfs)是是Linux的创始人的创始人 Linus Torvalds参与开发的一种只读的压缩文件系统。它参与开发的一种只读的压缩文件系统。它也基于也基于MTD驱动程序。驱动程序。 在在Cramfs文件系统中,每一页文件系统中,每一页(4KB)被单独压缩,可以随机页访问,其压缩比被单独压缩,可以随机页访问,其压缩比高达高达2:1,为嵌入式系统节省大量的为嵌入式系统节省大量的Flash存存储空间,使系统可通过更低容量的储空间,使系统可通过更低容量的FLASH存储相同的文件,从而降低系统成本。存储相同的文件,从而降低系统成本。2022-5-3Cramfs文件系统以压缩方式存储,

18、在运行时解压文件系统以压缩方式存储,在运行时解压缩,所以不支持应用程序以缩,所以不支持应用程序以XIP方式运行,所有的方式运行,所有的应用程序要求被拷到应用程序要求被拷到RAM里去运行,但这并不代里去运行,但这并不代表比表比Ramfs需求的需求的RAM空间要大一点,因为空间要大一点,因为Cramfs是采用分页压缩的方式存放档案,在读取是采用分页压缩的方式存放档案,在读取档案时,不会一下子就耗用过多的内存空间,只针档案时,不会一下子就耗用过多的内存空间,只针对目前实际读取的部分分配内存,尚没有读取的部对目前实际读取的部分分配内存,尚没有读取的部分不分配内存空间,当我们读取的档案不在内存时,分不分

19、配内存空间,当我们读取的档案不在内存时,Cramfs文件系统自动计算压缩后的资料所存的位文件系统自动计算压缩后的资料所存的位置,再即时解压缩到置,再即时解压缩到RAM中。中。2022-5-3 另外,它的速度快,效率高,其只读的特另外,它的速度快,效率高,其只读的特点有利于保护文件系统免受破坏,提高了系统点有利于保护文件系统免受破坏,提高了系统的可靠性。的可靠性。 由于以上特性,由于以上特性,Cramfs在嵌入式系统中在嵌入式系统中应用广泛。但是它的只读属性同时又是它的一应用广泛。但是它的只读属性同时又是它的一大缺陷,使得用户无法对其内容对进扩充。大缺陷,使得用户无法对其内容对进扩充。 Cram

20、fs映像通常是放在映像通常是放在Flash中,但是也中,但是也能放在别的文件系统里,使用能放在别的文件系统里,使用loopback 设备设备可以把它安装别的文件系统里。可以把它安装别的文件系统里。2022-5-3 4) Romfs 传统型的传统型的Romfs文件系统是一种简单的、紧文件系统是一种简单的、紧凑的、只读的文件系统,不支持动态擦写保存,凑的、只读的文件系统,不支持动态擦写保存,按顺序存放数据,因而支持应用程序以按顺序存放数据,因而支持应用程序以 XIP(eXecute In Place,片内运行,片内运行)方式运行,在方式运行,在系统运行时,节省系统运行时,节省RAM空间。空间。uC

21、linux系统通常系统通常采用采用Romfs文件系统。文件系统。 2022-5-3 其他文件系统:其他文件系统:fat/fat32也可用于实际嵌入式系也可用于实际嵌入式系统的扩展存储器统的扩展存储器(例如例如PDA, Smartphone, 数码相数码相机等的机等的SD卡卡),这主要是为了更好的与最流行的,这主要是为了更好的与最流行的Windows桌面操作系统相兼容。桌面操作系统相兼容。ext2也可以作为也可以作为嵌入式嵌入式Linux的文件系统,不过将它用于的文件系统,不过将它用于 FLASH闪存会有诸多弊端。闪存会有诸多弊端。2022-5-32. 基于基于RAM的文件系统的文件系统 1)

22、Ramdisk Ramdisk是将一部分固定大小的内存当作分区是将一部分固定大小的内存当作分区来使用。它并非一个实际的文件系统,而是一种将来使用。它并非一个实际的文件系统,而是一种将实际的文件系统装入内存的机制,并且可以作为根实际的文件系统装入内存的机制,并且可以作为根 文件系统。将一些经常被访问而又不会更改的文件文件系统。将一些经常被访问而又不会更改的文件(如只读的根文件系统如只读的根文件系统)通过通过Ramdisk放在内存中,放在内存中,可以明显地提高系统的性能。可以明显地提高系统的性能。 在在Linux的启动阶段,的启动阶段,initrd提供了一套机制,提供了一套机制,可以将内核映像和根

23、文件系统一起载入内存。可以将内核映像和根文件系统一起载入内存。2022-5-32)ramfs/tmpfs Ramfs是是Linus Torvalds开发的一种基于内存开发的一种基于内存的文件系统,工作于虚拟文件系统的文件系统,工作于虚拟文件系统(VFS)层,不能层,不能格式化,可以创建多个,在创建时可以指定其最大格式化,可以创建多个,在创建时可以指定其最大能使用的内存大能使用的内存大 小。小。(实际上,实际上,VFS本质上可看成本质上可看成一种内存文件系统,它统一了文件在内核中的表示一种内存文件系统,它统一了文件在内核中的表示方式,并对磁盘文件系统进行缓冲。方式,并对磁盘文件系统进行缓冲。)2

24、022-5-3 Ramfs/tmpfs文件系统把所有的文件都放在文件系统把所有的文件都放在RAM中,所以读中,所以读/写操作发生在写操作发生在RAM中,可以用中,可以用ramfs/tmpfs来存储一些临时性或经常要修改的数来存储一些临时性或经常要修改的数据,例如据,例如/tmp和和/var目录,这样既避免了对目录,这样既避免了对Flash存存储器的读写损耗,也提高了数据读写速度。储器的读写损耗,也提高了数据读写速度。2022-5-3 Ramfs/tmpfs相对于传统的相对于传统的Ramdisk的不同的不同之处主要在于:之处主要在于: 不能格式化,文件系统大小可随所含文件内容不能格式化,文件系统

25、大小可随所含文件内容大小变化。大小变化。 Tmpfs的一个缺点是当系统重新引导时会丢失的一个缺点是当系统重新引导时会丢失所有数据。所有数据。2022-5-3 3. 网络文件系统网络文件系统NFS (Network File System) NFS(Network File System, NFS)是由是由Sun开发并发展起来的一项在不同机器、不同操作开发并发展起来的一项在不同机器、不同操作系统之间通过网络共享文件的技术。在嵌入式系统之间通过网络共享文件的技术。在嵌入式Linux系统的开发调试阶段,可以利用该技术系统的开发调试阶段,可以利用该技术在主机上建立基于在主机上建立基于NFS的根文件系统

26、,挂载到的根文件系统,挂载到嵌入式设备,可以很方便地修改根文件系统的嵌入式设备,可以很方便地修改根文件系统的内容。内容。2022-5-3 以上讨论的都是基于存储设备的文件系统以上讨论的都是基于存储设备的文件系统(memory-based file system),它们都可用作,它们都可用作Linux的根文件系统。的根文件系统。 实际上,实际上,Linux还支持逻辑的或伪文件系统还支持逻辑的或伪文件系统(logical or pseudo file system),例如,例如procfs(proc文件系统文件系统),用于获取系统信息,以及,用于获取系统信息,以及devfs(设备文件系统设备文件系

27、统)和和sysfs,用于维护设备文件。,用于维护设备文件。2022-5-311.1.3 Linux根文件系统目录结构 根文件系统必须要包含以下的目录:根文件系统必须要包含以下的目录:/dev、/bin、/usr、/sbin、/lib、/etc、/proc、/sys。/dev 是是devfs(设备文件系统)或者(设备文件系统)或者udev 的挂在的挂在点所在。点所在。 在使用在使用devfs 的内核里如果没有的内核里如果没有/dev,根本见,根本见不到不到Shell 启动的信息,因为内核找不到启动的信息,因为内核找不到/dev/console; 在使用在使用udev 的系统里,也事先需要在的系统

28、里,也事先需要在/dev 下下建立建立console 和和null 这两个节点。这两个节点。2022-5-3/bin、/usr/bin、/usr/sbin、/sbin用于存放二用于存放二进制可执行文件。进制可执行文件。/lib 用于存放动态链接库。该目录下的主要内用于存放动态链接库。该目录下的主要内容:容:glibc链接库,存放系统必要的动态链接库,链接库,存放系统必要的动态链接库,支持系统的正常启动。完整说明参见支持系统的正常启动。完整说明参见glibc使使用手册,相应的连接库可以从编译器的用手册,相应的连接库可以从编译器的lib目录目录下拷取。下拷取。2022-5-3/etc 是用来存放初

29、始化脚本和其他配置文件的。是用来存放初始化脚本和其他配置文件的。包含以下主要内容:包含以下主要内容:1)fstab 挂载文件系统的配置文件挂载文件系统的配置文件2)passwd Password文件文件3)inetd.conf Inetd守护进程的配置文件守护进程的配置文件4)groupGroup文件文件5)init.d/rcS 缺省的缺省的 sysinit 脚本脚本2022-5-3/proc提供内核和进程信息的提供内核和进程信息的proc文件系统。文件系统。/sys 用于挂载用于挂载“sysfs 文件系统文件系统”。下面的目录在嵌入式下面的目录在嵌入式Linux上为可选的。上为可选的。/bo

30、ot 引导加载程序使用的静态文件引导加载程序使用的静态文件/home 用户主目录用户主目录/mnt 临时挂载的文件系统的挂载点临时挂载的文件系统的挂载点/opt 附加软件的安装目录附加软件的安装目录2022-5-3/root root用户主目录用户主目录/sbin 必要的系统管理员命令必要的系统管理员命令/tmp 临时文件目录临时文件目录/usr 大多数用户使用的应用程序和文件目大多数用户使用的应用程序和文件目录录/var 监控程序和工具程序存放的可变数据监控程序和工具程序存放的可变数据2022-5-3Linux文件存放原则:文件存放原则: 1)/etc用来存放全局配置文件。用来存放全局配置文

31、件。 2)/dev用来存放设备文件信息,设备用来存放设备文件信息,设备名可以作为符号链接定位在名可以作为符号链接定位在/dev中或中或/dev的子目录中的其他存在设备。的子目录中的其他存在设备。3)/或或/boot存放操作系统核心。存放操作系统核心。 4)/lib存放库文件存放库文件 5)/bin、/sbin、/usr存放系统编译后存放系统编译后的可执行文件。的可执行文件。2022-5-311.2.1 Busybox1.Busybox概念概念 Busybox被形象的称为嵌入式被形象的称为嵌入式linux系统中的瑞系统中的瑞士军刀,可以从这个称呼中看到士军刀,可以从这个称呼中看到busybox是

32、一个集是一个集多种功能于一身的东西,它将许多常用的多种功能于一身的东西,它将许多常用的UNIX命令命令和工具结合到了一个单独的可执行程序中。虽然与和工具结合到了一个单独的可执行程序中。虽然与相应的相应的GNU工具比较起来,工具比较起来,busybox所提供的功能所提供的功能和参数略少,但在比较小的系统(例如启动盘)或和参数略少,但在比较小的系统(例如启动盘)或者嵌入式系统中,已经足够了。者嵌入式系统中,已经足够了。11.2 11.2 根文件系统制作根文件系统制作2022-5-3 Busybox在设计上就充分考虑了硬件资源在设计上就充分考虑了硬件资源受限的特殊工作环境。它采用一种很巧妙的办受限的

33、特殊工作环境。它采用一种很巧妙的办法减少自己的体积:所有的命令都通过法减少自己的体积:所有的命令都通过“插件插件”的方式集中到一个可执行文件中的方式集中到一个可执行文件中,在实际应用在实际应用过程中通过不同的符号链接来确定到底要执行过程中通过不同的符号链接来确定到底要执行哪个操作。哪个操作。 2022-5-3 例如最终生成的可执行文件为例如最终生成的可执行文件为busybox,当为,当为它建立一个符号链接它建立一个符号链接ls的时候的时候,就可以通过执行这就可以通过执行这个新命令实现列目录的功能。个新命令实现列目录的功能。 采用单一执行文件的方式最大限度地共享了采用单一执行文件的方式最大限度地

34、共享了程序代码程序代码,甚至连文件头、内存中的程序控制块甚至连文件头、内存中的程序控制块等其他操作系统资源都共享了,对于资源比较紧等其他操作系统资源都共享了,对于资源比较紧张的系统来说,是最合适不过了。张的系统来说,是最合适不过了。2022-5-32.Busybox的编译的编译 Busybox的编译过程与内核的编译过程很接近,的编译过程与内核的编译过程很接近,都是先都是先make menuconfig进行配置,然后在进行配置,然后在make进行编译。进行编译。 1)从)从http:/ 2)解压)解压busybox-1.13.0tar.bz2, 使用命令:使用命令: tar jxvf busyb

35、ox-1.13.0.tar.bz2 3)进入)进入busybox目录,修改目录,修改Makefile,在,在164行行 CROSS_COMPILE=arm-linux-。 2022-5-34)Make menuconfig进行配置,可以直接调用我们进行配置,可以直接调用我们2410板子配置好的菜单板子配置好的菜单config_my2410,也可以参考配置好的,也可以参考配置好的config_my2410菜单,自己一步步配置菜单,自己一步步配置. 2022-5-32022-5-35)配置好以后)配置好以后,执行:执行:make & make install,进进行安装行安装#make #make

36、 install 执行该命令后,在执行该命令后,在busybox目录下生成目录下生成_install文件夹。如下:文件夹。如下:2022-5-3注意:注意:_install目录下面生成目录下面生成4个文件,如下:个文件,如下:2022-5-3 6)新建一个目录)新建一个目录root-my2410,把,把busybox-1.13.0/_install/目录下生成:目录下生成:bin、linuxrc、sbin、usr复制过来,并且在该目录下创建文件系统所需复制过来,并且在该目录下创建文件系统所需要的其他目录。要的其他目录。 #mkdir root-my2410 #cp -rf busybox-1.

37、13.0/_install/* /root-my2410 #cd root-/ #mkdir dev etc home lib mnt opt proc tmp var www 2022-5-3 向各目录中添加文件系统所需要的目录或文件,向各目录中添加文件系统所需要的目录或文件,没有提到的就不用添加。这里要注意各种文件的权没有提到的就不用添加。这里要注意各种文件的权限,建议都改为限,建议都改为777,命令:,命令:#chmod 777 文件名。文件名。2022-5-3dev目录,创建两个设备文件:目录,创建两个设备文件: #mknod console c 5 1 #mknod

38、null c 1 3lib目录:这个里面放的都是库文件,直接从目录:这个里面放的都是库文件,直接从交叉编译器的库文件目录中拷贝过来:交叉编译器的库文件目录中拷贝过来: #cp -f /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/lib/*so*/ /my2410_root/lib/ -a2022-5-3 7) 使用使用yaffs制作工具编译构建好的文件系统。制作工具编译构建好的文件系统。 先解压先解压mkyaffs2image.tgz(这个工具我们自己(这个工具我们自己做好,源码包的来源我们在试验教材详细介绍),做好,源码包的来源我

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论