zoukankan      html  css  js  c++  java
  • Linux 根文件系统的制作

    一。建立根文件系统目录与文件

      1. 创建目录

        #mkdir rootfs

        #cd rootfs

        #mkdir bin dev etc lib proc sbin sys usr mnt tmp var

        #mkdir usr/bin usr/lib usr/sbin lib/modules

      2. 创建设备文件

        #cd rootfs/dev

        #mknod -m 666 console c 5 1

        #mknod -m 666 null c 1 3

      3. 加入配置文件

        #tar etc.tar.gz

        #mv etc/* …/root/etc/ -rf

      4. 添加内核模块

        #cd …/linux

        #make modules ARCH=arm CROSS_COMPILE=arm-linux-

        #make modules_install ARCH=arm INSTALL_MOD_PATH=…/rootfs

      5. 编译busybox

        1.配置busybox 

          #make menuconfig

          Busybox Settings àbuild Options->

          *选中“Build busybox as a static binary”, 静态链接

          *Cross Compiler prefix (arm-linux-)

          Installation Options->

          *选中“Don‘t use /usr”, 选中该项可以避免busybox 被安装到宿主系统的/usr目录下,破坏宿主系统

          *Busybox Installation Prefix (/xxx/rootfs)

          该选项表明编译后的busybox的安装位置

        2. 编译、安装busybox

          #make

          #make install

    二。挂载根文件系统到内核

      1. 挂载方式简介

       (1). 文件系统类型

           根据存储设备的硬件特性、系统需求,不同的文件系统类型有不同的应用场合。

           在嵌入式Linux应用中,主要的存储设备为RAM 和FLASH,

           常用的基于存储设备的文件系统类型包括:jffs2, yaffs2, ubifs, ramdisk等

       (2). 系统类型

          #基于nandflash的文件系统 yaffs2 ,UbiFS(可读可写)

          #基于norflash的文件系统  Jffs2

          #基于内存的文件系统 rmdisk , Initramfs

          #基于网络的文件系统 NFS

      2. initranfs挂载

        1. #cd …/rootfs/#ln –s ./bin/busybox init

        2. 配置Linux内核,支持initramfs

          

        3. 编译

        4. 设置环境变量

          setenv bootargsnoinitrd console=ttySAC0,115200 

      3. NFS挂载

        

    setenv bootargs noinitrd

           console=ttySAC0,115200 init=/init

          root=/dev/nfs rw

          nfsroot=192.168.1.3:/home/s5-ARM/Part4/rootfs,proto=tcp,nfsvers=

          3ip=192.168.1.6:192.168.1.3:192.168.1.1:255.255.255.0::eth0:off

  • 相关阅读:
    Istio技术与实践02:源码解析之Istio on Kubernetes 统一服务发现
    Istio技术与实践01: 源码解析之Pilot多云平台服务发现机制
    深度剖析Kubernetes API Server三部曲
    深度剖析Kubernetes API Server三部曲
    深度剖析Kubernetes API Server三部曲
    深入了解Kubernetes REST API的工作方式
    Cassandra schema version 不一致
    ByteToMessageDecoder
    Byte Bit
    为什么要用Executors.defaultThreadFactory().newThread(run);创建线程?
  • 原文地址:https://www.cnblogs.com/lvxiaoning/p/5002901.html
Copyright © 2011-2022 走看看