构建linux根文件系统笔记

    xiaoxiao2021-03-31  35

    一、开发环境

    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命令,可以看到我们刚才挂载的文件系统。

    转载请注明原文地址: https://ju.6miu.com/read-665276.html

    最新回复(0)