VmWare+VxWorks高阶教程
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
改名为 AMD(名称随便你起),最好不要带空格或什么特殊符号 我们要修改编译 bootrom、VxWorks 的配置头文件 Config.h 中定义的一些参数,使编译
出来的系统引导程序 bootrom 和 VxWorks 的映象符合我们的要求; 同时还要修改 sysLn97xEnd.c 这个文件,以使系统的网络功能正常运行。
1.2 工具
MS DOS 6.22 镜像 wsFtp2006(7) FTP 工具 虚拟软驱 RamDiskNT 1.5
2、虚拟机配置
2.1 安装虚拟软驱(供虚拟硬盘做DOS,和初期拷贝文件使用)
保证红圈配置正确后,点击 START 运行,随后重启电脑,虚拟软驱 A 应该就出现了 2.2 新建虚拟机
保存为 make.bat 后,放在 BSP 目录《AMD》下,并双击之,即可生成 bootrom.sys 按照 2.4 节同样的方法,把 bootrom.sys 拷贝到你的虚拟硬盘 C 盘下,再此重启虚拟机 经典的蓝天白云界面就出现了。第一次启动提示下图 open failed,此刻随便敲击键盘,中断 bootrom 引导,按下 c,然后一路回车,下次就不会再提示这个了,实际上这个是 nvram.txt 在作祟,bootrom 会尝试从非易失性存储器中查找 nvram.txt 文件来分析引导行,如果没有, 则按照 config.h 中的定义来引导。
注意:虚拟机在使用物理软驱时,如果软驱 A 打开了,那么虚拟机会报警,停掉虚拟 机,把软驱 A 的窗口关闭,再重新启动虚拟机即可
启动虚拟机,因为此时软驱 A 无系统,所以会提示无效的系统盘,如图所示
所以重启虚拟机,按 F2,改 BIOS,改首启动为 Hard Drive 启动(按数字 0 旁边的减号 键可以把 Removable Devices 设下去,这样 Hard Driver 就上来了)保存后退出 BIOS
1、先期准备
1.1 开发环境
¾ Tornado 2.2(或升级到 2.2.1) for Pentium CD1(开发环境和基本组件等)&CD2(BSP 包) ¾ WindML 3.0(或升级到 3.03) ¾ AMD Ln97XEnd 网卡驱动补丁包 (只需要 ln97xEnd.c 和 ln97xEnd.h 提供下载) ¾ VMware-workstation-5.5.3-34685 对初学者建议使用刚安装好的环境,保证 pcPentium BSP 包和 WindML 源码的纯净!
5) 配置 WINDML 查找/* Include PCI support for drivers & libraries that require it. */字段 在字段之上,定义#define INCLUDE_WINDML
6) 包含 PC_CONSOLE 缺省情况下,VxWorks 系统是不接受外部输入设备(如键盘)的输入,也不向外部输出设 备(如显示器)输出数据。为了便于调试,我们必须改变它的这种缺省状态,包含对 PC 控制台的支持。查找定位宏 INCLUDE_PC_CONSOLE,保证其处于定义状态(define)即 可,即:
1) 定位到目录 C:\tornado2.2\target\config\AMD 并打开该目录下 Config.h 文件; 2) 查找到定义 DEFAULT_BOOT_LINE 宏的地方,修改预处理条件 CPU = = PENTIUM 分
支下的定义如下:
" ata=0,0(0,0)Tifa:/ata0a/vxWorks h=192.168.1.3 e=192.168.1.250 u=lnpci pw=97 vmware o=lnPci "
pciRsrc[endUnit].bar[1]修改为 NONE,保存即可,如下图:
3.5 编译 Bootrom 打开 Tornado 开发工具,在 Build 菜单下选择 Build Boot ROM,选择 BSP 为 AMD,image
类型为 bootrom,工具为 gnu,如图。点击 OK,Bootrom 就会编译。编译成功后,会在 AMD 目录下生产 bootrom 文件。新建一个 make.bat 文件,编辑内容如下
这样 C 盘就安装了最简单的 DOS,顺便把以下几个文件从 A 盘拷贝到 C 盘 A:\>copy HIMEM.SYS C:\ A:\>copy C:\
点击虚拟机停止按钮退出虚拟机,把软驱配置再改回连接物理软驱,如下图所示
新建一个 config.sys 文件,内容如下 [menu] menuitem=Boot_VX, Start with VxWorks55 menuitem=Boot_DOS, Start with MsDos622 menudefault=Boot_VX,3 menucolor=7,0 [Boot_VX] device=c:\himem.sys /testmem:off dos=high,umb shell=c:\ c:\bootrom.sys [Boot_DOS] device=c:\himem.sys /testmem:off dos=high,umb [COMMON] files=40 buffers=30 rem dos=high,umb 保存为 config.sys 文件,然后再准备这个文件: C:\Tornado2.2\host\x86-win32\bin\ 把 和 config.sys 拷贝到软驱 A:盘,如下图
@echo off rem Command line build environments set WIND_HOST_TYPE=x86-win32 set WIND_BASE=C:\Tornado2.2 set PATH=%WIND_BASE%\host\%WIND_HOST_TYPE%\bin;%PATH% objcopypentium -O binary --gap-fill=0 bootrom bootrom.sys
3、ATA引导的bootrom制作
3.1 替换驱动库中原有AMD网卡驱动 首先把下载的补丁中的两个文件进行拷贝
ln97xEnd.c 拷贝到 C:\Tornado2.2\target\src\drv\end 下,覆盖原有的 ln97xEnd.h 拷贝到 C:\Tornado2.2\target\h\drv\end 下,覆盖原有的
打开一个 windows 控制台 cmd 窗口,运行批处理程序: C:\tornado2.2\host\x86-win32\bin\torVars.bat;
定位到 C:\tornado2.2\target\src\drv\end 目录,运行: make CPU=PENTIUM tool=gnu ln97xEnd.o
o=lnPci
这个一定要加上,不然 WDB 会出错的,后面会解释
注意 这里 u=lnpci 名字我随便起的,和 AMD 网卡的引导设备名 lnPci 没有任何关系!
不过 o=lnPci 就不是随便写的了哦,且 P 一定要大写(即网卡设备名)这个参数和 vxWorks
启动时的 WDB 配置有关,在后面会有说明。
再定位到/* Warm boot (reboot) devices and parameters */字段,将#define SYS_WARM_TYPE 后的 SYS_WARM_FD 改为 SYS_WARM_ATA,如下图所示
如果还保持为 SYS_WARM_FD,那么虚拟机在引导或 reboot 时虚拟机会报警,如下所示
File->New->Virtual Machine->Custom->New-Workstation 5->other(other)->指定虚拟机名 和保存位置->选单处理器->内存 128MB 对应 VxWorks 足以->使用桥接网络->IO 适配器选 BusLogic->创建虚拟硬盘->类型选择 IDE(Recommended) ->磁盘空间设置 0.25GB(256MB) 足以,并勾上立刻分配磁盘空间->最终完成虚拟机配置
VmWare下跑VxWorks高阶教程
tearing & FiNALs @ /bbs 首先要感谢 /bbs 论坛的 FiNALs 兄!!!!!!!!!!!!!是他在 QQ 上给我的 讲解,使我对 vxWorks 的各方面有了更进一步的了解。他又帮我解决了虚拟机 vmWare 下跑 WindML 时鼠标一配就死机的问题。总算、vmWare 下的 vxWorks 环境又进一步真实化了。 目前我知道的不完美的地方还有: USB 貌似只能用 U 盘 串口直连通信还存在只能收一次数据的问题(当时发的一篇帖子,未提到这个 BUG) 现总结一篇 VmWare 下跑 vxWorks 高阶教程,考虑通读性,所以从头起步,写的很细 1 从 ATA 硬盘加载 bootrom 引导 vxWorks 2 通过 FTP 工具访问虚拟硬盘内容 3 WindML 下配置上 PS/2 鼠标和 PC Console 键盘 4 简单介绍 BSP 配置中涉及的文件关系
运行命令,将我们刚刚创建的新 ln97xEnd 模块添加进去。 arpentium -ra iOlicomEnd.o libdrv.a ln97xEnd.o
3.2 修改BSP配置文件config.h 首先,我们复制一份纯净未做修改的 C:\Tornado2.2\target\config\下的 pcPentium 文件夹,
ata=0,0(0,0)
指定了使用第 0 个 ata 控制器和第 0 个驱动;
Tifa
指定你的主机的名字,随便写拉;
/ata0a/vxWorks 指定了 VxWorks 映象下载的完整路径,因为我们是从硬盘下载;
h=192.168.1.3 是宿主机的 IP 地址,查看你的网上邻居的本地连接,根据它填写;
3.3 修改BSP配置文件romInit.s
添加红线标注的行,如果这里不添加,编译的 bootrom 引导 vxWorks 后,在运行 ugl 程 序时,会提示如下错误
3.4 修改sysLn97xEnd.c 打开 C:\tornado2.2\target\config\AMD 目录下的 sysLn97xEnd.c 文件,然后将参数由
2.3 虚拟硬盘安装DOS 双击 Floppy,配置软驱,使用软驱镜像,指定 dos6.22 的 img 文件后,点 Create 按钮
启动虚拟机后,进入如下界面
选择 NONE 后,进入软驱 A:盘符,运行 A:\>fdisk 创建 DOS 主分区,一路回车,最后一个回车会使虚拟机重启,再次选择 NONE A:\>fomat C: 格式化创建的主分区 A:\>sys C: 成功后提示 System Transferred
重启后就会进入我们刚刚在 C 盘做的简单的 DOS 然后把 A 盘的两个文件拷贝到 C 盘 C:\>copy A:\ C:\ C:\>copy A:\config.sys C:\
注意,因为把 config.sys 拷贝进了 C 盘。所以重启再次运行虚拟机后,就出现如下界面 了
选第一个引导 vxWorks,不过目前还没做好,要在第四章 选第二个进 DOS,待会还会用到的
e=192.168.1.250 目标机的 IP 地址,可以根据实际情况修改,但要和主机在同一网段;
u=lnpci
指定登录 FTP 服务器的用户名,此 FTP 是用来下载 VxWorks 映象的;
pw=97
是 FTP 服务器与用户名 lnpci 对应的密码;
tn=target
指定目标机的名字,任意指定即可,这里写的 vmware。
定位到 C:\tornado2.2\target\lib\pentium\PENTIUM\common 目录,并将上一步生成的文件 ln97xEnd.o 复制到此目录下。备份此目录下的文件 libdrv.a; 运行命令
arpentium -d libdrv.a ln97xEnd.o,删除 libdrv.a 中原有的 ln97xEnd 模块;
3) 指定网卡驱动程序 定位到“Network driver options”这段文字
保证 INCLUDE_END 和 INCLUDE_LN_97X_END 这两个宏处于定义状态(define),其
他的宏都处于未定义状态(undef),即:
4) 包含 ATA 硬盘驱动 首先定位到/* driver and file system options */字段,将 INCLUDE_ATA 定义上,如下
出来的系统引导程序 bootrom 和 VxWorks 的映象符合我们的要求; 同时还要修改 sysLn97xEnd.c 这个文件,以使系统的网络功能正常运行。
1.2 工具
MS DOS 6.22 镜像 wsFtp2006(7) FTP 工具 虚拟软驱 RamDiskNT 1.5
2、虚拟机配置
2.1 安装虚拟软驱(供虚拟硬盘做DOS,和初期拷贝文件使用)
保证红圈配置正确后,点击 START 运行,随后重启电脑,虚拟软驱 A 应该就出现了 2.2 新建虚拟机
保存为 make.bat 后,放在 BSP 目录《AMD》下,并双击之,即可生成 bootrom.sys 按照 2.4 节同样的方法,把 bootrom.sys 拷贝到你的虚拟硬盘 C 盘下,再此重启虚拟机 经典的蓝天白云界面就出现了。第一次启动提示下图 open failed,此刻随便敲击键盘,中断 bootrom 引导,按下 c,然后一路回车,下次就不会再提示这个了,实际上这个是 nvram.txt 在作祟,bootrom 会尝试从非易失性存储器中查找 nvram.txt 文件来分析引导行,如果没有, 则按照 config.h 中的定义来引导。
注意:虚拟机在使用物理软驱时,如果软驱 A 打开了,那么虚拟机会报警,停掉虚拟 机,把软驱 A 的窗口关闭,再重新启动虚拟机即可
启动虚拟机,因为此时软驱 A 无系统,所以会提示无效的系统盘,如图所示
所以重启虚拟机,按 F2,改 BIOS,改首启动为 Hard Drive 启动(按数字 0 旁边的减号 键可以把 Removable Devices 设下去,这样 Hard Driver 就上来了)保存后退出 BIOS
1、先期准备
1.1 开发环境
¾ Tornado 2.2(或升级到 2.2.1) for Pentium CD1(开发环境和基本组件等)&CD2(BSP 包) ¾ WindML 3.0(或升级到 3.03) ¾ AMD Ln97XEnd 网卡驱动补丁包 (只需要 ln97xEnd.c 和 ln97xEnd.h 提供下载) ¾ VMware-workstation-5.5.3-34685 对初学者建议使用刚安装好的环境,保证 pcPentium BSP 包和 WindML 源码的纯净!
5) 配置 WINDML 查找/* Include PCI support for drivers & libraries that require it. */字段 在字段之上,定义#define INCLUDE_WINDML
6) 包含 PC_CONSOLE 缺省情况下,VxWorks 系统是不接受外部输入设备(如键盘)的输入,也不向外部输出设 备(如显示器)输出数据。为了便于调试,我们必须改变它的这种缺省状态,包含对 PC 控制台的支持。查找定位宏 INCLUDE_PC_CONSOLE,保证其处于定义状态(define)即 可,即:
1) 定位到目录 C:\tornado2.2\target\config\AMD 并打开该目录下 Config.h 文件; 2) 查找到定义 DEFAULT_BOOT_LINE 宏的地方,修改预处理条件 CPU = = PENTIUM 分
支下的定义如下:
" ata=0,0(0,0)Tifa:/ata0a/vxWorks h=192.168.1.3 e=192.168.1.250 u=lnpci pw=97 vmware o=lnPci "
pciRsrc[endUnit].bar[1]修改为 NONE,保存即可,如下图:
3.5 编译 Bootrom 打开 Tornado 开发工具,在 Build 菜单下选择 Build Boot ROM,选择 BSP 为 AMD,image
类型为 bootrom,工具为 gnu,如图。点击 OK,Bootrom 就会编译。编译成功后,会在 AMD 目录下生产 bootrom 文件。新建一个 make.bat 文件,编辑内容如下
这样 C 盘就安装了最简单的 DOS,顺便把以下几个文件从 A 盘拷贝到 C 盘 A:\>copy HIMEM.SYS C:\ A:\>copy C:\
点击虚拟机停止按钮退出虚拟机,把软驱配置再改回连接物理软驱,如下图所示
新建一个 config.sys 文件,内容如下 [menu] menuitem=Boot_VX, Start with VxWorks55 menuitem=Boot_DOS, Start with MsDos622 menudefault=Boot_VX,3 menucolor=7,0 [Boot_VX] device=c:\himem.sys /testmem:off dos=high,umb shell=c:\ c:\bootrom.sys [Boot_DOS] device=c:\himem.sys /testmem:off dos=high,umb [COMMON] files=40 buffers=30 rem dos=high,umb 保存为 config.sys 文件,然后再准备这个文件: C:\Tornado2.2\host\x86-win32\bin\ 把 和 config.sys 拷贝到软驱 A:盘,如下图
@echo off rem Command line build environments set WIND_HOST_TYPE=x86-win32 set WIND_BASE=C:\Tornado2.2 set PATH=%WIND_BASE%\host\%WIND_HOST_TYPE%\bin;%PATH% objcopypentium -O binary --gap-fill=0 bootrom bootrom.sys
3、ATA引导的bootrom制作
3.1 替换驱动库中原有AMD网卡驱动 首先把下载的补丁中的两个文件进行拷贝
ln97xEnd.c 拷贝到 C:\Tornado2.2\target\src\drv\end 下,覆盖原有的 ln97xEnd.h 拷贝到 C:\Tornado2.2\target\h\drv\end 下,覆盖原有的
打开一个 windows 控制台 cmd 窗口,运行批处理程序: C:\tornado2.2\host\x86-win32\bin\torVars.bat;
定位到 C:\tornado2.2\target\src\drv\end 目录,运行: make CPU=PENTIUM tool=gnu ln97xEnd.o
o=lnPci
这个一定要加上,不然 WDB 会出错的,后面会解释
注意 这里 u=lnpci 名字我随便起的,和 AMD 网卡的引导设备名 lnPci 没有任何关系!
不过 o=lnPci 就不是随便写的了哦,且 P 一定要大写(即网卡设备名)这个参数和 vxWorks
启动时的 WDB 配置有关,在后面会有说明。
再定位到/* Warm boot (reboot) devices and parameters */字段,将#define SYS_WARM_TYPE 后的 SYS_WARM_FD 改为 SYS_WARM_ATA,如下图所示
如果还保持为 SYS_WARM_FD,那么虚拟机在引导或 reboot 时虚拟机会报警,如下所示
File->New->Virtual Machine->Custom->New-Workstation 5->other(other)->指定虚拟机名 和保存位置->选单处理器->内存 128MB 对应 VxWorks 足以->使用桥接网络->IO 适配器选 BusLogic->创建虚拟硬盘->类型选择 IDE(Recommended) ->磁盘空间设置 0.25GB(256MB) 足以,并勾上立刻分配磁盘空间->最终完成虚拟机配置
VmWare下跑VxWorks高阶教程
tearing & FiNALs @ /bbs 首先要感谢 /bbs 论坛的 FiNALs 兄!!!!!!!!!!!!!是他在 QQ 上给我的 讲解,使我对 vxWorks 的各方面有了更进一步的了解。他又帮我解决了虚拟机 vmWare 下跑 WindML 时鼠标一配就死机的问题。总算、vmWare 下的 vxWorks 环境又进一步真实化了。 目前我知道的不完美的地方还有: USB 貌似只能用 U 盘 串口直连通信还存在只能收一次数据的问题(当时发的一篇帖子,未提到这个 BUG) 现总结一篇 VmWare 下跑 vxWorks 高阶教程,考虑通读性,所以从头起步,写的很细 1 从 ATA 硬盘加载 bootrom 引导 vxWorks 2 通过 FTP 工具访问虚拟硬盘内容 3 WindML 下配置上 PS/2 鼠标和 PC Console 键盘 4 简单介绍 BSP 配置中涉及的文件关系
运行命令,将我们刚刚创建的新 ln97xEnd 模块添加进去。 arpentium -ra iOlicomEnd.o libdrv.a ln97xEnd.o
3.2 修改BSP配置文件config.h 首先,我们复制一份纯净未做修改的 C:\Tornado2.2\target\config\下的 pcPentium 文件夹,
ata=0,0(0,0)
指定了使用第 0 个 ata 控制器和第 0 个驱动;
Tifa
指定你的主机的名字,随便写拉;
/ata0a/vxWorks 指定了 VxWorks 映象下载的完整路径,因为我们是从硬盘下载;
h=192.168.1.3 是宿主机的 IP 地址,查看你的网上邻居的本地连接,根据它填写;
3.3 修改BSP配置文件romInit.s
添加红线标注的行,如果这里不添加,编译的 bootrom 引导 vxWorks 后,在运行 ugl 程 序时,会提示如下错误
3.4 修改sysLn97xEnd.c 打开 C:\tornado2.2\target\config\AMD 目录下的 sysLn97xEnd.c 文件,然后将参数由
2.3 虚拟硬盘安装DOS 双击 Floppy,配置软驱,使用软驱镜像,指定 dos6.22 的 img 文件后,点 Create 按钮
启动虚拟机后,进入如下界面
选择 NONE 后,进入软驱 A:盘符,运行 A:\>fdisk 创建 DOS 主分区,一路回车,最后一个回车会使虚拟机重启,再次选择 NONE A:\>fomat C: 格式化创建的主分区 A:\>sys C: 成功后提示 System Transferred
重启后就会进入我们刚刚在 C 盘做的简单的 DOS 然后把 A 盘的两个文件拷贝到 C 盘 C:\>copy A:\ C:\ C:\>copy A:\config.sys C:\
注意,因为把 config.sys 拷贝进了 C 盘。所以重启再次运行虚拟机后,就出现如下界面 了
选第一个引导 vxWorks,不过目前还没做好,要在第四章 选第二个进 DOS,待会还会用到的
e=192.168.1.250 目标机的 IP 地址,可以根据实际情况修改,但要和主机在同一网段;
u=lnpci
指定登录 FTP 服务器的用户名,此 FTP 是用来下载 VxWorks 映象的;
pw=97
是 FTP 服务器与用户名 lnpci 对应的密码;
tn=target
指定目标机的名字,任意指定即可,这里写的 vmware。
定位到 C:\tornado2.2\target\lib\pentium\PENTIUM\common 目录,并将上一步生成的文件 ln97xEnd.o 复制到此目录下。备份此目录下的文件 libdrv.a; 运行命令
arpentium -d libdrv.a ln97xEnd.o,删除 libdrv.a 中原有的 ln97xEnd 模块;
3) 指定网卡驱动程序 定位到“Network driver options”这段文字
保证 INCLUDE_END 和 INCLUDE_LN_97X_END 这两个宏处于定义状态(define),其
他的宏都处于未定义状态(undef),即:
4) 包含 ATA 硬盘驱动 首先定位到/* driver and file system options */字段,将 INCLUDE_ATA 定义上,如下