zoukankan      html  css  js  c++  java
  • 用busybox构建根文件系统

    一、静态编译busybox

     

    1、创建根文件系统的目录

    mkdir rootfs

    cd rootfs

    mkdir bin dev etc lib proc sbin sys mnt usr  var

    mkdir 1777 tmp  (我变更了/tmp目录的使用权,让它开启sticky位。为/tmp目录的使用权开启此位,将可保/tmp目录下所建立的文件,只有建立它的用户才有权删除)

    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

    3、安装/etc

    tar etc.tar.gz -C /xxx/rootfs

    目的:使在etc目录下产生四个文件

    Cd dev/

    Mknod -m 666 console c 5 1

    Mknod -m 666 null c 1 3

    Cd ..

    内核在引导时设备节点console,null必须存在

     

    4make menuconfig如果编译错误,就yum install ncurses-dev

    5、配置busybox:

    1、busybox setting -> build options 选中静态编译:Build busybox as a static binary

                                              installation options ->选中“do not use /usr”,选中该选项可以避免busybox被安装到宿主系统的/usr目录下,破坏宿主系统

    6、make

         make CONFIG_PREFIX=/home/flinux/rootfs/rootfs install /home/flinux/rootfs/rootfs是安装目录

     

    成功!

     

    二、动态编译busybox

     

    1、创建根文件系统的目录

    mkdir rootfs

    cd rootfs

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

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

    2、make menuconfig

    配置busybox:

    1、busybox setting -> build options 选中静态编译:Build busybox as a static binary

                                              installation options ->选中“do not use /usr”,选中该选项可以避免busybox被安装到宿主系统的/usr目录下,破坏宿主系统

    2、make make CONFIG_PREFIX=/home/flinux/rootfs/rootfs install

     

    3、安装arm-linux-gcc 的lib动态库

    Mkdir -p /nfsroot/rootfs/lib

    Cp  /usr/local/arm/4.4.1/arm-linux*/libc/lib/*.so* /nfsroot/rootfs/lib -d

     

    4、构建根文件系统

    1、构建etc目录

    1、创建etc /inittab:   

         #/etc/inittab

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

        ttySAC0::askfirst:-/bin/sh

        ::ctrlaltdel:/sbin/reboot

       ::shutdown:/bin/umount -a -r

     

    2、创建etc/init.d/rcS

    #!/bin/sh

    ifconfig eth0 192.168.1.17

    mount –a

    修改rcS的属性:

    Chmod +x etc/init.d/rcS

    3、创建etc/fstab

    文 件/etc/fstab存放的是系统中的文件系统信息。当正确的设置了该文件,则可以通过"mount /directoryname"命令来加载一个文 件系统,每种文件系统都对应一个独立的行,每行中的字段都有空格或tab键分开。同时fsck、mount、umount的等命令都利用该程序。

    #device     mount-point    type options           dump fsck   order

    proc        /proc      proc   defaults           0    0

    tmpfs   /tmp      tmpfs   defaults       0  0

     

    2、构建dev目录

          1、静态创建设备文件

           2、使用mdev创建设备文件

                 Console  mtdblock0  mtdblock1  mtdblock2  null  ttySAC0

          用这样的命令建立:

                sudo mknod console c 5 1

                sudo mknod null c 1 3

     

    3、制作/使用yaffs文件系统映像文件

  • 相关阅读:
    【35.39%】【hdu 3333】Turing Tree
    【???】【???】小麦亩产一百八
    【心情】NOIP2014记忆
    【???】【???】了不起的郁杨
    【45.61%】【codeforces 701D】As Fast As Possible
    js如何找到方法在哪个js文件
    sql报句柄无效。 (异常来自 HRESULT:0x80070006 (E_HANDLE))
    webform的页面缓存
    KindleEditor上传文件报404
    什么是publickeytoken及publickeytoken的作用
  • 原文地址:https://www.cnblogs.com/start530/p/3834413.html
Copyright © 2011-2022 走看看