LINUX文件系统制作详细
Linux内核移植+根文件系统制作+触摸屏

第一章移植内核1.1 Linux内核基础知识在动手进行Linux内核移植之前,非常有必要对Linux内核进行一定的了解,下面从Linux 内核的版本和分类说起。
1.1.1 Linux版本Linux内核的版本号可以从源代码的顶层目录下的Makefile中看到,比如2.6.29.1内核的Makefile中:VERSION = 2PATCHLEVEL = 6SUBLEVEL = 29EXTRAVERSION = .1其中的“VERSION”和“PATCHLEVEL”组成主版本号,比如2.4、2.5、2.6等,稳定版本的德主版本号用偶数表示(比如2.6的内核),开发中的版本号用奇数表示(比如2.5),它是下一个稳定版本内核的前身。
“SUBLEVEL”称为次版本号,它不分奇偶,顺序递增,每隔1~2个月发布一个稳定版本。
“EXTRAVERSION”称为扩展版本号,它不分奇偶,顺序递增,每周发布几次扩展本版号。
1.1.2 什么是标准内核按照资料上的习惯说法,标准内核(或称基础内核)就是指主要在/维护和获取的内核,实际上它也有平台属性的。
这些linux内核并不总是适用于所有linux支持的体系结构。
实际上,这些内核版本很多时候并不是为一些流行的嵌入式linux系统开发的,也很少运行于这些嵌入式linux系统上,这个站点上的内核首先确保的是在Intel X86体系结构上可以正常运行,它是基于X86处理器的内核,如对linux-2.4.18.tar.bz2的配置make menuconfig时就可以看到,Processor type and features--->中只有386、486、586/K5/5x86/6x86/6x86MX、Pentium-Classic、Pentium-MMX、Pentium-Pro/Celeron/Pentium-II、Pentium-III/Celeron(Coppermine)、Pentium-4、K6/K6-II/K6-III 、Athlon/Duron/K7 、Elan 、Crusoe、Winchip-C6 、Winchip-2 、Winchip-2A/Winchip-3 、CyrixIII/C3 选项,而没有类似Samsun 2410等其他芯片的选择。
Linux 创建文件系统

Linux 创建文件系统
创建文件系统一般步骤为:首先添加一块新的硬盘;然后,使用fdisk 命令创建分区表;最后使用mkfs 命令为指定的分区创建文件系统。
在虚拟机中首先添加一块新的虚拟磁盘
创建完成自后启动虚拟机
查看一下添加的磁盘:显示已经创建成功接下来再输入fdisk /dev/hdb 对此磁盘进行操作,执行自后跳出此页面
接着我们输入m:指帮助列表,执行之后:
输入t :显示当前磁盘的分区表,执行
“No partition is defined yet!”的含义是“没有分区的定义”。
之后输入n进行创建分区
出现两个选项“primaty partition”的翻译是主分区exetended 的翻译是扩展的意思可理解为扩展分区,选择主分区输入p
输入之后写上分区号,之后为他加上容量,再次按回车键
输入n 新建一个扩展分区输入e ,分区号2 其容量100M
再次创建分区,创建逻辑分区,输入l 为其加上分区号5(逻辑分区的区号从5 开始,应为1-4 是扩展分区和主分区的分区号,所以逻辑分区要从5开始)然后加上容量!
自后输入w保存退出;之后用mkfs分区进行创建文件系统;
成功自后就可以显示分区的情况了,
文件系统创建完毕!。
最小的Linux操作系统制作过程详解

最小的Linux操作系统制作过程详解一,什么是BabyLinuxBabyLinux不是一个完整的发行版,他是利用原有的一套完整的linux系统的内核原代码和编译工具,利用busybox内建的强大功能,在一张软盘上做的一个很小的linux系统。
他具备一个linux系统的基本特征,支持linux系统最常用的一百多个命令,支持多种文件系统,支持网络等等,你可以把他当做一张linux 起动盘和修复盘来用,你也可以把他当做一个静态路由的路由器软件,当然,你也可以把他当做一个linux玩具,向你的朋友炫耀linux可以做的多么小。
我把他叫做BabyLinux因为他很小巧,小的很可爱,像一个刚刚出生的小baby。
二.为什么要作这样一个linux先说说我一开始的想法,当我一开始接触linux的时候,看到书上说,linux 通常安装只需要60M左右的空间,但是我发现装在我硬盘上的Redhat 6.0确要占据好几百M的空间。
为什么我的linux这么大呢? 后来我发现,装在我机器上的那么多东西只有不到30%是我平时常用的,还有30%是我极少用到的,另外的40%基本上是不用的。
于是,我和大多数初学者一样,开始抱怨,为什么linux 不能做的精简一点呢?于是,我萌发了自己裁减系统的想法。
可惜那个时候我还没有听说过有LFS和Debain。
等到我积累了足够的linux知识后,我开始制作这样一个小系统。
制作这样一个小系统最大的意义在于,你可以通过制作系统了解linux的启动过程,学会ramdisk的使用,让你在短时间内学到更多的linux知识。
当然,你会得到很大的乐趣。
这个项目只是做一个具有基本特征的linux系统,如果你想自己做一个具有完整功能的linux,请阅读Linux From Scratch (LFS)文档。
三,什么人适合读这篇文档如果你是一个linux爱好者,并且很想了解linux的启动过程和系统的基本结构,而且是一个喜欢动手研究小玩意的人,那么这个文档可以满足你的需求。
vmlinux生成流程

vmlinux生成流程vmlinux是Linux内核的可执行文件,它是内核源代码经过编译、链接等一系列处理后生成的。
下面我们将详细介绍vmlinux生成的流程。
1. 内核源代码编译vmlinux的生成过程首先需要对Linux内核的源代码进行编译。
编译器将源代码翻译成机器可以执行的目标代码,生成一系列的中间文件。
在编译过程中,需要注意选择合适的编译选项,以及处理一些与平台相关的代码。
2. 汇编代码生成在编译过程中,还会生成一些汇编代码。
汇编代码是与机器硬件直接相关的代码,它负责处理底层的硬件操作。
汇编代码一般保存在以".S"为后缀的文件中。
3. 链接过程编译完源代码和汇编代码后,需要进行链接操作。
链接器将各个模块的目标代码组合在一起,解析符号引用,生成最终的可执行文件。
在链接过程中,还需要处理一些与库相关的操作,如动态链接库和静态链接库的链接。
4. 符号表生成在链接过程中,还会生成符号表。
符号表是一个记录了各个符号(函数、变量等)地址和大小的表格,它有助于调试和动态加载等操作。
符号表一般保存在可执行文件的调试信息中。
5. 优化处理在生成vmlinux的过程中,还需要进行一些优化处理。
优化处理旨在提高代码的执行效率,减少资源占用。
优化处理涉及到很多技术,如代码折叠、循环展开、指令调度等。
6. 生成vmlinux经过以上的编译、汇编、链接和优化处理,最终可以生成vmlinux文件。
vmlinux是一个可执行的二进制文件,它包含了Linux内核的所有代码和数据。
vmlinux可以被直接加载到内存中执行,成为一个运行的操作系统。
总结:vmlinux的生成过程经历了源代码编译、汇编代码生成、链接过程、符号表生成、优化处理等多个阶段。
通过这些处理,我们可以得到一个完整的可执行的Linux内核文件。
vmlinux的生成过程是复杂而严谨的,需要编译器、链接器等工具的支持,同时也需要开发人员对内核源代码和底层硬件有深入的理解。
linux 文件系统的组成

linux 文件系统的组成Linux文件系统是Linux操作系统中的一种重要组成部分,它负责管理和组织计算机上的文件和目录。
本文将介绍Linux文件系统的组成,包括文件、目录、文件权限、文件链接和文件系统结构等内容。
一、文件文件是存储在计算机中的数据单元,可以是文本文件、图像文件、音频文件等各种类型。
在Linux系统中,文件以字节序列的形式存储在磁盘上,每个文件都有一个唯一的名称和相应的扩展名。
文件可以被用户创建、读取、写入和删除。
二、目录目录是用于组织和管理文件的容器,它可以包含文件和其他目录。
在Linux系统中,目录以树状结构组织,顶层目录为根目录(/),其他目录都是根目录的子目录。
用户可以通过目录的路径来定位和访问文件,例如“/home/user/file.txt”表示根目录下的home目录下的user目录下的file.txt文件。
三、文件权限Linux文件系统使用权限来控制对文件的访问和操作。
每个文件都有一个所有者和一个所属组,同时还可以设置其他用户的访问权限。
权限分为读(r)、写(w)和执行(x)三种,分别表示对文件的读取、写入和执行操作。
文件权限可以通过命令“ls -l”来查看和修改。
四、文件链接文件链接是指在文件系统中创建一个指向另一个文件或目录的链接。
在Linux系统中,有两种类型的链接:硬链接和软链接。
硬链接是指多个文件共享相同的物理存储空间,它们具有相同的inode(索引节点)和数据块。
软链接是一个特殊的文件,它包含了指向另一个文件或目录的路径,软链接的inode指向原始文件或目录的inode。
五、文件系统结构Linux文件系统采用分层结构来组织文件和目录。
最上层是根目录(/),包含了系统的所有文件和目录。
在根目录下有一些重要的系统目录,如bin目录存放可执行文件,etc目录存放系统配置文件,home目录存放用户的个人文件等。
此外,Linux文件系统还支持挂载(mount)功能,可以将其他存储设备(如硬盘、光盘、USB 设备)挂载到文件系统的某个目录下,使其成为文件系统的一部分。
initramfs 生成过程

initramfs 生成过程initramfs 是一个用于引导 Linux 系统的初始内存文件系统。
它包含了用于引导过程中所需的关键文件和工具,例如驱动程序、文件系统工具等。
initramfs 的生成过程可以分为几个关键步骤。
首先,生成 initramfs 的过程通常是由操作系统安装程序或者更新程序自动完成的。
在安装或更新 Linux 内核时,系统会自动构建 initramfs。
但是,如果需要手动生成 initramfs,可以通过以下步骤完成:1. 收集必要的文件和工具,生成 initramfs 首先需要收集引导过程中所需的文件和工具,包括设备驱动程序、文件系统工具、初始化脚本等。
这些文件通常位于系统的 /lib 目录下。
2. 创建临时目录,在生成 initramfs 的过程中,需要创建一个临时目录来存放生成的文件系统内容。
3. 打包文件系统,将收集到的文件和工具打包成一个 cpio 归档文件。
这个归档文件将会成为 initramfs 的内容。
4. 压缩归档文件,对生成的 cpio 归档文件进行压缩,通常使用 gzip 或者 xz 等压缩工具进行压缩,以减小 initramfs 的体积。
5. 将压缩后的归档文件重命名为 initramfs 文件,生成的压缩归档文件需要被重命名为 initramfs 文件,并放置在系统的/boot 目录下。
需要注意的是,生成 initramfs 的具体步骤可能会因不同的Linux 发行版而有所差异,例如使用不同的打包工具或压缩工具。
因此,在手动生成 initramfs 时,最好参考所使用 Linux 发行版的官方文档或者社区指南,以确保按照正确的步骤进行操作。
总的来说,生成 initramfs 的过程涉及到文件收集、打包、压缩和命名等步骤,最终生成的 initramfs 文件将会包含引导 Linux 系统所需的关键文件和工具,以确保系统能够成功引导到正常运行状态。
vmlinux生成流程

vmlinux生成流程vmlinux是Linux内核的可执行文件,它包含了全部的内核代码和数据。
在编译过程中,一系列的工具和步骤是必需的来生成vmlinux。
下面我将详细介绍vmlinux生成的流程。
1.运行配置脚本:首先,在编译内核之前,我们需要为当前的目标平台运行配置脚本。
这个脚本根据目标平台的特性和需求来设置编译器选项、模块、硬件支持等。
2.构建Makefile:配置脚本完成后,我们需要用一个叫做Makefile的文件来描述整个编译过程。
Makefile中包含了编译内核所需的指令和依赖关系。
3.编译内核源代码:接下来,使用Makefile来编译内核源代码。
在编译过程中,所有的C代码将被编译成汇编代码,然后再将汇编代码转换为目标平台的机器代码。
在这个过程中,编译器会进行代码优化,并生成中间文件。
4.链接内核目标文件:一旦所有的内核源代码都被编译完毕,下一步是将这些目标文件链接成一个可执行文件。
这个过程将会把所有的模块和函数库以及其他必要的文件进行连接。
5.生成vmlinux:链接过程完成后,将会生成vmlinux文件。
vmlinux是一个非常庞大的文件,它包含了整个内核的代码和数据。
需要注意的是,生成的vmlinux并不是一个可以直接在硬件上运行的文件。
它是一个供调试和运行时跟踪的文件,因为vmlinux中包含了很多符号和调试相关的信息。
要将vmlinux文件转换为可以在硬件上运行的内核镜像,还需要进行一些额外的步骤。
6.生成内核镜像:将vmlinux文件转换为可以在硬件上运行的内核镜像的过程称为镜像化。
这个过程包括压缩、转换格式、添加头部等操作,其目的是将vmlinux文件转化为可以被引导加载器和硬件识别的文件格式。
最常见的格式是bzImage和uImage。
7.安装内核:将生成的内核镜像安装到目标系统中。
这通常包括将内核镜像复制到引导分区或存储设备的指定位置,并修改引导加载器的配置文件以引导新内核。
Linux操作系统的编译和安装

Linux操作系统的编译和安装在正文规定的字数限制下,为了准确满足标题描述的内容需求,并确保内容排版整洁美观、语句通顺、全文表达流畅且无影响阅读体验的问题,本文将按照以下格式进行写作:一、简介Linux操作系统是一种开源的、自由的Unix-like操作系统,它广泛应用于各种领域,包括服务器、嵌入式设备等。
本文将重点介绍Linux 操作系统的编译和安装过程。
二、编译准备1. 下载源代码在编译Linux操作系统之前,首先需要从官方网站下载Linux内核的源代码包。
2. 安装必要的依赖软件在编译过程中,需要安装一些必要的软件和工具,如编译器、构建工具等。
三、编译步骤1. 解压源代码包使用解压命令将下载的源代码包解压到指定目录。
2. 配置编译选项进入源代码目录,并运行配置命令,根据需要选择不同的编译选项。
3. 执行编译命令运行编译命令开始编译操作系统内核,这个过程可能需要一段时间。
四、安装步骤1. 安装编译生成的内核镜像文件将编译生成的内核镜像文件复制到合适的位置,并修改相关配置文件以引导新编译的内核。
2. 安装相关系统文件运行安装命令,将其他必要的系统文件复制到适当的位置。
五、系统配置1. 修改引导加载程序根据系统的引导加载程序,如GRUB、LILO等,修改引导配置文件以支持新安装的内核。
2. 配置网络和驱动程序根据具体需求,配置网络设置和硬件驱动程序。
六、测试与验证1. 重新启动系统重新启动计算机,并选择新编译的内核进行引导。
2. 验证系统版本和功能运行相应的命令,验证新安装的Linux操作系统版本和功能是否正确。
七、常见问题解决1. 编译错误分析编译过程中出现的错误信息,根据错误提示进行逐步修复。
2. 硬件兼容性问题部分硬件设备可能需要额外的驱动程序或补丁文件才能正常运行,根据具体情况进行相应的处理。
八、总结通过本文的介绍,读者可以了解到Linux操作系统的编译和安装过程,同时了解到在实际操作中会遇到的一些常见问题及解决方法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Linux文件系统制作流程关键词:ARM Linux yaffs文件系统移植Linux文件系统简介Linux支持多种文件系统,包括ext2、ext3、vfat、ntfs、iso9660、jffs、romfs和nfs等,为了对各类文件系统进行统一管理,Linux引入了虚拟文件系统VFS(Virtual File System),为各类文件系统提供一个统一的操作界面和应用编程接口。
Linux下的文件系统结构如下:Linux启动时,第一个必须挂载的是根文件系统;若系统不能从指定设备上挂载根文件系统,则系统会出错而退出启动。
之后可以自动或手动挂载其他的文件系统。
因此,一个系统中可以同时存在不同的文件系统。
不同的文件系统类型有不同的特点,因而根据存储设备的硬件特性、系统需求等有不同的应用场合。
在嵌入式Linux应用中,主要的存储设备为RAM(DRAM,SDRAM)和ROM(常采用FLASH存储器),常用的基于存储设备的文件系统类型包括:jffs2,yaffs,cramfs,romfs,ramdisk,ramfs/tmpfs等。
>基于FLASH的文件系统Flash(闪存)作为嵌入式系统的主要存储媒介,有其自身的特性。
Flash的写入操作只能把对应位置的1修改为0,而不能把0修改为1(擦除Flash就是把对应存储块的内容恢复为1),因此,一般情况下,向Flash写入内容时,需要先擦除对应的存储区间,这种擦除是以块(block)为单位进行的。
闪存主要有NOR和NAND两种技术(简单比较见附录)。
Flash存储器的擦写次数是有限的,NAND闪存还有特殊的硬件接口和读写时序。
因此,必须针对Flash 的硬件特性设计符合应用要求的文件系统;传统的文件系统如ext2等,用作Flash的文件系统会有诸多弊端。
在嵌入式Linux下,MTD(Memory Technology Device,存储技术设备)为底层硬件(闪存)和上层(文件系统)之间提供一个统一的抽象接口,即Flash的文件系统都是基于MTD驱动层的(参见上面的Linux下的文件系统结构图)。
使用MTD驱动程序的主要优点在于,它是专门针对各种非易失性存储器(以闪存为主)而设计的,因而它对Flash有更好的支持、管理和基于扇区的擦除、读/写操作接口。
顺便一提,一块Flash芯片可以被划分为多个分区,各分区可以采用不同的文件系统;两块Flash芯片也可以合并为一个分区使用,采用一个文件系统。
即文件系统是针对于存储器分区而言的,而非存储芯片。
1.jffs2JFFS文件系统最早是由瑞典Axis Communications公司基于Linux2.0的内核为嵌入式系统开发的文件系统。
JFFS2是RedHat公司基于JFFS开发的闪存文件系统,最初是针对RedHat公司的嵌入式产品eCos开发的嵌入式文件系统,所以JFFS2也可以用在Linux,uCLinux中。
Jffs2:日志闪存文件系统版本2(Journalling Flash FileSystem v2)主要用于NOR型闪存,基于MTD驱动层,特点是:可读写的、支持数据压缩的、基于哈希表的日志型文件系统,并提供了崩溃/掉电安全保护,提供“写平衡”支持等。
缺点主要是当文件系统已满或接近满时,因为垃圾收集的关系而使jffs2的运行速度大大放慢。
目前jffs3正在开发中。
关于jffs系列文件系统的使用详细文档,可参考MTD补丁包中mtd-jffs-HOWTO.txt。
jffsx不适合用于NAND闪存主要是因为NAND闪存的容量一般较大,这样导致jffs为维护日志节点所占用的内存空间迅速增大,另外,jffsx文件系统在挂载时需要扫描整个FLASH的内容,以找出所有的日志节点,建立文件结构,对于大容量的NAND闪存会耗费大量时间。
2.yaffsyaffs/yaffs2是专为嵌入式系统使用NAND型闪存而设计的一种日志型文件系统。
与jffs2相比,它减少了一些功能(例如不支持数据压缩),所以速度更快,挂载时间很短,对内存的占用较小。
另外,它还是跨平台的文件系统,除了Linux 和eCos,还支持WinCE,pSOS和ThreadX等。
yaffs/yaffs2自带NAND芯片的驱动,并且为嵌入式系统提供了直接访问文件系统的API,用户可以不使用Linux中的MTD与VFS,直接对文件系统操作。
当然,yaffs也可与MTD驱动程序配合使用。
yaffs与yaffs2的主要区别在于,前者仅支持小页(512Bytes)NAND闪存,后者则可支持大页(2KB)NAND闪存。
同时,yaffs2在内存空间占用、垃圾回收速度、读/写速度等方面均有大幅提升。
3.CramfsCramfs是Linux的创始人Linus Torvalds参与开发的一种只读的压缩文件系统。
它也基于MTD驱动程序。
在cramfs文件系统中,每一页(4KB)被单独压缩,可以随机页访问,其压缩比高达2:1,为嵌入式系统节省大量的Flash存储空间,使系统可通过更低容量的FLASH存储相同的文件,从而降低系统成本。
Cramfs文件系统以压缩方式存储,在运行时解压缩,所以不支持应用程序以XIP方式运行,所有的应用程序要求被拷到RAM里去运行,但这并不代表比Ramfs需求的RAM空间要大一点,因为Cramfs是采用分页压缩的方式存放档案,在读取档案时,不会一下子就耗用过多的内存空间,只针对目前实际读取的部分分配内存,尚没有读取的部分不分配内存空间,当我们读取的档案不在内存时,Cramfs文件系统自动计算压缩后的资料所存的位置,再即时解压缩到RAM中。
另外,它的速度快,效率高,其只读的特点有利于保护文件系统免受破坏,提高了系统的可靠性。
由于以上特性,Cramfs在嵌入式系统中应用广泛。
但是它的只读属性同时又是它的一大缺陷,使得用户无法对其内容对进扩充。
Cramfs映像通常是放在Flash中,但是也能放在别的文件系统里,使用loopback设备可以把它安装别的文件系统里。
4.Romfs传统型的Romfs文件系统是一种简单的、紧凑的、只读的文件系统,不支持动态擦写保存,按顺序存放数据,因而支持应用程序以XIP(eXecute In Place,片内运行)方式运行,在系统运行时,节省RAM空间。
uClinux系统通常采用Romfs 文件系统。
其他文件系统:fat/fat32也可用于实际嵌入式系统的扩展存储器(例如PDA, Smartphone,数码相机等的SD卡),这主要是为了更好的与最流行的Windows桌面操作系统相兼容。
ext2也可以作为嵌入式Linux的文件系统,不过将它用于FLASH闪存会有诸多弊端。
>基于RAM的文件系统1.RamdiskRamdisk是将一部分固定大小的内存当作分区来使用。
它并非一个实际的文件系统,而是一种将实际的文件系统装入内存的机制,并且可以作为根文件系统。
将一些经常被访问而又不会更改的文件(如只读的根文件系统)通过Ramdisk放在内存中,可以明显地提高系统的性能。
在Linux的启动阶段,initrd提供了一套机制,可以将内核映像和根文件系统一起载入内存。
2.ramfs/tmpfsRamfs是Linus Torvalds开发的一种基于内存的文件系统,工作于虚拟文件系统(VFS)层,不能格式化,可以创建多个,在创建时可以指定其最大能使用的内存大小。
(实际上,VFS本质上可看成一种内存文件系统,它统一了文件在内核中的表示方式,并对磁盘文件系统进行缓冲。
)Ramfs/tmpfs文件系统把所有的文件都放在RAM中,所以读/写操作发生在RAM中,可以用ramfs/tmpfs来存储一些临时性或经常要修改的数据,例如/tmp 和/var目录,这样既避免了对Flash存储器的读写损耗,也提高了数据读写速度。
Ramfs/tmpfs相对于传统的Ramdisk的不同之处主要在于:不能格式化,文件系统大小可随所含文件内容大小变化。
Tmpfs的一个缺点是当系统重新引导时会丢失所有数据。
3.网络文件系统NFS(Network File System)NFS是由Sun开发并发展起来的一项在不同机器、不同操作系统之间通过网络共享文件的技术。
在嵌入式Linux系统的开发调试阶段,可以利用该技术在主机上建立基于NFS的根文件系统,挂载到嵌入式设备,可以很方便地修改根文件系统的内容。
以上讨论的都是基于存储设备的文件系统(memory-based file system),它们都可用作Linux的根文件系统。
实际上,Linux还支持逻辑的或伪文件系统(logical or pseudo file system),例如procfs(proc文件系统),用于获取系统信息,以及devfs(设备文件系统)和sysfs,用于维护设备文件。
开发环境操作系统:Ubuntu10.4(linux kernel-v2.6.31)移植Linux内核版本:2.6.30交叉编译工具:arm-linux-gcc4.3.2文件系统制作工具:Busybox-1.16.1下载Busybox-1.16.1Busybox-1.16.1的下载地址:/配置Busybox1.创建制作文件系统的根目录在提示符后输入:/opt#mkdir rootfs2.解压busybox-1.16.1进入存放busybox-1.16.1压缩包文件的目录,在提示符后输入:/opt#tar jxvf busybox-1.16.1.tar.ba23.进入busybox-1.16.1根目录,修改Makefile,修改ARCH和CROSS_COMPILE两变量的值ARCH?=armCROSS_COMPILE?=arm-linux-4.通过busybox的配置菜单配置制作的文件系统在提示符后输入:/opt/busybox-1.16.1#make menuconfig系统将弹出配置菜单,通过菜单选择需要的选项,如图1所示:图1以下选项必须选择:Busybox Setting----->build option-->[]Build BusyBox as a static binary(no shared libs)[]Build BusyBox as a position independent executable(NEW)[]Force NOMMU build[]Build shared libbusybox[*]Produce a binary for each applet,linked against libbusybox[*]Produce additional busybox binary linked against libbusybox[]Build with Large File Support(for accessing files>2GB)()Cross Compiler prefix()Additional CFLAGSBusybox Setting----->installation option-->[*]Don't use/usrApplets links(as soft-links)--->(/opt/rootfs)BusyBox installation prefix(该项输入编译安装路径,在此输入rootfs文件路径)Busybox Library Tuning--->MD5:Trade Bytes forSpeed[*]Faster/proc scanning code(+100bytes)[*]Support for/etc/networks[*]Support for/etc/networks[*]Additional editing keys[*]vi-style line editing commands[*]History saving[*]Tab completion[*]Username completion[*]Fancy shell prompts若出现如图2所示的错误:图2请安装有关编译程序。