3. Ubuntu虚拟机安装

在嵌入式Linux驱动开发中,虚拟机是搭建开发环境的核心载体。本章将详细讲解如何在Windows/Linux宿主机上安装VMware或VirtualBox虚拟机软件,并完成Ubuntu 22.04 LTS的安装与网络配置。正确的虚拟机配置能够为后续的交叉编译工具链部署、内核编译与驱动调试提供稳定、隔离的运行环境。

3.1 虚拟机软件选型对比

目前主流的虚拟机软件包括VMware Workstation Pro/Player和Oracle VM VirtualBox。两者在性能、功能与授权方式上存在差异,开发者应根据实际需求选择。

特性 VMware Workstation Pro/Player Oracle VM VirtualBox
授权方式 Pro版商业授权;Player版免费(个人使用) 开源免费(GPLv2)
性能表现 3D加速、磁盘I/O性能优秀 中等,适合轻量级开发
快照与克隆 支持完整快照、链接克隆 支持快照、完整克隆
共享文件夹 VMware Tools支持 增强功能(Guest Additions)支持
网络模式 NAT、桥接、仅主机、自定义 NAT、桥接、仅主机、内部网络
USB透传 支持USB 3.0 支持USB 2.0/3.0(需扩展包)
适用场景 高性能开发、大型内核编译 学习、轻量级驱动测试
推荐建议: 对于嵌入式Linux驱动开发,建议优先使用VMware Workstation Pro/Player,其磁盘性能与快照管理能力更适合频繁的内核编译与系统状态回滚。若受限于预算,VirtualBox完全能够胜任基础开发任务。

3.2 VMware Workstation安装流程

以下以VMware Workstation 17 Pro为例,展示在Windows 11宿主机上的安装步骤。

  1. 下载安装包:访问VMware官网下载Workstation 17 Pro安装程序(约600MB)。
  2. 运行安装向导:双击安装程序,勾选“我接受许可协议中的条款”。
  3. 选择安装路径:建议保持默认路径(C:\Program Files\VMware\),避免中文路径。
  4. 取消勾选“启动时检查产品更新”:减少启动时的网络请求。
  5. 输入许可证密钥:若为试用版可跳过,后续通过“帮助→输入许可证密钥”激活。
  6. 完成安装并重启:安装完成后建议重启宿主机,确保VMware相关驱动生效。
关键配置: 安装完成后,进入“编辑→首选项→内存”,建议将“预留所有客户机内存”取消勾选,避免虚拟机独占物理内存导致宿主机卡顿。

3.3 VirtualBox安装流程

VirtualBox安装更为轻量,适合快速部署。

  1. 下载安装包:从Oracle VM VirtualBox官网下载对应宿主机的版本(Windows/Linux/macOS)。
  2. 运行安装:双击安装程序,所有选项保持默认即可。
  3. 安装扩展包(可选):下载与版本匹配的Extension Pack,支持USB 3.0、RDP等高级功能。
  4. 安装增强功能:虚拟机启动后,通过“设备→安装增强功能”安装Guest Additions,提升显示与共享体验。
注意: VirtualBox与Windows Hyper-V存在冲突。若宿主机启用了Hyper-V或WSL2,需在“Windows功能”中关闭Hyper-V,否则虚拟机启动会报错(VT-x is not available)。

3.4 Ubuntu 22.04 LTS虚拟机创建与安装

Ubuntu 22.04 LTS(Jammy Jellyfish)是当前嵌入式Linux开发的主流发行版,支持长期更新与广泛的内核版本。以下以VMware为例,VirtualBox操作类似。

3.4.1 创建虚拟机

  1. 新建虚拟机:点击“创建新的虚拟机”,选择“典型(推荐)”。
  2. 选择安装来源:选择“稍后安装操作系统”,避免自动安装导致分区不可控。
  3. 选择客户机操作系统:Linux → Ubuntu 64位。
  4. 命名虚拟机:例如“Ubuntu22.04-DriverDev”,位置选择剩余空间充足的磁盘(建议≥50GB)。
  5. 指定磁盘容量:建议分配40~80GB,选择“将虚拟磁盘拆分成多个文件”(便于迁移与快照)。
  6. 自定义硬件:内存建议4~8GB,处理器核心数≥2,网络适配器选择NAT模式。

3.4.2 安装Ubuntu 22.04 LTS

  1. 挂载ISO镜像:在虚拟机设置中,CD/DVD驱动器选择下载的Ubuntu 22.04 LTS ISO文件。
  2. 启动虚拟机:进入安装界面,选择语言为“English”(避免终端路径中文乱码)。
  3. 键盘布局:选择“English (US)”。
  4. 安装类型:选择“Erase disk and install Ubuntu”(虚拟机内操作,不影响宿主机)。
  5. 创建用户:设置用户名与密码,建议勾选“Log in automatically”减少开发时重复输入。
  6. 等待安装完成:安装过程约10~20分钟,完成后重启并移除ISO镜像。
优化建议: 安装完成后,立即执行 sudo apt update && sudo apt upgrade -y 更新系统包。同时安装VMware Tools(虚拟机→安装VMware Tools)或VirtualBox增强功能,实现剪贴板共享与自适应窗口。

3.5 网络配置:NAT与桥接模式详解

网络配置是虚拟机与宿主机、外部网络通信的关键。嵌入式驱动开发中,常需要虚拟机与开发板处于同一网段(桥接模式)或通过NAT访问外网下载源码。

3.5.1 NAT模式(网络地址转换)

虚拟机通过宿主机IP访问外网,宿主机与虚拟机处于不同子网。适用于仅需虚拟机上网下载包、无需与局域网设备直连的场景。

  • 优点:无需占用局域网IP,配置简单。
  • 缺点:局域网其他设备无法直接访问虚拟机。
  • 配置检查:虚拟机内执行 ip a 查看IP(通常为 192.168.xxx.xxx),执行 ping 8.8.8.8 测试外网连通性。

3.5.2 桥接模式(Bridged)

虚拟机直接桥接到宿主机物理网卡,与宿主机处于同一局域网,拥有独立IP。适用于NFS挂载、TFTP下载、SSH连接开发板等场景。

  • 优点:虚拟机与开发板、宿主机可直接通信。
  • 缺点:占用局域网IP,需确保网络环境支持(如公司网络可能限制MAC地址)。
  • 配置步骤:在虚拟机设置中,网络适配器改为“桥接模式”,并指定正确的物理网卡(有线或无线)。

3.5.3 仅主机模式(Host-Only)

虚拟机仅与宿主机通信,无法访问外网。适用于纯本地开发调试,避免网络干扰。

网络模式选择速查表:
场景 推荐模式
下载apt包、git clone NAT
与开发板NFS/TFTP通信 桥接
本地内核调试、无网络需求 仅主机
同时需要外网与局域网通信 桥接 + 宿主机共享网络

3.6 虚拟机网络配置SVG架构图

下图展示了三种网络模式在宿主机、虚拟机与外部网络之间的数据流向关系。

虚拟机网络模式架构图 宿主机 (Windows/Linux) 物理网卡: 192.168.1.100 VMware NAT 网关: 192.168.100.1 VMware DHCP: 192.168.100.128/24 虚拟网卡 VMnet1/VMnet8 虚拟机 (NAT模式) IP: 192.168.100.130 网关: 192.168.100.1 DNS: 8.8.8.8 虚拟机 (桥接模式) IP: 192.168.1.110 网关: 192.168.1.1 与宿主机同网段 虚拟机 (仅主机模式) IP: 192.168.200.10 外部网络 / 互联网 路由器: 192.168.1.1 开发板: 192.168.1.200 NFS/TFTP 服务器 NAT转发 桥接 仅主机 直连 经宿主机转发 网络模式选择建议 NAT: 仅需外网访问 桥接: 与开发板直连 仅主机: 本地隔离调试

3.7 网络配置验证与常见问题

3.7.1 验证网络连通性

安装完成后,在虚拟机终端执行以下命令验证网络配置是否生效:

# 查看IP地址
ip a

# 测试宿主机连通性(NAT模式)
ping 192.168.100.1

# 测试外网连通性
ping 8.8.8.8

# 测试DNS解析
ping www.baidu.com

# 查看路由表
ip route

3.7.2 常见问题与解决方案

问题现象 可能原因 解决方案
虚拟机无法获取IP DHCP服务未启动 检查宿主机VMware DHCP Service是否运行;重启虚拟机网络:sudo systemctl restart NetworkManager
桥接模式无法上网 物理网卡选择错误 在虚拟机设置中,桥接模式指定正确的有线/无线网卡
NAT模式能ping通网关但无法上网 宿主机防火墙拦截 关闭宿主机防火墙或添加VMware NAT规则
虚拟机与宿主机互相ping不通 网络模式不匹配 确认两者处于同一网络模式(NAT/桥接/仅主机)
VirtualBox报错“VT-x is not available” Hyper-V冲突 以管理员身份运行:bcdedit /set hypervisorlaunchtype off 并重启
重要提醒: 在嵌入式驱动开发中,强烈建议使用桥接模式并固定虚拟机IP(通过宿主机路由器DHCP静态绑定或虚拟机内手动配置静态IP)。这能确保开发板、虚拟机、宿主机三者之间的NFS、TFTP、SSH连接地址稳定,避免每次重启后IP变化导致调试中断。

3.8 本章小结

本章完成了虚拟机软件选型、VMware/VirtualBox安装、Ubuntu 22.04 LTS虚拟机创建与安装,以及NAT/桥接/仅主机三种网络模式的配置与验证。正确的虚拟机网络配置是后续交叉编译工具链安装、内核源码下载与NFS根文件系统挂载的基础。建议开发者在实际工作中优先使用桥接模式并固定IP,以获得最佳的开发体验与网络稳定性。