今天参考“在VMWare上安装VxWorks操作系统”一文,把vxworks安装在vmware上,并配置vmware了使用双网卡充
当网关。本着交流学习的目的,把自己的一点点心得贴出来,第一次在贵站发贴,有错误欢迎指正。
实现的工具如下:
1.一台普通配置的PC机,并安装了Windows2000操作系统
2.包括pcPentium的BSP组件的Tornado 2.2 for pcPentium
3.VMWare软件4.5.2
4.AMD的PC-NET网卡的VxWorks系统驱动
(http://www.amd.com/us-en/ConnectivitySolutions/ProductInformation/0,,50_2330_6629_2452^2454^2488,0
0.html)
5.RamdiskForNT1.5
安装的步骤大致如下,在值得注意的地方加以了注明。
1.替换原有的网卡驱动模块
此后按如下步骤完成驱动程序的编译和替换:
打开一个控制台窗口,运行批处理程序:
$(WIND_BASE)\host\x86-win32\bin\torVars.bat;
重新定位到$(WIND_BASE)\target\src\drv\end目录,运行:
make CPU=PENTIUM tool=gnu ln97xend.o
其间会产生一些警告,但这不会影响我们的工作。
重新定位到$(WIND_BASE)\target\lib\pentium\PENTIUM\common目录,并将上一步生成的文件ln97xend.o复制到
此目录下。备份此目录下的文件libdrv.a;
运行命令arpentium -d libdrv.a ln97xEnd.o,删除libdrv.a中原有的ln97xEnd模块,然后再运行命令:
arpentium -ra iOlicomEnd.o libdrv.aln97xEnd.o
将我们刚刚创建的新模块添加进去
4.修改bsp目录下的config.h文件(本实验的BSP目录是D:\Tornado\target\config\pcPentium)
#define DEFAULT_BOOT_LINE 行为
"lnPci(0,0)yang:d:\\vxWorks h=192.168.0.129 e=192.168.0.254 u=targetpw=vxworks tn=target" (比如本
机的机器名添为libin,hostip设为192.168.0.241,为使目标机器处于同一网段,进行ftp下载vxworks镜像。E
=192.168.0.252)
5.保证INCLUDE_END和INCLUDE_LN_97X_END这两个宏处于定义状态(define),其他的宏都处于未定义状态(
undef)
6.INCLUDE_PC_CONSOLE,然后保证其处于定义状态(define);
7.sysLn97xEnd.c文件;这一步修改的目的是要使网卡正常工作。我们先定位到“memory-mapped IO base”这段
文字,然后将其前面的参数由pciRsrc[endUnit].bar[1]修改为NONE,这样就可以了。最后别忘了保存。(改写时
忘了加一个,符号,在编译生成bootrom出错,启动盘里的bootrom故不能启动,显示1.6+++++++++++++++++++等
等,然后死机不动)
8.修改configNet.h。增加endDrvTb1里关于INCLUDE_LN_97X_END的参数定义。修改如下:
#ifdef INCLUDE_LN_97X_END
{0, LN_97X_LOAD_FUNC, LN_97X_LOAD_STR,LN_97X_BUFF_LOAN,
NULL, FALSE},
{1, LN_97X_LOAD_FUNC,LN_97X_LOAD_STR, LN_97X_BUFF_LOAN,
NULL, FALSE},
(要在config.h里添加网卡的相关定义(如中断号,及I/O基址等)但这似乎只限于ISA网卡?对于PCI的网卡似乎
不用??)
9.在tornado2.2环境下选择自己的BSP目录重新编译生成bootrom。
10.用RamdiskForNT1.5虚拟一个软盘。MKBOOT命令制作启动盘.关于如何制作启动盘可以参考“在VMWare上安装
VxWorks操作系统”,推荐将其写成批处理文件如mkPcBoot.bat。里面内容如下:
@echo on
@format a:
@d:
@cd D:\Tornado\host\x86-win32\bin&torvars&cdD:\Tornado\target\config\testPc&mkboot a: bootrom
可以对应自己的Tornado目录修改。
11.用tornado自带的FTP工具当User Name为“target”时,修改“Home Directory”为D盘根目录(此路径由上面
的DEFAULT_BOOT_LINE参数决定),同时修改口令为“vxworks”,最后点击“Done”按钮完成修改;我们还要打
开FTP Server的日志功能。选择“Logging”菜单下的“Logging Options”子菜单,弹出如下对话框,其中除了
“Winsock Calls”外,让其他选项全都处于开启状态。
12.在vmware里新建一工程,除os选择other其余默认,并在机器配置选项里添加一网卡,确认两块网卡都是加电
时加载。
13.在tornado2.2环境下新建bootable工程。选择工程所属BSP为pcPentium。工程创建时会搜索BSP目录,根据目
录下的MAKEFILE文件,将需要的BSP源代码文件自动加入到工程。在network component组件配置里在baisc
network init 的属性里修改IP_MAX_UNIT为2。
14.在tornado2.2环境下修改usrAppInit.c。添加如下代码:
usrNetEndDevStart("lnPci",1);
usrNetIfConfig("lnPci",1,"192.168.1.123","192.168.1.1",0xffffff00);
也可以在进入vxworks后,在shell下手动启动网卡。
(END驱动的加载,启动,绑定协议,主要集中在usrEndLibInit()和usrNetEndDevStart ();
其中usrEndLibInit()位于target\config\comps\src\net\usrEndLib.c,根据endDevTblD加载END
usrNetEndDevStart (pDevName, uNum);它位于target\config\comps\src\net\usrNetEndBoot.c。它的作用是绑
定协议层,其中(pDevName, uNum)是在启动参数里指定。大家有兴趣可以自己修改源码让vxworks启动时自动加载双网卡
)
启动vmware,可以在另一台主机上ping测试双网卡是否配置成功。(不好意思不会贴图,不能附上效果图)