3、虚拟机选型与安装:VMware Workstation vs VirtualBox,QNX 7.0/8.0对虚拟机的兼容性要求,虚拟机网络配置(Bridged/NAT)
好,咱们进入第三章。这一章聊虚拟机选型。
说实话,做QNX开发,虚拟机是绕不开的坎。你不可能为了写个驱动,专门买台工控机吧?我这些年折腾下来,VMware和VirtualBox都用过,各有各的脾气。
3.1 VMware Workstation vs VirtualBox:我的选择
先给结论:做QNX开发,我强烈推荐VMware Workstation。
为什么?不是我看不起VirtualBox。VirtualBox免费、开源,平时跑个Linux桌面完全够用。但QNX这玩意儿有点特殊——它对硬件虚拟化的要求很敏感。
核心差异点:
- VMware Workstation:对QNX 7.0/8.0的兼容性最好,尤其是SMP(对称多处理)和PCIe设备模拟。我遇到过VirtualBox下QNX 8.0启动到一半卡死,换VMware一次过。
- VirtualBox:轻量、免费,适合快速验证。但QNX 8.0的某些BSP(板级支持包)在VirtualBox上跑不起来,尤其是涉及虚拟化网卡的时候。
我个人习惯:主力用VMware Workstation Pro 16/17。如果你预算有限,VMware Workstation Player也是免费的,功能足够用。
小提示:VMware Workstation Pro支持快照和克隆,这对调试QNX内核非常有用。我曾经在调试一个中断处理bug时,反复回滚快照不下20次——要是没这功能,重装系统能把你逼疯。
3.2 QNX 7.0/8.0对虚拟机的兼容性要求
嗯,这里要注意。不是随便装个虚拟机就能跑QNX的。
QNX 7.0:相对宽松。VMware Workstation 12以上、VirtualBox 6.0以上都能跑。但有个坑——必须开启CPU的VT-x/AMD-V虚拟化技术。我见过有人BIOS里没开这个,QNX启动直接黑屏。
QNX 8.0:要求更严格。官方推荐VMware Workstation 15以上。VirtualBox的话,建议用7.0以上版本,并且必须启用I/O APIC。为什么?QNX 8.0的Hypervisor Manager依赖这个。
| QNX版本 | VMware推荐版本 | VirtualBox推荐版本 | 关键要求 |
|---|---|---|---|
| QNX 7.0 | Workstation 12+ | 6.0+ | 开启VT-x/AMD-V |
| QNX 8.0 | Workstation 15+ | 7.0+ | 开启VT-x + I/O APIC |
避坑指南:我曾经在VirtualBox 6.1上装QNX 8.0,启动时一直报“panic: no system clock”。折腾了两天,最后发现是VirtualBox的“启用HPET”选项没勾。勾上之后,一次过。所以,QNX 8.0一定要启用HPET(高精度事件定时器)。
3.3 虚拟机网络配置:Bridged vs NAT
网络配置这块,很多新手会懵。说白了,就两种模式:
- Bridged(桥接模式):虚拟机直接连到物理网络,有自己的IP。就像一台独立电脑。
- NAT(网络地址转换):虚拟机通过宿主机上网,共享宿主机的IP。
做QNX开发,我建议用Bridged模式。为什么?
你想想看,QNX经常要跟其他设备通信——比如通过NFS挂载文件系统,或者用gdb远程调试。NAT模式下,宿主机和虚拟机之间通信要端口转发,麻烦得很。Bridged模式下,QNX直接拿一个局域网IP,跟宿主机平级,调试起来顺手多了。
具体配置步骤(VMware为例):
- 关闭QNX虚拟机。
- 在VMware设置中,网络适配器选择“桥接模式”。
- 启动QNX,用
ifconfig查看IP。如果没自动获取,手动设置:
ifconfig en0 192.168.1.100 netmask 255.255.255.0 up route add default 192.168.1.1 - 在宿主机上ping一下这个IP,通了就OK。
小技巧:如果你在公司网络环境,Bridged模式可能被防火墙限制。这时候可以临时切到NAT模式。我有个项目就是在客户现场,网络策略很严,最后用NAT+端口转发搞定的。命令示例:
ifconfig en0 10.0.2.15 netmask 255.255.255.0 up(NAT默认网段)
好了,虚拟机选型和网络配置就这些。下一章咱们开始装QNX系统——到时候我会手把手带你过一遍安装步骤,包括那些容易踩的坑。