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

    一、如何制作一个根文件系统

    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 dev/ 
    mknod -m 666 console c 5 1
    mknod -m 666 null c 1 3
    cd ..

    3、安/etc

           tar etc.tar.gz C /xxx/rootfs

    4、编译模块

      Linux核目录( linux 2.6.29) make modules ARCH=arm CROSS_COMPILE=arm-linux-

    5、安装

           make modules_install ARCH=arm    INSTALL_MOD_PATH=/xxx/rootfs

    6 、配置busybox

            进入busybox目录执行

            make menuconfig

    a、Busybox Settings ->build Options->
    • 选中 “Build busybox as a static binary”,静态链接
    • Cross Compiler prefix (arm-linux-)
    b、 Installation Options->
    • 选中 “Don‘t use /usr”,选中项可以避免 busybox被安装到宿主系统的 /usr目录下,破坏宿主系统
    • Busybox Installation Prefix (/xxx/rootfs)选项表编译后的busybox的安装位置
    7、编译安busybox
    • make ARCH=arm CROSS_COMPILE=arm-linux-
    •  make install

    二、Ramdisk

    基于前步骤制作好件系统,可进ramdisk骤如:

    1、 genext2fs -b 8192 -d /xxx/rootfs ramdisk

              ** genext2fs为产ramdisk**

    2、 gzip -9 -f ramdisk

    3、制作init ramdisk

          mkinitrd initrd-$version $version  (Ubuntu下面没有mkinitrd, 相应的命令为 mkinitramfs -o initrd-$version $version)

          例:

              mkinitrd initrd-2.6.29 2.6.29  

          **这是将/lib/modules/$vesion 制作成ramdisk**

          *$version 可以通过查询/lib/modules下的目录得到

    4:解压:

    file initrd看是否是gzip compressed data, was "initrd.img"

    cp initrd initrd.img.gz
    gunzip initrd.img.gz
    mkdir tmp
    cd tmp cpio
    -ivmd <initrd.new.img

    5:压缩:

    find . | cpio -c -o > ../initrd.img

    gzip ../initrd.img

  • 相关阅读:
    Java面向对象编程之异常处理机制
    LinkedList链式集合
    Java之反射机制
    适配器模式
    QuickHit
    Java之单例模式
    Java面向对象之接口
    多线程
    线程同步
    试题分析
  • 原文地址:https://www.cnblogs.com/dolphi/p/2420253.html
Copyright © 2011-2022 走看看