免费注册 查看新帖 |

Chinaunix

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

Linux下用Busy Box制作Ramdisk全过程 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-01-14 17:58 |只看该作者 |倒序浏览
 1 建立根文件系统结构
  #mkdir rootfs
  #cd rootfs
  #mkdir bin dev etc lib proc sbin tmp usr var
  #chmod 1777 tmp
  #mkdir usr/bin usr/lib usr/sbin
  #mkdir var/lib var/lock var/log var/run var/tmp
  #chmod 1777 var/tmp
  2 准备链接库
  #cd ${OBJ_LIB}/lib (${OBJ_LIB}是交叉编译环境的目录)
  #for file in libc libcrypt libdl libm
  >libpthread libresolv libutil
  >do
  >cp $file-*.so /home/fortis/rootfs/lib
  >cp -d $file.so.[*0-9] /home/fortis/rootfs/lib
  >done
  #cp -d ld*.so* /home/fortis/rootfs/lib
  3 使用busybox制作系统应用程序
  3.1 下载busybox(http://www.busybox.net/)并解压。
  3.2 进入解压后的目录,配置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.3.2/bin/armlinux)
      Cross Compiler prefix/* 指定交叉编译工具路径 */
      Init Utilities >
      
  • init
      
  • Support reading an inittab file
      /* 支持init读取/etc/inittab配置文件,一定要选上 */
      Shells >
      Choose your default shell (ash) >
      /* (X) ash 选中ash,这样生成的时候才会生成bin/sh文件
      * 看看我们前头的linuxrc脚本的头一句:
      * #!/bin/sh 是由bin/sh来解释执行的
      */
      
  • ash
      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 loopback mounts
      
  • Support for the old /etc/mtab file
      Networking Utilities >
      
  • inetd
      /*
      * 支持inetd超级服务器
      */
      3.3 编译并安装Busybox
      $make TARGET_ARCH=arm CROSS=armlinux
      PREFIX=/home/arm/dev_home/rootfs/my_rootfs/ all install
      PREFIX指明安装路径:就是我们根文件系统所在路径。
      4 准备所需的设备文件
      可以直接拷贝宿主机上的,或者自建几个就是。
      #cd rootfs/dev
      #mknod -m 600 console c 5 1
      5 创建linuxrc文件
      内容如下:
      $ vim rootfs/linuxrc
      #!/bin/sh
      echo "Hello linux ,gggggg"
      exec /sbin/init
      然后修改权限:chmod 775 linuxrc
      6 制作initrd映象文件
      #mkdir initrd
      #dd if=/dev/zero of=initrd.img bs=1k count=8192
      #/sbin/mke2fs -F -v -m0 initrd.img
      #mount -o loop initrd.img initrd
      #cp -av rootfs/* initrd
      #umount
      #gzip -9 initrd.img


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

    本版积分规则 发表回复

      

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

    清除 Cookies - ChinaUnix - Archiver - WAP - TOP