05 用busybox制作文件系统

用busybox制作自己的文件系统


busybox用于制作小型的文件系统,常用于嵌入式。


用busybox制作文件系统步骤:
    1.进入orangepi_sdk/source/busybox-1.25.0目录
    2.先清除编译出来的文件及配置文件:
        make distclean
    3.配置busybox:
        make  menuconfig  //进入配置界面

            Busybox Settings  --->          
                Build Options  ---> 
                    │[*] Build BusyBox as a static binary (no shared libs)  //静态编译busybox,编出来的程序不依赖其它动态库
                    (arm-linux-gnueabihf-) Cross Compiler prefix  //指定使用交叉编译器(光标移动这行后,按确认键进入输入模式)

    4.保存退出后,执行编译:
        make

    5.编译生成文件系统(在busybox源码根目录(即当前目录)下的_install目录):
        make install

    6.在根目录下创建disk3目录,然后把_install整个目录复制到/disk3/下,并改名h3fs

    7.进入/disk3/h3fs目录
        cd  /disk3/h3fs/

    8.在h3fs目录里创建文件系统所需的目录:
        mkdir  dev  proc  sys  tmp  var  mnt
        mkdir  var/log                                                              
        mkdir  var/lock                                                             
        mkdir  var/lib                                                              
        mkdir  var/run

    9.在h3fs目录里创建etc/init.d/rcS文件(用于进文件系统后的初始化工作(相当于PC上的/etc/rc.local)):
        mkdir etc/init.d -p
        touch etc/init.d/rcS

    10.修改h3fs里的etc/init.d/rcS,增加以下内容(为了指定目录使用指定的文件系统类型格式):
        mount -t proc none /proc
        mount -t sysfs none /sys
        mount -t tmpfs none /tmp
        mount -t ramfs none /dev
        mdev -s     //让mdev自动根据相应的驱动产生相应的设备文件
        syslogd     //产生日志的守护进程
        echo /sbin/mdev > /proc/sys/kernel/hotplug   //当硬件驱动有变化时,会调用mdev -s产生或移除相应的设备文件

    11.创建h3fs里的etc/inittab文件,并在文件中增加以下内容:
        ::sysinit:/etc/init.d/rcS   //用rcS作系统初始化
        ttyS0::askfirst:-/bin/sh    //使用ttyS0作板子的控制终端(板子上的就是ttyS0)

    12.创建h3fs里的etc/profile文件, 增加以下内容(增加环境变量):
        export PS1="^_^ \w # "  //用于命令行前面的提示符(\w为当进入不同目录时会自动改变为进入的目录路径)

    13.把应用程序所需的动态库从交叉编译器里复制到h3fs里:
        把交叉编译器(gcc-linaro-arm-linux-gnueabihf-4.7-2013.03-20130313_linux)里的arm-linux-gnueabihf/libc/lib/arm-linux-gnueabihf/目录里的内容,都复制到/disk3/h3fs/lib目录
        (注意:如果程序执行时报"not found",不是路径的问题,而是缺少动态库了)

    14.以上操作做完以后,还需要给整个文件系统目录设置权限:
        sudo chmod 0777 /disk3/h3fs -R

    15.把文件系统存放到SD卡的ext分区:
        (1)进入h3fs目录
        (2)tar cf fs.tar *    //把整个文件系统打成一个包3)把板上的SD卡接入PC
        (4)tar xf fs.tar -C /sd卡挂载目录        //解包到SD卡上(使用打包在解包,是为了能够把整个文件系统完整拷贝到sd卡中,防止部分文件丢失)

    16.把SD卡放回板子上启动,还需在uboot上设置环境变量bootargs(当启动时到倒计时时,可以通过按任意按键,跳过启动文件系统,从而直接进入uboot):
        setenv bootargs "root=/dev/mmcblk0p2 rw console=ttyS0,115200"  //此参数是告诉内核,文件系统是在第0个mmc设备的第2个分区(如果只有一个分区,则将mmcblk0p2改为mmcblk0p1),用ttyS0作控制终端,波特率为115200

    17.保存环境变量:
        saveenv

    18.重启:
        reset
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值