构建linux根文件系统笔记

来源:互联网 发布:宋神宗资治通鉴序 知乎 编辑:程序博客网 时间:2024/06/02 02:00

一、开发环境

1、内核:Linux 2.6.22.6;

2、JZ2440;

3、ubuntu 9.10;

4、busybox-1.7.0.tar.bz2。

5、mkyaffs2image

二、构建过程(先建好自己想放文件系统的目录,我起的目录命字myfs,命令mkdir myfs

1、用busy box构建/bin,/sbin,/linuxrc,/usr目录。请见《构建根文件系统-busybox》

2、构建/ect目录。

 book@book-desktop:~/workspace/myfs$ mkdir etc

 (1)创建inittab文件。这是系统正常启动后首先执行的的程序。

 book@book-desktop:~/workspace/myfs$ vi etc/inittab

 添加   ::sysinit:etc/init.d/rcS

 console::askfirst:-bin/sh ,按esc:wq保存离开。

 (2)创建etc/init.d/rcS文件。这是一个脚本文件,可以在里面添加想自动执行的命令。在系统执行inittab文件的::  sysinit:etc/init.d/rcS时,就会执行这个rcS文件。

 book@book-desktop:~/workspace/myfs$ vi etc/init.d/rcS

 在rcS添加 mount-a ,这个命令会根据/etc/fstab文件挂载文件系统。所以还要创建/etc/fstab文件。

 (3)创建/etc/fstab文件。在这里添加要挂载的文件系统。

 book@book-desktop:~/workspace/myfs$ vi /etc/fstab

 如添加,

 #device mount-point  type  options  dump  fsck  order
 proc   /proc      proc  defaults  0    0

 tmpfs  /tmp      tmpfs  defaults  0    0

 这样就可以自动挂载proc、tmpfs文件系统了。

3、构建/dev目录。

 book@book-desktop:~/workspace/myfs$ mkdir dev

 (1)建两个设备文件系统就可以启动。

 book@book-desktop:~/workspace/myfs$ cd dev
 book@book-desktop:~/workspace/myfs/dev$ sudo mknod console c 5 1
 book@book-desktop:~/workspace/myfs/dev$ sudo mknod null c 1 3
 查看一下:
 book@book-desktop:~/workspace/myfs/dev$ ls -l
 crw-r--r-- 1 root root 5, 1 2017-02-19 20:54 console
 crw-r--r-- 1 root root 1, 3 2017-02-19 20:55 null

(2)另外,想动态更新/dev目录,还要支持mdev。它还支持初始化/dev目录和热插拔。

 建sys目录:mkdir sys

 在/etc/fstab文件中添加

 sysfs    /sys         sysfs defaults 0      0
 tmpfs    /dev         tmpfs defaults 0      0
 在etc/init.d/rcS文件中添加。
 mk dir /dev/pts
 mount -t devpts devpts /dev/pts
 echo /sbin/mdev > /proc/sys/kernel/hotplug
 mdev -s

4、安装glibc。

 制作交叉编译工具链时,已经生成glibc库,这里直接拷过来即可。

 先建/lib目录。

 book@book-desktop:~/workspace/myfs$ mkdir lib

 找到安装gcc的目录。进入arm-linux-->lib。拷贝到刚建的目录。
 book@book-desktop:~/workspace/myfs$ cd /work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib
 book@book-desktop:/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib$ cp *.so* /home/book/workspace/myfs/lib -d

5、构建其他目录,可以是空目录,如/proc,/mnt,/tmp,/sys,/root。

 book@book-desktop:~/workspace/myfs$ mkdir proc mnt tmp sys root

三、制作映像文件

使用工具mkyaffs2image制作。先把mkyaffs2image文件拷到/usr/local/bin/目录下,然后使用命令:

book@book-desktop:~/workspace$ mkyaffs2image myfs myfs.yaffs2

四、下载验证


选j,使用dnw下载。或者使用tftp下载。

下载完成,重新启动。进入刚才设置的-bin/sh。就可以使用shell命令了,如ls。


进入到/dev目录,使用ls命令。可以看到很多设备文件,这就是mdev自动创建的。


使用cat命令,可以看到我们刚才挂载的文件系统。




0 0
原创粉丝点击