zoukankan      html  css  js  c++  java
  • 改进根文件系统

    前面已经制作好了最小根文件系统,但是并不完善,下面来完善

    一、增加 proc 虚拟文件系统,proc 是内核提供一个虚拟的文件系统,收集内核的信息

      在串口中启动文件系统后可测试 用命令 ps 提示没有这个目录,那么我们创建一个 mkdir proc 再 ps 同样没有信息,手工挂载 mount -t proc none /proc 再次ps 可以看到有很多进程信息。

      所以我们在制作根文件系统时就可以先做好,上面是手工挂载,我们做成自动挂载 进入根文件系统目录

      mkdir proc 

      修改配置文件 在原来的基础上增加一项

      vi etc/inittab

      原来的内容是

        console::askfirst:-/bin/sh

      增加后的内容是

        console::askfirst:-/bin/sh

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

      到这里我们增加了,但实际我们还没有,所以要他建

        mkdir etc/init.d

        vi etc/init.d/rcS

          在这里可以把手工挂接的命令加进来,但我们采用另一种方法用 mount -a(这条命令就是去读etc/fstab这个配置文件的内容,去挂载) 所以我们这里写 mount -a 然后后面创建 etc/fstab

          mount -a

        vi etc/fstab

          # device      mount-point      type     options    dump     fsck     order      //这一行是注释

          proc          /proc            proc      defaults   0       0

      这里我们可以再测试一下,看烧进板子后是否会自动挂载 proc 

    二、增加mdev机制

      查看 busybox 内的mdev 文档有说明下面列出改进内容

      vi etc/init.d/rcS

        mount -a

        mkdir /dev/pts
        mount -t devpts devpts /dev/pts
        echo /sbin/mdev > /proc/sys/kernel/hotplug
        mdev -s

      vi etc/fstab

        proc /proc proc defaults 0 0
        tmpfs /tmp tmpfs defaults 0 0
        sysfs /sys sysfs defaults 0 0
        tmpfs /dev tmpfs defaults 0 0

      到此就完成了根文件系统的改进

    三、NFS

      为了方便后续的驱动开发,不用每次重烧文件系统,可采用NFS挂载或启动方式。

      1.从FLASH上启动根文件系统,再用命令挂接 

      NFS挂接需要满足两个要件

      服务器允许 那个目录可被挂接 (即NFS服务 配置文件目录是 /etc/exports  在这个文件里定义可被挂接的目录即可)

        sudo /etc/exports 增加可被挂接的目录

      重启NFS服务 sudo /etc/init.d/nfs-kernel-server restart

      测试 sudo mount -t nfs 192.168.0.104:/work/filesys/fs_mini_mdev /mnt 成功表示完成设置

      单板去挂接 

        mount -t nfs -o nolock 192.168.0.104:/work/filesys/fs_mini_mdev /mnt

      成功后,在单板上mnt目录里的内容和服务器上的根文件系统目录的内容是一样的,服务器内容更改,单板马上可以看到相同变化

      2:直接从NFS启动

        需要修改命令行参数 格式可在 内核 Documentation/nfsroot 有说明

        set bootargs console=ttySAC0,115200 root=/dev/nfs nfsroot=192.168.0.104:/work/filesys/fs_mini_mdev ip=192.168.0.105:192.168.0.104:192.168.0.1:255.255.255.0::eth0:off

        这里就可以从NFS启动了。

      根文件系统相关到此结束。

      

    钻木取火!拼的是体力?耐心?智慧?
  • 相关阅读:
    WPF添加ResourceDictionary后【The Property "Resource" can only be set once】问题
    WPF中获取匿名(Anonymous)对象的键值方法(例如DataGrid绑定List<无名元素>时)
    安装Win10到移动硬盘的利器:WTGA
    xcodebuild 能在模拟器上运行测试啦
    Jenkins Mac slave 遇到 git: 'credential-osxkeychain' is not a git command. 错误
    远程调试UWP遇到新错误Could not generate the root folder for app package ......
    开始学习python
    文件打包
    统计 某个目录下 所有的文件的行数
    根据进程名称获取进程id
  • 原文地址:https://www.cnblogs.com/x2i0e19linux/p/11674214.html
Copyright © 2011-2022 走看看