三。制作根文件系统

busybox版本:1.20

大家发现什么问题一定要告诉我,大家一起学习


########### 制作根文件系统 #############

1.busybox目录一个工具集 ---编译生成--->busybox文件(ls、chmod、...)
    注:busybox包括的都是外部命令,没有内部命令(cd、...)
2.找到busybox的压缩包
    tar -xvf busybox-1.20.1.tar.bz2        //我用的版本1.20
    cd busybox-1.20.1

    vim Makefile
<->    164        CROSS_COMPILE ?= arm-linux-
    //修改成相应平台的编译器    

    make defconfig
    //先使用默认配置编译一下

    make menuconfig
    //进入配置页面
        Linux Module Utilities  --->
         [*] modinfo    //查看模块信息
         [ ] Simplified modutils//这个默认是选上的,去掉会出来下面的选项;模块相关的
         [*]   insmod    //插入模块
         [*]   rmmod    //删除模块
         [*]   lsmod    //查看存在的模块
         [ ]     Pretty output (NEW)
         [*]   modprobe    //插入模块
         [ ]     Blacklist support (NEW)
         [*]   depmod                     
        Busybox Settings  --->
         Build Options  --->
           [*] Build BusyBox as a static binary (no shared libs)
            //选上后,busybox的库是静态链接的,以后使用不会依赖于其它的库
    ===========================================================================
    = modinfo:查看模块信息
    = insmod:插入模块时,若模块有依赖模块,需先插入被依赖的库,再插入所需的模块
    = rmmod:删除模块时,若模块有依赖模块,被依赖模块必须保证是先删除的
    = lsmod:查看模块
    = modprobe:优点:会自动解决依赖关系;缺点:必须事先 make install,才能自动解决依赖
    =     modprobe xxx.ko <插入模块> | modprobe -r xxx.ko <删除模块>
    ===========================================================================

    make -j4    //4代表是CPU是几线程
    make install    //装载到默认目录下

    cd _install        //默认的生成目录
    mv /nfsroot /nfsroot_bac    //将以前的文件系统备份一下
    mkdir /nfsroot    //创建新的根
    chmod 777 /nfsroot    //修改根的权限
    cp * /nfsroot -rf    //将busybox 生成的都拷贝到根下
    cd /nfsroot
    mkdir proc root mnt var opt dev tmp sys        //创建文件系统所需的全部目录
    cp <path>/busybox-1.20.1/examples/bootfloppy/etc/ . -rf        //拷贝etc 目录
    cp /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/lib/ . -rf    //拷贝交叉编译器的lib 目录

    cd dev
    mknod console c 5 1    //创建设备接点,console:设备名,c:字符设备,5:主设备号,1:次设备号

    cd ..
    cd etc
    vim fstab    //挂在各种文件系统
        //proc:文件系统类型;/proc:挂载到哪个目录;0    0:默认配置,属性按默认
        //ps命令就是从proc 目录中读信息,很多命令都依赖于proc
        proc   /proc   proc    defaults    0   0    
        sysfs  /sys    sysfs   defaults    0   0
        tmpfs  /tmp    tmpfs   defaults    0   0
        ==上面三句等价于下面三句=====================
        = mount -t proc none /proc
        = mount -t sysfs none /sys
        = mount -t tmpfs none /tmp    
        =========================================
    vim profile
        #my profile
        echo "Rootfs by Musesea"
        date    //显示日期
        PS1="[musesea@MS \W]# "        //命令提示符
        HOME=/root        //家目录
        mdev -s &    //自动检测,创建全部的设备接点;&:后台执行
    cd ..

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值