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也跑起来了。下一章咱们开始装交叉编译工具链,那才是嵌入式开发的核心。到时候你会感谢现在认真搭环境的自己。