2022年用Busybox制作嵌入式Linux根文件系统 .pdf





《2022年用Busybox制作嵌入式Linux根文件系统 .pdf》由会员分享,可在线阅读,更多相关《2022年用Busybox制作嵌入式Linux根文件系统 .pdf(5页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、用 Busybox 制作嵌入式 Linux 根文件系统Use Busybox to Make Embedded Root Filesystem (曲阜师范大学自动化研究所)邵长彬李洪亮Shao Changbin Li Hongliang 摘要:根文件系统为Linux的运行提供最基本的工具、库、脚本和一些特殊文件的支持。Busybox 是制作嵌入式Linux 文件系统的快捷工具,本文通过配置、编译、安装Busybox ,以及生成根文件系统映像文件,介绍了用 Busybox 制作嵌入式Linux 根文件系统的一般方法。关键词:嵌入式Linux ,根文件系统,Busybox 中图分类号: TP316
2、.2文献标识码 :AAbstract: Root filesystem affords Linux most basic tools, lib, scripts and some special files. Busybox is a key tool to make embedded Linux filesystems. This paper, through configure, compile and install Busybox, delivers a normal method to make root filesystem. Key words: embedded Linux,
3、root filesystem, Busybox CLC number: TP316.2 Document code: A 1 根文件系统简介根文件系统是存放Linux 系统所必须的各种工具软件、库文件、脚本、配置文件和其他特殊文件的地方,也可以包括各种软件包。根文件系统一般包括如下内容:1)基本的文件系统结构,包含一些必须的目录,比如:/dev,/proc,/bin,/etc,/lib,/usr,/tmp。2) 基本程序运行所需的库函数,如:Glibc/uC-libc 。3) 基本的系统配置文件,如:rc,inittab 等脚本文件。4) 必要的设备支持文件,如:/dev/hd* , /de
4、v/tty,/dev/fd0。5) 基本的应用程序,如:sh,ls,cp,mv 等。根文件系统的制作就是生成包含上述各种文件的文件系统的过程,我们可以通过直接拷贝宿主机上交叉编译器处的文件来制作根文件系统,但是这种方法制作的根文件系统一般过于庞大。也可以通过一些工具如Busybox 来制作根文件系统,用Busybox 制作的根文件系统可以做到短小精悍并且运行效率较高。2 Busybox简介Busybox 被形象的称为“嵌入式Linux 的瑞士军刀”,它是一个UNIX工具集。它可提供一百多种GNU 常用工具、 shell 脚本工具等。虽然Busybox 中的这些工具相对于GNU 提供的完全工具有
5、所简化,但是它们都很实用。Busybox 的特色是所有命令都编译成一个文件 Busybox, 其他命令工具 (如 sh、 cp、 ls 等) 都是指向Busybox 文件的连接。 在使用 Busybox生成的工具时, 会根据工具的文件名散转到特定的处理程序。这样,所有这些程序只需被加载一次,而所有的Busybox 工具组件都可以共享相同的代码段,这在很大程度上节省了系统的内存资源和提高了应用程序的执行速度。Busybox 仅需用几百kB 的空间就可以运行,这使得 Busybox 很适合嵌入式系统使用。同时, Busybox 的安装脚本也使得它很容易建立基于 Busybox 的根文件系统。通常只
6、需要添加/dev、/etc 等目录以及相关的配置脚本,就可以实现一个简单的根文件系统。Busybox 源码开放,遵守GPL 协议,最新的版本可以从网站http:/下名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 5 页 - - - - - - - - - 载。它提供了类似Linux 内核的配置脚本菜单,很容易实现配置和裁剪,通常只需要指定编译器即可。3 建立根文件系统结构参考一个正常的Linux 系统会发现,只是用Busybox 建立的文件系统还缺少一些文件。因此,下面的
7、命令用于建立Linux 系统常见的一些目录,虽然它们不全是必需的,但建立它们更符合标准。这里,rootfs 为嵌入式Linux 根文件系统的根目录。#cd /home/busybox #mkdir rootfs #cd rootfs #mkdir bin dev etc lib proc sbin tmp usr var #chmod 1777 tmp #mkdir usr/bin usr/lib usr/sbin #mkdir var/lib var/lock var/log var/run var/tmp #chmod 1777 var/tmp 4 准备链接库Linux 应用程序的执行离不
8、开共享链接库的支持,所以需要将其中的一些共享库文件复制到用户目标板的根文件系统的相应位置。以下程序用以复制共享链接库及其符号链接。#cd /usr/local/arm/3.4.1/arm-linux/lib /*共享链接库在宿主机上所在的目录*/ #for file in libc libcrypt libdl libm libpthread libresolv libutil /*使用 for 循环语句进行复制*/ do cp $file-*.so /home/busybox/rootfs/lib /* 复制共享库 */ cp -d $file.so.*0-9 /home/busybox/r
9、ootfs/lib /*复制共享库主修订版本的符号链接*/ done #cp -d ld*.so* /home/busybox/rootfs/lib /*复制链接器库文件*/ 5 使用 Busybox 制作系统应用程序5.1 配置 Busybox 本文所用的Busybox 版本为 Busybox-1.1.3 ,Busybox 的配置非常简单,就像配置Linux内核一样。#cd /home/busybox #tar zxvf busybox-1.1.3.tar.gz #cd busybox-1.1.3 #make menuconfig 就会出现如下Busybox 的配置画面:名师资料总结 - -
10、 -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 5 页 - - - - - - - - - 本文 Busybox 的具体配置如下:Busybox Settings General Configuration * Support for devfs /*提供对文件系统的支持*/ Build Options * Build BusyBox as a static binary (no shared libs) /* 将 Busybox 编译为静态连接,减少了启动时查找动态链接库的时间 */ *
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年用Busybox制作嵌入式Linux根文件系统 2022 年用 Busybox 制作 嵌入式 Linux 文件系统

限制150内