欢迎来到天天文库
浏览记录
ID:1838387
大小:28.00 KB
页数:3页
时间:2017-11-13
《根文件系统的制作》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、根文件系统的制作文件系统的制作其实并没有想像中那么难。一个基本的文件系统应该包括:busybox(提供shell命令集)、配置文件(用来初始化和布局你的文件系统)、设备文件(如果是用devfs的话这个就免了)、必要的库文件系统(如果busybox是静态编译的话,那根本不用为busybox用到的库文件而烦。在我制作的文件系统里,只是为了用户程序和qt的运行才放置了一些库文件)。 正文一、首先说一下busybox的配置和编译问题其实搞好busybox后,可以说你的文件系统已经完成了一半了。Busybox之所以比较难编译,主要是busybox和交叉编译工具的版本搭配问题。在文坛上不乏
2、因为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 ---> │ Chooseyourdefaultshe
3、ll(ash) ---> 2、如果是这样配置的话,虽然可以生成ash,但不能生成sh: ││ Chooseyourdefaultshell(none) ---> ││ ││ [*]ash 另外,按照他的这种方法做出来的文件系统,运行的时候shell并不好有,没有历史记录、自动补全、删除字符的功能,下面介绍如何为它添加这些功能: Shells --->--- BourneShellOptions ││ [] Hidemessageoninter
4、activeshellstartup ││ [] Standaloneshell ││ [*] commandlineediting ││ [*] vi-stylelineeditingcommands ││ (15) historysize
5、 ││ [*] historysaving ││ [*] tabcompletion ││ [*] usernamecompletion ││ [] Fancyshellprompts 这是我自己试验出来的,网上没有看到过这方面的介绍,在此奉献给大家。 二、再来说一下配置文件的问题 在文件
6、系统中,配置文件主要存放在/etc目录里面。《基于S3C2410的Linux全线移植文档》里面介绍的文件系统由于需要加载文件系统的时候把/mnt/etc目录拷贝到/etc,所以不得不使用/linuxrc脚本,不过如果是这样的话需要在内核传递参数里设置init=/linuxrc,因为默认是启动/sbin/init初始化脚本的(busybox编译安装以后生成的linuxrc文件是指向/bin/busybox的符号文件,应该把它删掉,自己重写脚本)。在我做的文件系统里不采用这种方法,所以不用设置init=/linuxrc。 Busyboxinit的流程在《构建嵌入式linux系统》这
7、本书里面有介绍,我在这简单的说一下:如果不采用linuxrc的话就会执行/sbin/init脚本(busyboxinit),它会去分析/etc/inittab脚本(如果没有的话就使用它默认的来代替,一般没必要自己为它编写这个脚本,用它默认的就行),然后会执行/etc/init.d/rcS命令(在我制作的文件系统里就把配置都写入了这个文件)。 至于rcS这个目录的编写主要是安排哪些目录挂载哪些次级文件系统,比如/proc要挂载proc文件系统、/sys要挂载sysfs、/dev/shm要挂载t
此文档下载收益归作者所有