文件系统的制作
前言 :
文件系统的制作其实并没有想像中那么难。一个基本的文件系统应该包括: busybox (提供 shell 命令集)、配置文件(用来初始化和布局你的文件系统)、设备文件(如果是用 devfs 的话这个就免了)、必要的库文件系统(如果 busybox 是静态编译的话,那根本不用为 busybox 用到的库文件而烦。在我制作的文件系统里,只是为了用户程序和 qt 的运行才放置了一些库文件)。
正文 :
<script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"></script>
一、 首先说一下 busybox 的配置和编译问题
其实搞好 busybox 后,可以说你的文件系统已经完成了一半了。 Busybox 之所以比较难编译,主要是 busybox 和交叉编译工具的版本搭配问题。在文坛上不乏因为 busybox 某些命令不能编译通过而烦的人,在这里我推荐一个搭配: busybox-1.1.3+arm-linux-gcc-3.3.2 (在文坛上看到过有人说 busybox-1.0.1+arm-linux-gcc-3.4.1 也可以正常编译通过,你自己看着办吧)。
Busybox 的配置很简单,详细过程可以参考《基于 S3C2410 的 Linux 全线移植文档》的文件系统部分,我刚开始的时候就是按照这个来做出一个很简单的文件系统的。
不过有一点要特别注意的 (shell 的配置问题 ) :
1、要这样配置:
│ │ Shells --->
│ Choose your default shell (ash) --->
2、如果是这样配置的话,虽然可以生成ash,但不能生成sh:
│ │ Choose your default shell (none) ---> │ │
│ │ [*] ash
另外,按照他的这种方法做出来的文件系统,运行的时候 shell 并不好有,没有历史记录、自动补全、删除字符的功能,下面介绍如何为它添加这些功能:
Shells --->
--- Bourne Shell Options │ │
[ ] Hide message on interactive shell startup