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

上传人:Q****o 文档编号:26169622 上传时间:2022-07-16 格式:PDF 页数:5 大小:110.62KB
返回 下载 相关 举报
2022年用Busybox制作嵌入式Linux根文件系统 .pdf_第1页
第1页 / 共5页
2022年用Busybox制作嵌入式Linux根文件系统 .pdf_第2页
第2页 / 共5页
点击查看更多>>
资源描述

《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 编译为静态连接,减少了启动时查找动态链接库的时间 */ *

11、Do you want to build BusyBox with a Cross Compiler? (/usr/local/arm/3.4.1/bin/arm-linux-)Cross Compiler prefix /* 指定交叉编译器路径 */ Init Utilities * init * Support reading an inittab file /* 支持 init 读取 /etc/inittab 配置文件 */ Shells Choose your default shell (ash) /* 选中 ash,用以生成bin/sh 文件 */ * ash Coreutils

12、/*生成各种常用工具*/ * cp * cat * ls * mkdir * echo (basic SuSv3 version taking no options) * env * mv * pwd * rm * touch Editors * vi 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 5 页 - - - - - - - - - Linux System Utilities * mount * umount * Support loopback mounts

13、 * Support for the old /etc/mtab file Networking Utilities * inetd /*支持 inetd 超级服务器 */ 配置完成后,会在当前目录下生成一个.config 文件,这就是我们的配置文件。5.2 编译并安装Busybox #make TARGET_ARCH=arm PREFIX=/home/busybox/rootfs all install 设置 TARGET_ARCH为 ARM 架构处理器, PREFIX指明安装路径,也就是我们根文件系统所在的路径。安装完成后,会在rootfs 目录下的bin, sbin, usr 目录下生成

14、相应的工具文件。6 准备所需的设备文件#cd /home/busybox/rootfs/dev #mknod /dev/fb0 c 29 0 /* 建立显示器设备文件*/ #mknod /dev/ts c 254 0 /* 建立触摸屏设备文件*/ #mknod -m 600 console c 5 1 /* 建立控制台设备文件*/ 7 创建启动脚本文件这里的启动脚本为linuxrc 文件,这是Linux 内核挂载根文件系统成功后运行的第一个脚本文件。# vi rootfs/linuxrc #!/bin/sh #echo “Hello linux” #exec /sbin/init /* 启动

15、init 进程 */ #chmod 775 linuxrc /* 修改 linuxrc 为可执行权限 */ 8 制作根文件系统映象文件#cd /home/busybox #mkdir initrd /* 建立一空目录,用以挂载根文系统映像文件*/ #dd if=/dev/zero of=initrd.img bs=1k count=8192 /*创建一个空的8MB 的文件系统映像,名字为 initrd.img ,并通过 /dev/zero 设备进行初始化清零 */ #/sbin/mke2fs -F -v -m0 initrd.img /*生成根文件系统的类型是ext2*/ #mount -o

16、loop initrd.img initrd /*通过 loop 设备把 initrd.img 映像挂载到空目录initrd*/ #cp -av /home/busybox/rootfs/* 通过 initrd 把生成的根文件系统的内容拷贝到initrd.img 映像文件中 */ #umount initrd #gzip -9 initrd.img 最终生成嵌入式Linux 根文件系统的映像文件为initrd.img.gz ,是一压缩文件。9 下载映像文件并执行为挂载根文件系统,在配置Linux 内核时,应支持ramdisk 文件系统,即把指定的内存区域模拟成磁盘设备。并且在启动选项(Boot

17、 options )里设置 ramdisk 为根文件系统。以下命令为通过Windows 的超级终端工具下载Linux 内核映像和根文件系统映像到目标板(实名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 5 页 - - - - - - - - - 验用的是基于s3c2410 微处理器的开发板) 。#tftp 30008000 zImage /*下 载Linux内 核 映 像 到 目 标 板 内 存 , Linux内 核 版 本 为Linux-2.6.14.1*/ #tftp

18、 30800000 initrd.img.gz /* 下载根文件系统映像到目标板内存*/ #go 30008000 /*启动目标板Linux*/ 目标板的嵌入式Linux 系统启动后在超级终端中显示的结果如下:可见用 Busybox 制作的根文件系统已经正常启动。10 结束语本文作者的创新点:对用 Busybox 制作嵌入式Linux 根文件系统进行了归纳和总结,给出了制作嵌入式Linux 根文件系统的一般方法,适用于ARM 架构处理器的嵌入式系统,对于其他类型的嵌入式系统的开发也具有一定的参考意义。本文给出了制作嵌入式Linux 根文件系统的详细流程,并给出了实验结果,实验表明该方法制作出来

19、的根文件系统是能够可靠运行的。参考文献:1 孙纪坤, 张小全 . 嵌入式 Linux 系统开发技术详解基于ARMM 北京:人民邮电出版社 2006 2 孙天泽袁文菊 .嵌入式设计及Linux 驱动开发指南基于ARM9 处理器(第 2 版)M 北京:电子工业出版社 2007 3 嵌入式系统接口设计与Linux 驱动程序开发 M 北京:北京航空航天大学出版社 2006 4 陈铁军 . 嵌入式Linux2.6在 s3c2410 上的移植技术探析J. 微计算机信息,2007, 4-2:67-69 5 Busybox 官方网站 作者简介:邵长彬(1976-) 山东汶上人,曲阜师范大学自动化研究所助教,硕

20、士,研究方向:嵌入式系统设计;李洪亮(1966-) 曲阜师范大学教授,博士,硕士导师,研究方向:智能控制,嵌入式系统设计,E-mail: Biography: Shao Changbin(1976-), male, native place is Wenshang city Shandong provice, Institue of Automation Qufu Normal University, assistant, research interests in embedded system. 通讯地址:(273165 山东曲阜市 曲阜师范大学自动化研究所)邵长彬注:原文献标识码错误,原来为B,现更正为A名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 5 页 - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 技术总结

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com