配置文件系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
嵌入式文件系统的构建
一.文件系统的制作
(1)、Busybox介绍
Busybox 是Debian GNU/Linux 著名的Bruce Perens 首先开发,主要使用在Debian 的安装程序中。Busybox 编译成一个叫做busybox 独立执行程序,并且可以根据配置,执行ash shell 的功能,以及几十个小应用程序。这其中包括一个迷你的vi 编辑器,系统不可或缺的/sbin/init 程序,以及其他诸如sed, ifconfig, halt, reboot, mkdir, mount, ln, ls, echo, cat 等等,所有这些都是一个正常的系统必不可少的,通过修改修改BusyBox 默认的编译配置(make menuconfig)以移除不想使用的命令的支持。
busybox 具有全部这些功能,大小也不过100K 左右。而且用户还可以根据自己的需要对busybox 的应用程序功能进行配置选择。这样可以使busybox 的大小进一步缩小。
BusyBox 支持多种体系结构,它可以静态或动态链接glic 或者uclibc 库,以满足不同的需要。
(2)、制作过程
1.实验室中busybox-1.00-pre5.tar.gz存放在/exp 目录下,将该压缩文件复制到自己的文件夹/home /st /MF , 在该目录下解压缩tar zxvf busybox-1.00-pre5.tar.gz (tar 指令的使用详见附录一)
2. 用cd /home /st /MF /busybox-1.00-pre5进入解压后的目录,执行make menuconfig,进行文件系统的配置。文件系统如果配置不好会在启动时产生多种问题导致不能启动,下面详细的说明一下,必需的配置选项,并附带说明一些常见的问题FAQ。
3.make menuconfig
图1.1是Busybox配置界面
(1)在Build Option菜单下,可以选择静态库编译方式,设置如
[*] Build BusyBox as a static binary (no shared libs)
将交叉编译器设置为PC机上的路径(ARM交叉编译工具所在的目录为/ usr/ local / arm-linux /bin),设置时需要在cross compiler prefix中输入/ usr/ local / arm-linux
/bin / arm-linux-
(方便起见),Don‟t use/ usr 不选。
(3)在Archival Utilities(档案程序)菜单下配置常用的归档工具(gzip等)。在此菜单下可以配置常用的压缩工具(归档),例如gzip、tar等,在相应的压缩
命令前打*即意味着新配置成的文件系统中可以使用相应的压缩命令(建议选一
些常用的也可不选,我只选了一些我认识的)。
图1.4
(4)在coreutils菜单下,配额制常用的对文件操作的指令。在相应的指令前打*,意味着在所制作的文件系统中可以使用。例如,[*]cp 可以在制作的文件系统中使用cp 来拷贝文件。(建议全选)
(5)在Console Utilities(控制台程序)菜单中,配置一些对终端的操作,例如
清屏,reset等。(建议全选)。
(6)在Debian Utilities(Debian,linux 版本的一种,在最适合linux爱好者的系统之一),配置一些Debian中有的一些命令,例如管道命令。
建议选[*] pipe_progress 和[*] start-stop-daemon, 其他可选,影响不大。
(7)在Editors菜单下,配置你所构造文件系统可以使用的编辑器,这里我们当
然选vi了,建议将vi下所有的功能都打*这样就可以在自己够的文件系统里使用vi来编辑文件了。
(8)在Finding Utilities(搜索)菜单下,配置搜索指令,相应的项目打*,即意味着在文件系统中可以使用这些搜索命令,例如,grep,find。(建议全选)
(9)在Init Utilities中配置初始化指令。其中[*] init 选项必选,否则无法正常
进入命令行界面的系统,若不选会出现FAQ(frequent question)中的问题(3),其他选项建议都选上,如下图。
(10)在Login/Password Mangement Utilities菜单下配置对用户登录/密码管理的
配置。其中[*] getty必选,因为在inittab文件中要用到该指令,若不选会出现FAQ(frequent question)中的问题(2)。其他选项可选,参见下图。
(11)在Miscellaneous(各种的, 多方面的) Utilities配置各种指令,由于很多指令没怎么用过,所以没选。
(12)在Linux Module Utilities中配置和加载/卸载Linux 模块相关的指令,例如insmod、lsmod、rmmod等是比较常用的命令,建议都选,其他命令根据个人喜好。
(13)在Networking Utilities菜单下配置和网络有关的命令,为了使用网络连接,
其中ping和ifconfig必选。其他的诸如telenet,ftpget之类可根据自己对这些命令的了解选。
(14)在Process Utilities菜单下配置对系统进程管理的指令,如kill、ps,建议按如下图所示选,可选top(由于之前不知道top的功能所以没选,top的功能见附录二)。
(15)在Another Bourne like shell菜单下指定shell(必须因为在启动时rc中的
/bin/sh中会使用指定的shell),否则出现FAQ中的问题(4)。指定方法如下,选择choose your default shell,用空格键选取一种shell,常见的可以选ash,和msh,经过实验发现msh似乎更好用,建议选msh。指定shell种类之后,下面有不同shell的功能项的选取,如果指定的shell类型为msh,建议把msh下面的msh shell options功能的内容全选。(下图是由于截图时使用的仍是ash,未改作msh,强烈建议使用msh)。
(16)在System logging Utilities菜单下,配置系统登录命令,暂时不会用这些指令,所以未选(不影响功能)。