busybox制作linux文件系统
脚本文件 #!/bin/sh echo "creatint rootfs dir......" mkdir rootfs cd rootfs echo "making dir : bin dev etc lib proc sbin sys usr" mkdir bin dev etc lib mnt proc sys tmp var root #必备的8个目录 # mkdir usr/bin usr/lib usr/sbin lib/modules # Don't use mknod ,unless you run this Script as root ! # mknod -m 600 dev/console c 5 1 # mknod -m 666 dev/null c 1 3 # echo "making dir : mnt tmp var" # mkdir mnt tmp var chmod 1777 tmp # mkdir mnt/etc mnt/jffs2 mnt/yaffs mnt/data mnt/temp #mkdir var/lib var/lock var/log var/run var/tmp # chmod 1777 var/tmp #echo "making dir : home root boot" # mkdir home root boot echo "done" 执行chmod +x xxx ### Busybox 制作 Linux 文件系统详解 #### 标题解析 标题“busybox制作linux文件系统”指出了本文档的主要目的:利用Busybox工具构建一个简易的Linux文件系统。Busybox是一个为嵌入式设备设计的小巧工具箱,它集成了众多基本的Linux命令、工具和实用程序。Busybox在资源受限的环境中非常有用,因为它可以提供完整的GNU/Linux环境,同时占用的空间相对较小。 #### 描述解读 描述中的脚本文件提供了创建Linux文件系统的具体步骤,其中包括了关键目录的创建以及权限设置等操作。脚本首先通过`mkdir`命令创建了必要的基础目录结构,如`bin`、`dev`、`etc`等,并且对某些特定目录进行了权限修改,比如将`tmp`目录的权限设置为`1777`,这通常是为了允许所有用户在此目录下创建文件而不会受到权限限制。 #### 标签解释 标签“busybox.1.13 文件系统”表明了本文档关注的重点是Busybox版本1.13在构建文件系统中的应用。 #### 内容分析 在文档的部分内容中,提到了以下几个关键步骤: 1. **下载与配置Busybox**:为了制作Linux文件系统,首先需要下载Busybox源代码(以版本1.13.3为例),并对其进行配置以适应目标硬件平台的需求。例如,在Makefile文件中进行架构和编译器的指定,确保Busybox能够正确编译出适合ARM架构的目标代码。 2. **创建基础目录结构**:这部分内容详细描述了如何使用Shell脚本创建文件系统的目录结构。这包括了Linux文件系统中必不可少的基本目录,例如`bin`、`dev`、`etc`等。 3. **权限设置**:对创建的目录进行权限设置,例如`chmod 1777 tmp`确保所有用户都可以在/tmp目录中创建临时文件。 4. **Busybox的编译与安装**:这部分内容涉及到了Busybox的具体编译过程,包括配置选项的选择(如是否支持大文件访问、安装路径等)以及最终的编译与安装命令。 5. **文件系统完善**:最后一步是对已创建的文件系统进行完善,包括创建必要的设备节点、添加配置文件等。 #### 总结 本文档提供了一个基于Busybox 1.13版本制作Linux文件系统的完整流程。从下载Busybox源代码到构建文件系统的目录结构,再到最终的编译和安装,每个环节都做了详尽的介绍。对于那些希望了解或实践如何使用Busybox来构建精简版Linux文件系统的开发者来说,这份文档具有很高的参考价值。通过这些步骤,我们可以构建出一个功能完备但占用空间较小的Linux环境,这对于嵌入式开发或者资源受限的环境尤其有用。
用途:用来制作目标文件系统映像。
工具2:busybox
用途:生成目标文件系统。网上有对它的介绍。
以上工具均来自友善之臂http://www.arm9.net/download.asp。交叉编译工具arm-linux-gcc4.3.2。(在此衷心感谢资源、资料提供者)
制作过程:
选定 busybox-1.13.3.tgz这个版本, 以静态方式编译, 即生成的 busybox 不需要共享库的支持就能运行。这样做我们就不需要布署程序库了。
缺点是自己写的 arm-linux 程序在这个根文件系统中是不能运行的,因为缺少共享程序库的支持。不过不用担心,通过在目标机里以挂接 NFS 的方式,
将宿主机的 arm-linux-gcc 编译器的库文件挂到 arm-linux 的 /lib 下, 就可完美的运行我们自己的程序了。
现在开始制作静态链接库的根文件系统。
1、准备根文件系统
在机器上建立rootfs的文件夹
脚本文件
#!/bin/sh
echo "creatint rootfs dir......"
mkdir rootfs
cd rootfs
echo "making dir : bin dev etc lib proc sbin sys usr"
mkdir bin dev etc lib mnt proc sys tmp var root #必备的8个目录
# mkdir usr/bin usr/lib usr/sbin lib/modules
# Don't use mknod ,unless you run this Script as root !
# mknod -m 600 dev/console c 5 1
# mknod -m 666 dev/null c 1 3
# echo "making dir : mnt tmp var"
# mkdir mnt tmp var
chmod 1777 tmp
# mkdir mnt/etc mnt/jffs2 mnt/yaffs mnt/data mnt/temp
#mkdir var/lib var/lock var/log var/run var/tmp
# chmod 1777 var/tmp
#echo "making dir : home root boot"
# mkdir home root boot
echo "done"
执行chmod +x xxx
1. 下载最新的busybox1.13.3,并解压缩。
下载busybox源代码:http://busybox.net/downloads/busybox-1.13.3.tar.bz2
解压源码:#tar -jxvf busybox-1.13.3.tar.bz2
2. 修改Makefile中的 arch和编译工具链头。
ARCH ?= arm
CROSS_COMPILE ?= /usr/local/arm/3.4.1/bin/arm-linux-
3. make menuconfig. 修改编译配置选项。
剩余8页未读,继续阅读
- LRS0307403042013-01-30我的还是没有跑起来…… 唉,头疼阿
- hou_1232013-12-25正在摸索编译中
- 粉丝: 6
- 资源: 7
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助