Linux文件系统制作详细

合集下载

嵌入式Linux系统下根文件系统的构建

嵌入式Linux系统下根文件系统的构建
型 的 文 件 ,在 构 造 根 文 件 系 统 时 ,建 议 遵 循 F S H ( iss m H e rh tn ad 文 件 系 统 层 次 标 Fl yt ir cySa dr 一 e e a 准 ) 准 。F 标 HS定 义 了文 件 系 统 中 目录 、 文件 分 类 存
2 根 文件 系统 简 介
根 文件 系统 是 嵌 入 式 Lnx文 件 系 统 的 核 心 部 iu 分 。 含 系 统 使 用 的 软 件 和 库 , 及 所 有 用 来 为 用 包 以 户 提 供 支 持 架 构 和 用 户 使 用 的应 用 软 件 , 作 为存 并 储 数据 读 写 结 果 的区 域 。为 了 安 装 软 件 时 能 够 预知 文件 、 目录 的 存 放 位 置 , 用 户 方 便 的 找 到 不 同类 让
29 . /a vr
文 件 系 统 是 操作 系 统 中用 来 管 理 用 户 文 件 的 内核 软 件 层 。 件 可 文
能 存 在 于 磁 盘 、 络 或者 是 一 些 虚 拟 的文 件 。文 件 系统 包 括 根 文 件 系 网 等。 统 和 建 立 于 内存 设备 之 上 的 文件 系 统 , 中根 文 件 系 统 是 整 个 文 件 系 其 21 ,rc .0 po 统 的 核 心 部 分 。本 文 概 述 了根 文 件 系 统 的 组 成 , 结 合 工 程 项 目实 践 并 空 目录 , 作 为 po 文 件 系 统 的 挂 接 点 。 常 rc 详 细 说 明 了 如 何 建立 一 个 Ca F rm S根 文 件 系 统 的 一 般 步 骤 。
叉 编 译 后 分 别 下 载 至 目标 板 的 S I ls P ah和 NadFah中 ,上 电启 动 F n ls 31 准 备 根 文 件 系 统 . 运 行 。开 发 过 程 中 , — ot 载 至 S I 0 04 0 0; 核 和 文 件 系 统 U bo 下 P 的 ~ x 80 内 类 似 于 批 处 理 文 件 的 sel 本 可 以 自动 完 成 用 户 想 做 的 动 作 , hl脚 烧 录 至 N n s a dHah的 O4 0 0处 。 x 00 这 里 使 用 脚 本 进 行 了基 本 路 径 和 节 点 等 目 录框 架 的 建 立 。 建 立 se hl l l

busybox详解制作根文件系统

busybox详解制作根文件系统

详解制作根文件系统单击,返回主页,查看更多内容一、FHS(Filesystem Hierarchy Standard)标准介绍当我们在linux下输入ls / 的时候,见到的目录结构以及这些目录下的内容都大同小异,这是因为所有的linux发行版在对根文件系统布局上都遵循FHS标准的建议规定。

该标准规定了根目录下各个子目录的名称及其存放的内容:制作根文件系统就是要建立以上的目录,并在其中建立完整目录内容。

其过程大体包括:•编译/安装busybox,生成/bin、/sbin、/usr/bin、/usr/sbin目录•利用交叉编译工具链,构建/lib目录•手工构建/etc目录•手工构建最简化的/dev目录•创建其它空目录•配置系统自动生成/proc目录•利用udev构建完整的/dev目录•制作根文件系统的jffs2映像文件下面就来详细介绍这个过程。

二、编译/安装busybox,生成/bin、/sbin、/usr/bin、/usr/sbin目录这些目录下存储的主要是常用命令的二进制文件。

如果要自己编写这几百个常用命令的源程序,my god,这简直是一个噩梦!好在我们有嵌入式Linux系统的瑞士军刀——busybox,事情就简单很多。

1、从/下载busybox-1.7.0.tar.bz22、tar xjvf busybox-1.7.0.tar.bz2解包3、修改Makefile文件175 ARCH ?= arm176 CROSS_COMPILE ?= arm-linux-4、make menuconfig配置busyboxbusybox配置主要分两部分。

第一部分是Busybox Settings,主要编译和安装busybox的一些选项。

这里主要需要配置:1)、Build Options -- Build BusyBox as a static binary (no shared libs),表示编译busybox时,是否静态链接C库。

Linux 创建文件系统

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操作系统制作过程详解

最小的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的启动过程和系统的基本结构,而且是一个喜欢动手研究小玩意的人,那么这个文档可以满足你的需求。

构建嵌入式Linux的根文件系统的busybox方法

构建嵌入式Linux的根文件系统的busybox方法
本系统中, 构建嵌入式 L u 根文件 系统的硬件平 台 ix n 上主要 的芯 片有:321 r9微 控制 器、4 d m sc40 a m 6M sa 、 r 主机是 P , C 其操作系统是 db n ei .目标板是基于 ¥C40 a 321
中, 内核在启动期间进行的最后操作之一就是安装根文件
统 所 必 需 的 其他 一 些 脚 本 文 件 的 编 写 方 法.
关 键 词 : 文 件 系统 ; u, o ; 入 式 系统 根 b sb x 嵌 y
中 图分 类 号 : P3 6 T 1
文献 标 识 码 :A
嵌入式 L u 操作系统 越来越受到重视 , ix n 应用也越 其他操作系统资源都可共享, 这对于资源 比较紧张的系统
系统 .
B s o 是构建嵌入式 L u 根文件系统的软件 , uy x b ix n 用 6M ada 等.系统采用了宿主机加 目标板的模式, 4 nnfs lh 宿
它制作根文件系统简单, , 方便 而且设置灵活. 本文将重点
介绍如何用 B s o 来制作根文件系统. u bx y
其中, p目录需要设置 scy #h o 77tp t m tk 位, cmd17 , i m
际应用过程中通过不 同的符号链接来确定到底要执行 哪 这样所有的用户都对 tp m 可读可写 , 却只有 r t/m 属 o (tp o
个操作.例如最终生成的可执行文件为 bs o, uy x当为它建 主) b 能删除或移动它.
立一个符号 链接l s 候, 的时 就可以 通过执行这个新命令实 目录 hm , t n, o均是可选的, o eo , t ot pm r 如果该根文件系 现列 目录的功能. 采用单一执行文件的方式可以最大限度 统要支持多用户, 还需要J/oe目录.由于使用 dv , J hm  ̄ es所 f

vmlinux生成流程

vmlinux生成流程

vmlinux生成流程vmlinux是Linux内核的可执行文件,它是内核源代码经过编译、链接等一系列处理后生成的。

下面我们将详细介绍vmlinux生成的流程。

1. 内核源代码编译vmlinux的生成过程首先需要对Linux内核的源代码进行编译。

编译器将源代码翻译成机器可以执行的目标代码,生成一系列的中间文件。

在编译过程中,需要注意选择合适的编译选项,以及处理一些与平台相关的代码。

2. 汇编代码生成在编译过程中,还会生成一些汇编代码。

汇编代码是与机器硬件直接相关的代码,它负责处理底层的硬件操作。

汇编代码一般保存在以".S"为后缀的文件中。

3. 链接过程编译完源代码和汇编代码后,需要进行链接操作。

链接器将各个模块的目标代码组合在一起,解析符号引用,生成最终的可执行文件。

在链接过程中,还需要处理一些与库相关的操作,如动态链接库和静态链接库的链接。

4. 符号表生成在链接过程中,还会生成符号表。

符号表是一个记录了各个符号(函数、变量等)地址和大小的表格,它有助于调试和动态加载等操作。

符号表一般保存在可执行文件的调试信息中。

5. 优化处理在生成vmlinux的过程中,还需要进行一些优化处理。

优化处理旨在提高代码的执行效率,减少资源占用。

优化处理涉及到很多技术,如代码折叠、循环展开、指令调度等。

6. 生成vmlinux经过以上的编译、汇编、链接和优化处理,最终可以生成vmlinux文件。

vmlinux是一个可执行的二进制文件,它包含了Linux内核的所有代码和数据。

vmlinux可以被直接加载到内存中执行,成为一个运行的操作系统。

总结:vmlinux的生成过程经历了源代码编译、汇编代码生成、链接过程、符号表生成、优化处理等多个阶段。

通过这些处理,我们可以得到一个完整的可执行的Linux内核文件。

vmlinux的生成过程是复杂而严谨的,需要编译器、链接器等工具的支持,同时也需要开发人员对内核源代码和底层硬件有深入的理解。

initramfs 生成过程

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生成流程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.安装内核:将生成的内核镜像安装到目标系统中。

这通常包括将内核镜像复制到引导分区或存储设备的指定位置,并修改引导加载器的配置文件以引导新内核。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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的主要区别在于,前者仅支持小页(512 Bytes) 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,用于维护设备文件。

开发环境操作系统:Ubuntu 10.4(linux kernel-v2.6.31)移植Linux内核版本:2.6.30交叉编译工具:arm-linux-gcc 4.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 > 2 GB) () 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 for Speed[*] 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请安装有关编译程序。

相关文档
最新文档