4、虚拟机与Ubuntu安装:VMware/VirtualBox安装、Ubuntu镜像下载、虚拟机配置、Ubuntu系统安装与初始化

好,咱们进入实操环节了。前面聊了那么多理论,现在终于要动手了。说实话,每次带新人做嵌入式开发,第一步就是搭环境。这一步要是没弄好,后面全是坑。我自己就见过有人因为虚拟机配置不对,编译内核时卡了整整两天。

为什么要用虚拟机?说白了,嵌入式开发几乎绕不开Linux。你想想看,交叉编译工具链、设备树编译、根文件系统制作,哪个不是在Linux上跑的?但让你直接放弃Windows也不太现实——毕竟还要写文档、画PCB、用微信。所以,虚拟机就是最好的折中方案。

4.1 虚拟机软件选型:VMware还是VirtualBox?

目前主流的就两家:VMware Workstation和Oracle VirtualBox。我个人的建议是:

  • VMware Workstation Pro:性能更好,3D加速支持强,USB设备透传稳定。我在项目中遇到过用VirtualBox死活识别不了某个J-Link调试器,换VMware一次搞定。
  • Oracle VirtualBox:完全免费开源,功能也够用。如果你只是学习,或者预算有限,选它完全没问题。

我的选择建议

  • 商用项目、需要稳定调试环境 → VMware Workstation Pro
  • 个人学习、预算有限 → VirtualBox

4.2 下载与安装虚拟机软件

先说VMware。去官网下载VMware Workstation Pro,现在VMware对个人用户已经免费了,这点要给好评。下载后双击安装,一路Next就行。唯一要注意的是:

注意:安装时有个选项叫「增强型键盘驱动程序」,建议勾上。否则后面在虚拟机里按某些快捷键可能会失灵。我曾经因为这个折腾了半天,以为是键盘坏了。

VirtualBox就更简单了。去Oracle官网下载对应平台的安装包,安装过程也是傻瓜式的。不过有一点:安装完后建议重启一下电脑,否则虚拟网卡可能加载不正常。

4.3 Ubuntu镜像下载

Ubuntu版本很多,做嵌入式开发我推荐用Ubuntu 20.04 LTS。为什么?

  • LTS版本有5年支持,稳定
  • 20.04的软件源兼容性最好,很多嵌入式厂商的SDK都是基于这个版本测试的
  • 22.04虽然新,但有些老工具链的依赖包会出问题

下载地址:去Ubuntu官网的Release页面,找ubuntu-20.04.6-desktop-amd64.iso。记得选Desktop版,别下成Server版了——虽然Server版也能用,但没图形界面,对新手不友好。

小技巧:下载时顺便把SHA256校验码记下来。下载完后用工具校验一下,确保文件没损坏。我遇到过下载到一半网络断了,结果安装到一半报错,白忙活一场。

4.4 创建虚拟机

好,软件装好了,镜像也下好了。现在开始创建虚拟机。我以VMware为例,VirtualBox的操作大同小异。

第一步:新建虚拟机

打开VMware,点击「创建新的虚拟机」。选择「典型(推荐)」,然后下一步。

第二步:选择安装来源

这里选「安装程序光盘映像文件(iso)」,然后浏览找到你刚才下载的Ubuntu 20.04镜像。

第三步:配置虚拟机参数

这是最关键的一步。嵌入式开发对虚拟机的要求比普通办公高不少。我的推荐配置:

硬件 推荐配置 最低配置
内存 8GB 4GB
处理器核心 4核 2核
磁盘空间 80GB 40GB
网络 桥接模式 NAT模式

避坑指南:我曾经给虚拟机只分了2GB内存,结果编译一个Linux内核直接卡死。后来加到8GB,编译时间从40分钟降到了12分钟。内存这东西,真的不能省。

第四步:磁盘设置

选择「将虚拟磁盘存储为单个文件」。虽然拆分文件方便迁移,但单个文件性能更好。磁盘大小建议设80GB,勾选「立即分配所有磁盘空间」——这样能避免后期磁盘碎片导致性能下降。

4.5 安装Ubuntu系统

虚拟机创建好了,启动它。你会看到Ubuntu的安装界面。嗯,这里有几个关键点:

语言选择:选English。虽然中文看着亲切,但嵌入式开发的终端输出、错误信息基本都是英文。用英文系统能让你更快适应真实开发环境。

键盘布局:选English(US)。除非你用欧洲键盘,否则别乱改。

安装类型:选「Erase disk and install Ubuntu」。这是在虚拟机里,不用担心数据丢失。别选「Something else」手动分区——那是给高级用户用的,新手容易搞错。

用户信息:设置用户名和密码。我建议用户名用全小写英文,不要用中文。因为后面很多开发工具对中文路径支持不好。

我的习惯:用户名设成「developer」,密码设简单点。反正是虚拟机,安全不是首要考虑。每次输入一长串密码真的很烦。

4.6 系统初始化配置

Ubuntu装好了,别急着高兴。还有几件事必须做:

1. 更新软件源

打开终端,先跑这两条命令:

sudo apt update
sudo apt upgrade -y

这会更新所有软件包到最新版本。第一次更新可能比较慢,取决于你的网络。建议换个国内的软件源,比如清华源或阿里源,速度能快10倍。

2. 安装VMware Tools

如果你用的是VMware,在菜单栏点击「虚拟机」→「安装VMware Tools」。然后在虚拟机里执行:

sudo mount /dev/cdrom /mnt
cd /mnt
sudo tar xzf VMwareTools-*.tar.gz -C /tmp
cd /tmp/vmware-tools-distrib
sudo ./vmware-install.pl -d

装完后重启,你会发现屏幕分辨率可以自适应了,复制粘贴也正常了。

3. 安装基础开发工具

嵌入式开发必备的软件包:

sudo apt install build-essential git vim curl wget -y

build-essential包含了gcc、g++、make等编译工具。git是版本管理,vim是编辑器。这些是基本功,早晚要用到。

4. 配置SSH服务

虽然现在用不到,但后面调试远程开发板时要用:

sudo apt install openssh-server -y
sudo systemctl enable ssh
sudo systemctl start ssh

检查安装是否成功

在终端输入 gcc --version,如果显示版本信息,说明环境搭好了。

4.7 快照备份

最后一步,也是最重要的一步——创建快照。在VMware里点击「虚拟机」→「快照」→「拍摄快照」。给快照起个名字,比如「初始系统-已更新」。

为什么要做这个?因为后面你可能会装各种开发工具、库文件,万一搞崩了系统,直接恢复快照就行,不用重装。我吃过这个亏——有一次装某个驱动把系统搞挂了,没有快照,只能从头再来,浪费了整整一个下午。

好了,虚拟机装好了,Ubuntu也跑起来了。下一章咱们开始装交叉编译工具链,那才是嵌入式开发的核心。到时候你会感谢现在认真搭环境的自己。