• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

32M DOM或CF嵌入式Linux系统启动盘制作

发布: 2007-7-04 12:06 | 作者: admin | 来源:  网友评论 | 查看: 18次 | 进入软件测试论坛讨论

领测软件测试网

  作为嵌入式系统,使用环境通常都比较恶劣,而应用又比较简单。为系统的稳定通常都需要使用DOM、CF卡一类的存储设备来代替硬盘。因此需要制作一个小于32M的linux运行系统。

  使用到的软件包括:syslinux, busybox, linux kernel 2.4.18, redhat 9

 

  作为嵌入式系统,使用环境通常都比较恶劣,而应用又比较简单。为系统的稳定通常都需要使用DOM、CF卡一类的存储设备来代替硬盘。因此需要制作一个小于32M的linux运行系统。
一、准备软件环境
  1.一套linux的运行环境,选用redhat 9的基本安装,需要能够编译内核方便以后重新编译内核;
  2.bootloader软件,选用syslinux中的extlinux;
    http://syslinux.zytor.com
  3.主要系统应用程序,选用busybox;
    busybox能够以一个小型的应用程序提供整个命令集的功能。
    http://www.busybox.net
   
   
二、制作可以启动的盘
   
    fdisk /dev/hdc1
    本实验使用cf盘+cf to ide转换卡,用fdisk对盘进行分区,但这一步骤需要确认哪一个设备是cf卡。这个可以同dmesg来看。
   
    mke2fs /dev/hdc1
    格式化cf盘为ext2格式
   
    mkdir /mnt/cf
    mount /dev/hdc1 /mnt/cf
    extlinux /mnt/cf
    安装bootloader到cf卡上。
   
    完成以后cf卡基本可以引导,现在进行一次重启动测试一下。
    实验结果,只需要看到Extlinux 的信息即说明安装成功。
   
三、安装内核和配置引导
    由于目前只是实验先不进行内核裁减,直接使用redhat 9的内核文件。
    mount /dev/hdc1 /mnt/cf
    cp /boot/vmlinuz-version /mnt/cf/
    cp /boot/initrd-version.img /mnt/cf/
   
    vi /mnt/cf/extlinux.conf
    写入一下内容:
  default emblinux
  display logo.txt

  label emblinux
     kernel vmlinuz
     append root=/dev/hdc1 initrd=initrd.img splash=silent ide=nodma
     
    首先要注意的文件名为extlinux.conf,因为在syslinux和isolinux中都是使用.cfg的后缀,这样可能会给人一个错觉认为也是用.cfg。结果,我在这个地方花了不少的时间,终于找到一个帖子提到使用extlinux.conf。
    另外增加ide=nodma只适用在使用cf卡的情况,这个可以避免启动时因为读盘超时而无法继续的错误(0x58)。
   
    完成这些步骤,内核就能引导。
    这一步完成,重启能看到内核引导信息即为成功。

四、安装主要应用程序和运行环境
    mount /dev/hdc1 /mnt/cf
   
    创建需要的目录
    cd /mnt/cf
    mkdir etc bin sbin var usr lib tmp proc initrd dev
       
    根据busybox的说明编译,然后安装。
    make PREFIX=/mnt/cf install
   
    复制基本的dev文件
    cp -arf /dev/* /mnt/cf/dev/
    需要进行一些裁减,否则会超过限制大小。
   
    复制busybox下的examples/bootfloppy/etc目录下文件
    cp -arf examples/bootfloopy/etc/* /mnt/cf/etc
   
    编辑init.d/rcS文件
    vi /mnt/cf/etc/init.d/rcS
    增加
       /bin/sh
      
    复制lib
    先用ldd busybox看需要哪些so
    把相应的so复制到lib目录下,这一步比较关键。
    复制/lib/modules和/lib/security目录到/mnt/cf/lib目录下,并进行一些裁减。

   完成这最后一步,整个启动盘已经可以正常启动,并进入shell下。
  
   
   


   

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网