• 2008-04-15

    在VMware上运行Redboot - [实验]

    版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
    http://redboot.blogbus.com/logs/19114095.html

     ---在VMware上运行Redboot


    前面说了,Redboot和eCos可以运行在很多不同的硬件体系之上。不过,我们最容易接触到的还是pc。为了更好的理解Redboot和eCos的相关代码,我们会在最近几篇文章中做一些简单的实验,把它跑到pc上实际运行一下。然后,对其代码进行分析,以便更好地了解它。

    之后也会在arm或mips上做一些实验,从而更深入理解Redboot,eCos在不同的cpu体系架构上的实现。

    相关的实验会在VMware上进行,我这边用的是VMware workstation 5.5的版本。

     1 准备工作
      Host主机是一台linux机器,我这边也是安装在vmware上的一个linux,用的是ubuntu发行版。

      然后需要下载两个软件包,一个是eCos的源码包,另一个是编译工具链。

      可以到eCos的镜像网站上找到相关软件下载。
     
      我用的是下面的地址:

        eCos2.0 

        编译工具链

     

     2 搭建环境
      建立一个实验目录,如: /opt/redboot
       将两个软件包拷贝到该目录下,然后释放:
       tar xjvf ecos-2.0.i386linux.tar.bz2
       tar xjvf ecoscentric-gnutools-i386-elf-1.4-2.i386linux.tar.bz2

      3 建立编译脚本文件 redboot.env

    ---
    export PRJ_PATH=/opt/redboot
    export ECOS_REPOSITORY=$PRJ_PATH/ecos-2.0/packages/
    export PATH=$PATH:$PRJ_PATH/gnutools/i386-elf/bin/:$PRJ_PATH/ecos-2.0/tools/bin


    rm build -rf
    mkdir build
    cd build
    ecosconfig new pc redboot
    ecosconfig import ${PRJ_PATH}/ecos-2.0/packages/hal/i386/pc/v2_0/misc/redboot_FLOPPY.ecm
    ecosconfig tree
    make
    dd if=/dev/zero of=./install/bin/redboot.img bs=512 count=2880
    dd if=./install/bin/redboot.bin of=./install/bin/redboot.img conv=notrunc
    ---

     4 编译
      运行脚本: source redboot.env

      生成redboot软盘镜像文件: /opt/redboot/build/install/bin/redboot.img

    5 建立一个新的虚拟机
      添加一个软盘驱动,使用生成的软盘镜像。
      在新的虚拟机里面删除硬盘和cdrom (否则vmware会有问题,原因不明)
     
      运行虚拟机即可, 启动后可以看到下图 :

     


     这样一个Redboot在VMware里面就运行起来了,怎么样简单吧 ^_^

    你可以在里面输入一些命令,比如 help 之类的。

    不过,你也许会发现,有一个提示:
    "No network interfaces found"

    对,由于当前网卡驱动不符,无法建立网络连接,下次我们会介绍如何选择正确的网卡驱动,
    以及配置一些其他选项,生成一个支持网络连接的Redboot。

    好了,这次实验就到此结束,如果有时间你可以回顾一下那个编译脚本 redboot.env。
    了解一下Redboot的编译过程。更详细的介绍会在下次给出,再见!


     
     

      



    收藏到:Del.icio.us




    评论

  • 谢谢 关注^_^
  • 我按照作者的方法遇到一个问题:
    tail: cannot open `+2' for reading: No such file or directory

    google一下发现是我的tail版本高了。
    新版本POSIX用’tail +2’命令不能正确显示文件前两行内容,必须用’tail –n +2’命令才行。
    所以在:
    ecosconfig new pc redboot
    ecosconfig import ${PRJ_PATH}/ecos-2.0/packages/hal/i386/pc/v2_0/misc/redboot_FLOPPY.ecm
    ecosconfig tree
    之后先改掉
    nano hal/i386/arch/v2_0/makefile
    里的那2个地方,在去make

    BTW:感谢作者,刚接触到eCos差点按书上的方法去down cygwin,少走不少冤枉路。