服务器与大带宽专家 · 持牌IDC/CDN/ISP服务商
简米科技官网JIANMI TECH
资讯 2026-10-15 简米科技 5,103 字 12 分钟阅读

VxWorks 6.6虚拟机如何搭建与配置?VxWorks 6.6开发环境搭建步骤详解

导读VxWorks 6.6完全能跑在VMware或VirtualBox虚拟机上,前题是选对BSP、配好Boot ROM引导和网络启动参数,把这三件事理顺了,就能在Windows开发机上直接调试VxWorks内核和驱动,不用反复烧写物理目标板,vxworks 6.6虚拟机搭建前的准备工作硬件配置到底要多少别拿跑Lin……

VxWorks 6.6完全能跑在VMware或VirtualBox虚拟机上,前题是选对BSP、配好Boot ROM引导和网络启动参数,把这三件事理顺了,就能在Windows开发机上直接调试VxWorks内核和驱动,不用反复烧写物理目标板。

vxworks 6.6虚拟机搭建前的准备工作

硬件配置到底要多少

别拿跑Linux的思路来给VxWorks分配资源,VxWorks 6.6本身是实时内核,对CPU和内存的消耗很低,但宿主机的性能要照顾开发工具和虚拟化开销,建议虚拟机分配2个CPU核心、1GB以上内存,硬盘空间给10GB就足够,VxWorks镜像本身只有几MB到几十MB。

我在一台i5-8400、16GB内存的Windows 10宿主机上跑VMware Workstation Pro,虚拟机里VxWorks启动到shell只需要十几秒,显卡无关紧要,VxWorks的控制台输出走串口重定向,不依赖显存,如果你用VxSim,那连虚拟机都省了,但那套方案后面会详细对比。

需要准备哪几样工具

  • VMware Workstation Pro 或免费版VMware Workstation Player,也可以用VirtualBox,但网络配置的路径略有区别。
  • Wind River Workbench 3.0及以上版本,这是编译VxWorks镜像和BSP的IDE,VxWorks 6.6对应的Workbench版本是3.0或3.1。
  • VxWorks 6.6的Pentium或x86 BSP,常见的是PENTIUM4 BSP,官方安装包里自带,路径通常在installDir/vxworks-6.6/target/config/pcPentium4。
  • 一个FTP或TFTP服务器,用于宿主机向虚拟机里的VxWorks传输镜像文件。
  • Boot ROM镜像,一般生成在BSP目录下,比如bootrom_rom.hex、bootrom_res.hex。

行业共识认为,VxWorks 6.6虚拟机方案里最费时间的一环不是装虚拟机,而是让Boot ROM找到网络上的宿主机镜像。

vxworks 6.6虚拟机安装与启动配置详解

创建虚拟机时的参数陷阱

新建虚拟机时,客户机操作系统不要选“其他”,直接选FreeBSD 11.x或Windows 7 32位都可以,关键是固件类型选BIOS,不要选UEFI,VxWorks 6.6的Boot ROM对UEFI支持很差,容易卡在“No boot device available”。

VMware虚拟硬盘可以不加,VxWorks 6.6支持无盘启动,如果后面想从硬盘加载镜像,就创建一个IDE接口的虚拟磁盘,不要用SCSI或NVMe,VxWorks 6.6时代的内核还没适配新式磁盘控制器。

Boot ROM引导的完整流程

在Workbench里编译BSP时,选择bootrom工程,生成bootrom_rom.hex,在VMware虚拟机设置里,把软盘驱动器指向这个hex文件,启动时虚拟机从软驱引导,Boot ROM就运行起来了。

Boot ROM启动后,会进入启动参数配置界面,重点设置这几项:

  • boot device:填fei(对应Intel网卡)或el

    VxWorks 6.6虚拟机如何搭建与配置?VxWorks 6.6开发环境搭建步骤详解

    (老式3Com网卡),PENTIUM4 BSP默认是fei。

  • unit number:通常填0。
  • processor number:单核环境填0。
  • host name:填宿主机IP,例如168.1.100。
  • file name:填待加载的镜像文件名,例如vxWorks.bin。
  • inet on ethernet (e):填虚拟机的目标IP,例如168.1.101。
  • host inet address (h):填宿主机IP,例如168.1.100。
  • gateway inet address (g):如果用了NAT模式,填网关地址;host-only模式可以不填。

配置完后输入,Boot ROM会通过TFTP或FTP从宿主机拉取vxWorks.bin,加载完成后自动跳转到VxWorks shell,出现->提示符。

这个过程容易踩的坑是虚拟机的网络模式,VMware的NAT模式默认网段是192.168.146.x或192.168.xxx.x,和你设的启动参数不在同一网段就会超时,建议直接用host-only模式,即VMnet1,并把宿主机虚拟网卡IP改成192.168.1.100,让Boot ROM参数里的host地址和虚拟网卡地址在同一个直连网段。

无盘加载镜像比挂硬盘稳

很多初次搭建的开发者习惯把镜像烧到虚拟硬盘里,让VxWorks从硬盘启动,实际体验下来,无盘网络启动比挂硬盘更稳定,原因不复杂,VxWorks 6.6对IDE硬盘控制器的兼容性不如网络栈,偶尔会出现分区表解析失败,而网络启动绕开了这层依赖。

我建议的做法是:Boot ROM从软驱引导,镜像通过FTP传输,目标机在内存里运行整个系统,这样最接近真实嵌入式设备的运行方式,以后往真机迁移也不用改启动逻辑。

vxworks 6.6虚拟机网络配置与ping不通排查

网络模式选host-only还是桥接

从使用经验看,开发调试阶段选host-only模式最省心,桥接模式虽然虚拟机像一台独立设备出现在局域网里,但如果宿主机连着公司内网或校园网,DHCP服务、VLAN划分、防火墙策略都会干扰Boot ROM和TFTP通信。

host-only模式下,虚拟机和宿主机通过VMnet1虚拟网卡直连,链路稳定且不受外部网络环境影响,唯一的限制是虚拟机对外网不可达,但对VxWorks调试来说,本来也不需要通过互联网下载什么,如果你坚持用NAT模式,记住把启动参数里的网关地址配上,否则Boot ROM能ping通宿主机,但宿主机回包到虚拟机时找不到路由。

一次完整的静态IP配置实操

VxWorks启动后在shell里执行以下命令配置网络:

ifconfig "fei0" inet 192.168.1.101 netmask 255.255.255.0 up
route add "default" "192.168.1.100"

注意fei0是PENTIUM4 BSP的网卡设备名,如果提示文件名不存在,用

VxWorks 6.6虚拟机如何搭建与配置?VxWorks 6.6开发环境搭建步骤详解

ifShow查看可用网络接口。

配置完成后,在宿主机命令行里ping 192.168.1.101,能通就说明网络链路正常,然后从宿主机FTP连接ftp 192.168.1.101,VxWorks 6.6内置FTP服务端默认监听21端口,用户名和密码为空也可以,但建议设置一下。

网络不通的五个高频因素

  • VMware虚拟网卡服务没启动,打开Windows服务管理器确认VMware NAT Service和VMware DHCP Service状态。
  • Windows防火墙拦截,分配了VMnet1的入站规则,把FTP和TFTP端口放行。
  • Boot ROM参数里的host地址写错,你写成了工作站的无线网卡地址,但host-only模式下宿主机和虚拟机通信走的是VMnet1地址。
  • PENTIUM4 BSP的网卡驱动默认中断号不对,在BSP配置文件里检查IO_IRQ_INT定义,VMware虚拟e1000网卡通常需要设置中断为11。
  • 内存不足导致缓冲区分配失败,把内存加到1GB以上,VxWorks的mbuf默认池很小,网络压力大时容易丢包。

vxworks 6.6虚拟机方案与VxSim仿真对比怎么选

两者定位完全不同

VxSim是Wind River Workbench自带的模拟器,直接在Windows上模拟一个目标CPU运行VxWorks镜像,不需要虚拟机软件,它适合跑纯逻辑代码、任务调度、信号量和消息队列的演示,不适合涉及具体硬件寄存器和网卡驱动的开发。

VMware虚拟机方案恰恰相反,它借助x86 BSP模拟了一个完整的PC平台,网卡、串口、中断控制器都是可见的,你要是做驱动开发,或者是验证bootrom初始化流程,必须走虚拟机方案,VxSim帮不了你。

两者对比下来:

对比维度 VxWorks 6.6虚拟机 VxSim仿真环境
启动速度 十几秒 秒级
硬件外设支持 模拟网卡、串口、IDE 不支持真实外设
驱动验证能力 可验证网卡驱动和中断 无法验证
适用于 BSP移植、驱动调试、电源管理 应用逻辑、任务调度学习
配置复杂度 中等,需要搭Boot ROM和FTP 极低,Workbench一键启动

从开发场景判断用哪个

如果是为了学嵌入式课程里的VxWorks任务API,或者做一个经典的“生产者消费者”实验,VxSim足够,你要是被VxSim限制了打印输出,比如WindView插桩显示异常,也不要急着换虚拟机,先检查Workbench的仿真内核配置。

如果工作涉及VxWorks 6.6的板级支持包定制、网络驱动移植,或者要给特定硬件写初始化代码,那就老老实实搭虚拟机,近年来不少外包团队接VxWorks老项目维护,经常发现目标板停产买不到,临时用虚拟机顶替做回归测试,这种情况就必须用虚拟机方案。

VxWorks 6.6虚拟机如何搭建与配置?VxWorks 6.6开发环境搭建步骤详解

还有价格因素,Wind River的VxWorks授权费用并不便宜,虚拟机方案不需要额外购买硬件目标板,省下的开发板成本相当可观,但要注意Workbench的license是按主机绑定的,你在虚拟机里跑VxWorks,license依然跑在Windows宿主机上,不用重复购买。

vxworks 6.6虚拟机常见报错处理

启动过程卡在“Attaching network interface”

这个现象多半是Boot ROM的boot device参数和BSP里默认的网卡驱动不匹配,PENTIUM4 BSP默认配置的是fei设备,但VMware虚拟机的e1000网卡在6.6版本里被识别为el设备,手动把Boot ROM的boot device改成el试试。

另外检查VMware的虚拟机设置,网卡类型选e1000,不要选VMXNET3,后者在VxWorks 6.6里没有现成驱动。

FTP加载镜像时报“No such file or directory”

Workbench编译生成的镜像后缀是.bin或.out,Boot ROM里file name参数要填完整文件名和相对路径,FTP服务器根目录如果绑定了某个文件夹,而镜像在那个文件夹的子目录下,就需要把子目录路径也填进去,我建议把镜像复制到FTP根目录,文件名保持短格式,比如v.bin,减少输错概率。

启动到最后虚拟机直接重启

这往往是CPU指令集的问题,VxWorks 6.6是32位系统,在64位宿主机上运行没问题,但VMware的虚拟CPU默认启用了一些新特性,在虚拟机设置里,把虚拟化CPU性能计数器关掉,或者把CPU的偏好设置改为“兼容性模式”,问题就能解决。

vxworks 6.6虚拟机常见问题FAQ

在搭建和调试过程中,这几个问题被问得最多,直接列出来供参考。

vxworks 6.6虚拟机安装后没有图形界面,只有命令行,正常吗?

正常,VxWorks是实时操作系统,默认不带图形用户界面,你看到的-> shell提示符就是标准交互界面,如果需要图形显示,需要配置WindML组件并在BSP里加入显示驱动,VMware虚拟显卡对应的是vga驱动,实测可以在640x480分辨率下跑通WindML基础示例。

vxworks 6.6虚拟机如何通信与宿主机共享文件?

推荐用FTP服务,VxWorks 6.6内置了ftp server组件,在Workbench的kernel configuration里添加FTP server组件并开启,重新编译镜像,虚拟机启动后,宿主机可直接用浏览器或命令行FTP客户端访问目标机目录,其中目录映射的是VxWorks的target file system,如果需要大规模文件传输,也可以挂载NFS,但FTP对VxWorks 6.6来说更稳定。

分享本文
本文为 简米科技官网 原创,已由运维技术专家审核。转载请注明来源:原文链接
售前咨询 服务热线 售后 邮箱