VxWorks学习笔记——实战之在VMWare上安装VxWorks操作系统
准备工作
我们假设您有一台普通配置的PC机,并安装了Windows2000操作系统。其次您需要安装Tornado 2.2 For PcPentium研发环境。缺省安装的Tornado 2.2 For PcPentium可能不包括PcPentium的BSP组件,但该组件能够从风河公司(Windriver)的网站免费下载。
我们将在下文以WIND_BASE引用Tornado的安装路径。
其次是要安装VMWare软件,这里我们使用4.0的版本。假如您还没有该软件,也能够从VMWare的网站下载试用版。
最后,由于Tornado自带的PC-NET网卡驱动有问题,所以需要下载AMD的PC-NET网卡的VxWorks系统驱动,能够从AMD网站免费下载。
一张1.44M的软盘,用于制作系统引导盘。
准备并安装好以上软件后,就能够开始下一步的工作了。
开始安装
编译网卡驱动程式
VMWare为运行于其上的操作系统提供虚拟网卡支持,该网卡类型即为AMD的PC-NET。实际上,在Tornado研发包中已包含了该类型网卡的驱动程式,但经过测试,对于VMWare无法正常工作,所以您需要从AMD的网站下载最新的驱动程式。
下载得到的是个可执行的安装程式,运行该程式将得到一个压缩包和一个帮助文档,按照该帮助的需要,将压缩包直接释放到Tornado目录下。假如提示是否允许覆盖文档,则选择允许。
此后按如下步骤完成驱动程式的编译和替换:
打开一个控制台窗口,运行批处理程式:$(WIND_BASE)Hostx86-Win32In TorVars.Bat;
重新定位到$(WIND_BASE) Argetsrcdrvend目录,运行:
Make CPU=PENTIUM Tool=Gnu Ln97xend.O
其间会产生一些警告,但这不会影响我们的工作。
重新定位到$(WIND_BASE) ArgetlibpentiumPENTIUMcommon目录,并将上一步生成的文档Ln97xend.O复制到此目录下。备份此目录下的文档Libdrv.A;
运行命令Arpentium -D Libdrv.A Ln97xEnd.O,删除Libdrv.A中原有的Ln97xEnd模块,然后再运行命令:
Arpentium -Ra IOlicomEnd.O Libdrv.A Ln97xEnd.O
将我们刚刚创建的新模块添加进去。
到此有关网卡驱动的配置就完成了。注意不要关闭这个窗口,后面还要使用。
修改配置文档
在这一节中,我们要修改编译VxWorks的配置头文档Config.H中定义的一些参数,使编译出来的系统引导程式和VxWorks的映象符合我们的需要;同时还要修改SysLn97xEnd.C这个文档,以使系统的网络功能正常运行。
定位目录到$(WIND_BASE) ArgetconfigpcPentium并打开该目录下Config.H文档;
我们首先要修改VxWorks的启动参数。先查找到定义DEFAULT_BOOT_LINE宏的地方,修改预处理条件CPU == PENTIUM分支下的定义如下:
#Define DEFAULT_BOOT_LINE
"LnPci(0,0)Your_host_name:d:vxWorks H=192.168.80.169 E=192.168.80.254 U=Target Pw=Vxworks Tn=Target"
其中:
LnPci(0,0)指定了使用第0个网卡和第0个处理器,LnPci这个标识会因为使用的驱动程式不同而有所不同,但这里用LnPci就能够了;
Your_host_name指定您的主机的名字,使用Windows系统的主机名就能够;
D:vxWorks指定了VxWorks映象下载的完整路径;
H=192.168.80.169是主机的IP地址,就是您当前正在使用的系统的IP地址;
E=192.168.80.254是目标机的IP地址,也就是未来VxWorks操作系统的IP地址,您只要任意指定一个不冲突的IP地址即可,这里我们假设您的目标机IP地址和主机IP地址在同一个网段内;
U=Target指定了FTP服务器的用户名,这个FTP就是用来下载VxWorks映象的,后面还会提到;
Pw=Vxwroks是用户名对应的口令;
Tn=Target指定目标机的名字,任意指定即可;
您能够参考Tornado自带的手册以获取更多信息;
下面我们要指定使用什么样的网卡驱动程式。首先查找“Network Driver Options”这段文字,之后您能够看到在该注释后面定义了一系列的有关网卡驱动的宏定义。注意确保INCLUDE_END和INCLUDE_LN_97X_END这两个宏处于定义状态(Define),其他的宏都处于未定义状态(Undef);
缺省情况下,VxWorks系统是不接受外部输入设备(如键盘)的输入,也不向外部输出设备(如显示器)输出数据。为了便于调试,我们必须改变他的这种缺省状态。我们查找定位宏INCLUDE_PC_CONSOLE,然后确保其处于定义状态(Define)即可;
到此为止,对Config.H文档的修改就完成了,保存修改,然后再打开同一目录下的SysLn97xEnd.C文档;
这一步修改的目的是要使网卡正常工作。我们先定位到“Memory-Mapped IO Base”这段文字,然后将其前面的参数由PciRsrc[EndUnit].Bar[1]修改为NONE,这样就能够了。最后别忘了保存。
到此为止,全部的修改工作都完成了,下一步就能够开始编译连接了。
编译程式
这一节我们要编译生成Bootrom引导程式和VxWorks运行映象。
打开您的Tornado研发工具,在Build菜单下选择Build Boot ROM,弹出如下对话框:
在BSP列表中选择PcPentium,而在Image To Build列表中分别选择Bootrom和Gnu。完成选择后,点击OK按钮就开始引导程式的编译了。编译产生的文档Bootrom将保存在$(WIND_BASE) ArgetconfigpcPentium目录下。
编译生成Bootrom后,还要创建一个VxWorks映象(Image),也就是VxWorks操作系统本身的代码。
创建一个“Bootable VxWorks Image”的工程;
选择您需要的VxWorks组件。这一步是可选的,假如您只想使用缺省的配置,那根本就无需这一步;但假如您想使用额外的组件,例如,您可能想通过Telnet连接VxWorks系统,这时就需要在Workspace窗口的VxWorks选项卡中选择Telnet Sever对应的组件,如下图:
在这个例子中我们选择了两个重要的组件:Telnet Server 和 Target Shell 。前者使我们能够通过Telnet协议登录到VxWorks操作系统中;后者则能够让我们通过命令行控制VxWorks系统。
到此我们已生成了VxWorks的系统引导程式和运行时的代码映象。这里还要提醒读者,在您每次修改完系统的配置信息(如:Config.H)后,都要重新创建一个工程来编译VxWorks映象,以免出现代码不一致的问题。
将生成的名为“Vxworks”的文档复制到D盘根目录下。这个路径是由上面我们所配置的DEFAULT_BOOT_LINE宏中的路径参数决定的,必须保持二者一致。
|