最近在网上看了一些写根文件系统的博文,但是没有找到韦东山老师所讲解的针对S3C2440的根文件系统(可能是本人搜索能力有限没有找到,请各位网友帮忙指正)。第一次写博客,其实也不知道从何说起。所以就按照老师课程讲解的方式写。也算对所学知识的一个总结。
首先介绍一个最小的根文件系统由什么组成:
1./dev/console /dev/null :这两部分是创建根文件系统所必备的,他指出了所需要的标准输入,标准输出,标准错误设备终端。
2.init 程序:其实当busybox安装好时,init程序文件已经有了。
3./etc/inittab:
4。配置文件指定的应用程序;
5.c库。
接下来介绍怎样制作这5部分:
1.编译安装busybox:
a。make menuconfig :创建一个.config的文件
b。make CROSS_COMPILE := arm-linux-
c。 make CONFIG_PREFIX=/path install :将busybox安装到指定的文件中,此处我们用first_fs;
安装完成后有 bin linuxrc->bin/busybox sbin usr 目录
2.创建/dev/console /dev/null
a。mkdir dev
b. cd dev
c.sudo mknod console c 5 1 :其中c为字符设备,5为主设备号,1位次设备号;
d.sudo mknod null c 1 3
3.init程序已在busybox中建成
4.创建/etc/inittab而不用默认的inittab,而在本文中只加console::askfirst:-bin/sh
a。mkdir etc
b. vi etc/inittab
c .在inittab中添加console::askfirst:-bin/sh
5.因为只做最小根文件系统,所以没有指定的用户程序
6.c库
a。在first_fs目录下创建lib目录
b。把以前编译好的glibc拷贝到lib中:cp /work/tools/gcc_3.4.5_glibc_2.3/arm-linux/lib/*.so* /work/nfs_root/first_fs/lib/ -d
到目前为止最小的根文件系统已经创建好了。此时first_fs目录下有 : bin dev etc lib linuxrc sbin usr 目录