3. 虚拟机搭建:VMware/VirtualBox安装、Ubuntu Server/Desktop安装、网络配置(NAT与桥接)
嵌入式Linux开发,说白了离不开虚拟机。你想想看,我们总不能为了学个嵌入式,就把主力电脑重装成Linux吧?我个人的习惯是:Windows做宿主机,虚拟机跑Linux开发环境。这样两边互不干扰,截图、查资料、写文档都方便。
这一章,咱们就把虚拟机环境彻底搞定。包括选哪个虚拟机软件、装什么版本的Ubuntu、网络怎么配——每一步我都会把坑指出来。
3.1 虚拟机软件选型:VMware vs VirtualBox
市面上主流的虚拟机软件就两个:VMware Workstation(收费)和Oracle VirtualBox(免费)。我两个都用过,简单说说区别。
| 对比项 | VMware Workstation | Oracle VirtualBox |
|---|---|---|
| 价格 | 商业软件,需付费(有试用期) | 开源免费 |
| 性能 | 3D加速、磁盘I/O更优 | 日常开发够用,稍弱 |
| 快照/克隆 | 功能完善,支持链接克隆 | 支持快照,克隆稍麻烦 |
| USB设备透传 | 稳定,支持USB 3.0 | 偶尔掉设备,需装扩展包 |
| 社区资源 | 企业级文档多 | 教程多,遇到问题好搜 |
我的建议:如果你是新手,直接用VirtualBox就行,免费且够用。如果你公司项目里用VMware,或者你需要频繁操作USB下载器、调试器,那VMware更稳。我个人在培训学员时,统一用VirtualBox——省去破解的麻烦。
3.2 安装VirtualBox(以6.1.x为例)
安装过程其实很简单,但有几个细节要注意。
- 下载安装包:去官网
virtualbox.org下载对应Windows版本。别去第三方下载站,容易被捆绑。 - 安装路径:建议不要有中文和空格。比如
C:\Program Files\Oracle\VirtualBox就挺好。 - 网络组件:安装过程中会提示安装虚拟网卡驱动,一定要同意。否则后面NAT和桥接都用不了。
- 扩展包(Extension Pack):装完主程序后,再下载同版本的扩展包。它提供USB 2.0/3.0、RDP等支持。双击安装即可。
我曾经踩过的坑:有一次装完VirtualBox,发现虚拟机死活识别不到U盘。折腾了半天,才发现是扩展包没装。记住:主程序 + 扩展包,缺一不可。
3.3 创建虚拟机 & 安装Ubuntu
虚拟机软件装好了,接下来要创建一台“虚拟电脑”,然后在里面装Ubuntu。
3.3.1 创建虚拟机
点击VirtualBox主界面的「新建」,按以下参数配置:
| 配置项 | 推荐值 | 说明 |
|---|---|---|
| 名称 | Ubuntu-Dev | 见名知意 |
| 类型 | Linux | 自动选择 |
| 版本 | Ubuntu (64-bit) | 根据镜像选择 |
| 内存大小 | 4096 MB(4GB) | 至少2GB,推荐4GB |
| 虚拟硬盘 | 现在创建虚拟硬盘 | 选VDI格式 |
| 硬盘大小 | 40~60 GB | 动态分配,实际用多少占多少 |
嗯,这里有个细节:内存别给太大。你宿主机如果是8GB内存,分4GB给虚拟机,剩下4GB给Windows,刚好够用。如果你给6GB,Windows那边卡成PPT,你连百度查错都费劲。
3.3.2 Ubuntu Server vs Desktop,怎么选?
很多新手会纠结这个问题。我直接给结论:
- Ubuntu Desktop:带图形界面,适合初学者。你可以在里面打开浏览器、终端、文件管理器,跟用Windows差不多。
- Ubuntu Server:纯命令行,没有桌面。省资源,适合服务器部署或老手。
我的建议是:如果你是第一次接触Linux,选Desktop。等熟悉了命令行操作,再考虑Server版。我自己教学时,统一用Ubuntu 22.04 LTS Desktop。
3.3.3 安装Ubuntu Desktop
启动虚拟机,选择下载好的ISO镜像文件,然后开机。安装步骤很简单:
- 选择语言:English(别选中文,终端报错搜起来麻烦)
- 键盘布局:默认English (US)
- 安装类型:选「Erase disk and install Ubuntu」——放心,它擦的是虚拟硬盘,不影响你Windows。
- 设置用户名和密码:比如用户名
embed,密码123456(自己用无所谓,生产环境别这么干) - 等待安装完成,重启。
关键一步:重启后如果黑屏只看到一个光标在闪,别慌。这是显卡驱动问题。关闭虚拟机,在设置 → 显示 → 显卡控制器里,改成 VBoxSVGA,再启动就好了。
3.4 网络配置:NAT与桥接
虚拟机装好了,但没网络等于废了一半。VirtualBox提供两种主流网络模式:NAT 和 桥接。我画了张图帮你理解。
3.4.1 NAT模式(默认)
NAT模式下,虚拟机通过宿主机上网。说白了,宿主机像个路由器,虚拟机在它后面。虚拟机可以访问外网,但局域网里的其他电脑访问不了虚拟机。
适用场景:
- 虚拟机只需要上网下载软件包、更新系统
- 不需要从外部SSH连接虚拟机
- 宿主机和虚拟机之间偶尔传文件
配置方法:虚拟机设置 → 网络 → 网卡1 → 连接方式选「NAT」,默认就能上网。不需要额外配置。
3.4.2 桥接模式
桥接模式下,虚拟机直接连到你的局域网,跟宿主机平起平坐。它有自己的IP地址(比如192.168.1.xxx),局域网里其他设备可以直接访问它。
适用场景:
- 你需要从Windows用SSH连到虚拟机
- 开发板需要通过NFS或TFTP跟虚拟机通信
- 你想在虚拟机里搭建服务器,让局域网其他电脑访问
我曾经踩过的坑:在公司用桥接模式,虚拟机死活拿不到IP。后来发现是公司网络有MAC地址过滤,虚拟机网卡的MAC是随机的。解决办法:在虚拟机设置里,把MAC地址改成「固定」,然后找网管把MAC加到白名单里。
配置方法:
- 虚拟机设置 → 网络 → 网卡1 → 连接方式选「桥接网卡」
- 界面名称:选你宿主机正在用的网卡(有线选以太网,无线选Wi-Fi)
- 启动虚拟机,用
ip addr查看是否获取到IP
3.4.3 双网卡方案(推荐)
我个人在实际开发中,喜欢给虚拟机配两张网卡:
| 网卡 | 模式 | 用途 |
|---|---|---|
| 网卡1 | NAT | 虚拟机上网、apt下载 |
| 网卡2 | 桥接 | SSH连接、与开发板通信 |
这样既不影响上网,又能跟局域网设备互通。配置也很简单:在虚拟机设置里添加两个网卡,分别设置模式即可。
3.5 验证网络连通性
装好系统、配好网络后,做几个简单测试:
# 测试NAT网卡能否上网
ping -c 4 8.8.8.8
# 测试DNS解析
ping -c 4 www.baidu.com
# 查看IP地址
ip addr show
# 测试桥接网卡(从Windows ping虚拟机IP)
# 在Windows cmd里执行:
ping 192.168.1.xxx
如果都能通,恭喜你,虚拟机环境搭建成功。
小技巧:如果ping不通外网,先检查宿主机能不能上网。如果宿主机能上但虚拟机不能,多半是DNS问题。编辑 /etc/resolv.conf,加上 nameserver 8.8.8.8 试试。
3.6 本章小结
这一章我们干了三件事:装了虚拟机软件、装了Ubuntu系统、配了网络。这三步是嵌入式Linux开发的基础设施,后面所有实验都跑在这个环境上。
记住几个关键点:
- VirtualBox + 扩展包,一个都不能少
- Ubuntu Desktop 适合新手,Server版留给老手
- NAT上网,桥接连板子,双网卡最省心