免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 925 | 回复: 0
打印 上一主题 下一主题

利用busybox1.1.3进行简单的文件系统的创建 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-02-05 14:18 |只看该作者 |倒序浏览

利用busybox1.1.3进行简单的文件系统的创建
主要参考的是《linux系统移植开发文档中的步骤》
我用的是NFS方式进行文件系统的挂载,所以首先要配置好主机上的nfs文件系统,然后将板子上的启动参数设置好。我的板子上是sbc2410,bootloader是vivi。编译环境是arm-linux-3.3.2 。
首先是构建根文件系统:
#mkdir nfsd
#pwd
/home/bz/
#cd nfsd
#
在nfsd中建立linux目录树
#mkdir bin dev etc home lib mnt proc sbin sys tmp root usr
#mkdir mnt/etc
#mkdir usr/bin usr/lib usr/sbin
#touch linuxrc
#tree
(其中的linuxrc是一个启动脚本,是一个shell脚本文件。对于简单的文件系统可以不用建立,因为在busybox生成的过程中会生成一个linuxrc文件将你生成的覆盖,但是系统能够正常的运行)。

http://www.busybox.net/downloads/busybox-1.1.3.tar.bz2/ 下载busybox-1.1.3
到目录当中,并且解压。
进入解压后的目录中,配置BUSYBOX
#make menuconfig
###############################################################
Busybox Settings >
General Configuration >
  • Support for devfs
    Build Options >
  • Build BusyBox as a static binary (no shared libs)
    /* 将busybox编译为静态连接,少了启动时找动态库的麻烦 */
  • Do you want to build BusyBox with a Cross Compiler?
    (/usr/local/arm/3.4.1/bin/arm-linux-)(按下enter键修改)
    Cross Compiler prefix
    /* 指定交叉编译工具路径 */
    Init Utilities >
  • init
  • Support reading an inittab file
    /* 支持init读取/etc/inittab配置文件,一定要选上 */
    Shells >
    Choose your default shell (ash) >(注意括号中的应该是ash,而不是none)
    /* (X) ash 选中ash,这样生成的时候才会生成bin/sh文件
    * 看看我们前头的linuxrc脚本的头一句:
    * #!/bin/sh 是由bin/sh来解释执行的
    */
  • ash
    ###################################################################################
    另外,按照他的这种方法做出来的文件系统,运行的时候 shell 并不好有,没有历史记录、自动补全、删除字符的功能,下面介绍如何为它添加这些功能:
                   Shells --->
    ---   Bourne Shell Options                                            
       [ ]   Hide message on interactive shell startup                    
       [ ]   Standalone shell                                             
       
  •    command line editing                                         
       
  •      vi-style line editing commands                             
          (15)    history size                                          
       
  •      history saving                                             
       
  •      tab completion                                             
       
  •        username completion                                    
       [ ]     Fancy shell prompts
    ###################################################################################
    Coreutils >
  • cp
  • cat
  • ls
  • mkdir
  • echo (basic SuSv3 version taking no options)
  • env
  • mv
  • pwd
  • rm
  • touch
    Editors >
  • vi
    Linux System Utilities >
  • mount
  • umount
  • support mounting NFS file system
  • Support loopback mounts
  • Support for the old /etc/mtab file
    Networking Utilities >
  • inetd
    /*支持inetd 超级服务器
    inetd的配置文件为/etc/inetd.conf文件*/
    ##########################################################
    Linux Module Utilities  --->
            
  • insmod                  
            
  • rmmod                                   
            
  • lsmod                  
            
  •    lsmod pretty output for 2.6.x Linux kernels                     
            
  • modprobe                                             
          
  •    Multiple options parsing               
                         ---   Options common to multiple modutils               
            
  •    Support tainted module checking with new kernels            
          
    [ ]   Support version 2.2.x to 2.4.x Linux kernels    //此项一定不要选!!!
          
  •    Support version 2.6.x Linux kernels                                         
    ########################################################################
    编译并且安装Busybox
    #make TARGET_ARCH=arm CROSS=arm-linux- PREFIX=/home/bz/nfsd/ all install
    PREFIX 指明安装的路径:就是我们根文件系统所在的路径。
    (只要install busybox ,我们的根文件系统下先前建立好的linuxrc就会被覆盖为一个同名的二进制文件,所以事先备份好自己的linuxrc ,在安装完busybox之后,将linuxrc复制回去就好,这里就用它自己生成的linuxrc文件)。
    下面在在etc下创建目录init.d
    cd init.d
    创建脚本rcS
    内容如下:
    #! /bin/sh
    保存,并修改rcS的权限,否则会出现Cannot run ‘/etc/init.d/rcS’:Permission denied的错误:
    chmod 775 rcS
    在etc目录下编写挂载表fstab
    proc /proc proc defaults 0 0
    sysfs /sys sysfs defaults  0 0
    none /dev/pts devpts mod=0622 0 0
    tmpfs /dev/shm tmpfs defaults 0 0
    不用其他的配置或者文件,重启板子,这个系统就成功的挂载上了,这也算是一个比较最简单的文件系统了。如果想要增加功能可以在这个基础上进行。


    本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/87492/showart_1814213.html
  • 您需要登录后才可以回帖 登录 | 注册

    本版积分规则 发表回复

      

    北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
    未成年举报专区
    中国互联网协会会员  联系我们:huangweiwei@itpub.net
    感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

    清除 Cookies - ChinaUnix - Archiver - WAP - TOP