zoukankan      html  css  js  c++  java
  • 一步一步制作yaffs/yaffs2根文件系统(二)---安装BusyBox,构造/bin、/sbin、/usr、linuxr

                                开发环境:Ubuntu 12.04

                                开发板:mini2440  256M NandFlash   64M SDRAM

                                 交叉编译器:arm-linux-gcc 4.4.3 点此可下载

                                 BusyBox版本:busybox-1.13.3  点此可下载

                                yaffs制作工具:mkyaffsimage

                                yaffs2制作工具:mkyaffs2image(适合64M)、mkyaffs2image-128(适合128M以上,我的256M的用这个)

    接上一节:http://blog.csdn.net/mybelief321/article/details/9995199

    1、首先,将咱们制作根文件系统的BusyBox和mkyaffs2image-128M存放在一个文件夹内,如下

     

    2、执行命令:mkdir rootfs  建立一个文件夹rootfs,咱们的根文件目录将建立在这里,要记得这个目录的绝对路径奥,我的路径为/home/song/rootfs_make/rootfs,咱们在安装BusyBox的时候要使用这个路径。


    配置BusyBox

    3、执行命令:tar -zxf busybox-1.13.3.tar.gz   解压咱们的busybox (注意,该命令前边千万不要加sudo啊!)


    4、BusyBox集合了几百个命令,在一般系统中并不需要全部使用。可以通过配置 BusyBox来选择这些命令、定制某些命令的功能(选项)、指定BusyBox的连接方法(动态连接还是静态连接)、指定BusyBox的安装路径。执行命令:cd busybox-1.7.0/  进入该文件夹


    5、执行命令:make menuconfig 进入图形配置界面。



    6、下面仅介绍一些常用的选项,以后可以自己添加补全。

    Busybox Settings  ---> 

       Busybox Library Tuning  ---> 

          [*]   Fancy shell prompts 

    选择Facncy Shell prompts一项,这可以使我们在profile这个文件中设置的命令提示符PS1中的转义字符生效


    7、指定是否使用静态连接

    Busybox Settings  ---> 

        Build Options  ---> 

                 [ *] Build BusyBox as a static binary (no shared libs) 

    这里选择静态链接,以静态链接的方式生成需要的命令!我按照韦老师上使用动态链接没有成功


    8、选择交叉编译工具

    Busybox Settings  ---> 

        Build Options  ---> 

            ()  Cross Compiler prefix 

    进入Cross Compiler prefix中编辑交叉编译工具前缀为arm-linux-,如下图


      

    9、支持mdev。这可以很方便地构造 /dev目录,并且可以支持热插拔设备。另外,为方便调试,选中mount、umount命令,并让mount命令支持NFS(网络根文件系统)

    Linux System Utilities  ---> 

         [*] mdev

         [*]   Support /etc/mdev.conf    

         [*]     Support command execution at device addition/removal 

         [*] mount 
         [*]   Support mounting NFS file systems 

         [*] umount                                                           
         [*]   Support option -a

    以上这些选项默认都是选择的。    

    10、支持Initttab。

    Init Utilities  ---> 

        [*]   Support reading an inittab file

    选择这一项,可以使我们放在/etc下的inittab这个文件被busybox 的init进程解析,如下图


    以上这些选项,默认的好像都选上了!

    11、配置完这些后,退出,选择YES保存

     

    编译和安装BusyBox

    12、执行命令:make 编译Busybox


    出现下图,编译完成


    友情提示:在这里不要随便使用sudo,我前边用的sudo makemenuconfig  、sudo vim Makefile 、sudo make结果出现了下边的提示错误,很可恶的!!!

    13、执行命令:make CONFIG_PREFIX=/home/song/rootfs_make/rootfs install   将BusyBox安装到你创建的rootfs文件夹内


    出现下图表示已经安装完成


    14、执行命令:cd ../rootfs/  进入咱们的rootfs文件夹内,可以看到BusyBox已经安装到了此目录,自动生成了/bin /sbin /usr linuxrc这4个目录和文件


    下一节:http://blog.csdn.net/mybelief321/article/details/10007075

          

       




  • 相关阅读:
    HDU Problem 1811 Rank of Tetris【拓扑排序+并查集】
    POJ Problem 2367 Genealogical tree【拓扑排序】
    HDU Problem 2647 Reward【拓扑排序】
    HDU Problem 1285 确定比赛名次【拓扑排序】
    HDU Problem HDU Today 【最短路】
    HDU Problem 3665 Seaside【最短路】
    HDU Problem 一个人的旅行 【最短路dijkstra】
    HDU Problem 1596 find the safest road【最短路dijkstra】
    Beyond Compare文本合并进行内容替换要注意什么
    用这些工具都可以比较代码的差异
  • 原文地址:https://www.cnblogs.com/james1207/p/3265443.html
Copyright © 2011-2022 走看看