3. 主机操作系统选择:Windows vs Linux
做嵌入式平板开发,第一个要面对的问题就是:用哪个操作系统?
我这些年折腾下来,实话实说——Ubuntu 22.04 LTS 是我最推荐的。为什么?因为绝大多数嵌入式工具链、交叉编译器、调试工具,原生就是为 Linux 设计的。你在 Linux 下装个 arm-linux-gnueabihf-gcc,一条命令搞定。换到 Windows 上?嗯,光是配环境就能耗掉你半天。
但我也理解,很多人日常工作离不开 Windows。比如要用 Office、要用某些 Windows-only 的 IDE。那怎么办?别急,后面我会讲三种方案。
3.1 为什么我推荐 Ubuntu 22.04 LTS
先说说 Linux 阵营。发行版那么多,为什么偏偏是 Ubuntu 22.04?
- LTS 长期支持:5年更新,到2027年。你不用担心系统突然不维护了
- 软件包最全:apt 仓库里几乎能找到所有嵌入式开发需要的工具
- 社区活跃:遇到问题,一搜就有答案。这点对新手特别友好
- 硬件兼容性好:我试过在十几款笔记本上装,基本都能正常驱动
我个人习惯是装完系统后,第一时间把 build-essential、git、vim、ssh 这些基础工具装上。然后就是交叉编译链、QEMU 模拟器这些嵌入式专用工具。
核心观点:如果你有条件,直接用 Ubuntu 22.04 作为主力开发系统。这是最省心的方案。
3.2 Windows 用户怎么办?三种方案
我知道,不是所有人都能说换系统就换系统。我自己也经历过这个阶段。那 Windows 下怎么搞嵌入式开发?有三种主流方案:
| 方案 | 优点 | 缺点 | 推荐场景 |
|---|---|---|---|
| 虚拟机(VMware/VirtualBox) | 隔离性好,快照方便 | 性能有损耗,内存占用大 | 需要完整 Linux 桌面环境 |
| WSL2 | 启动快,与 Windows 文件互通 | 不支持 USB 设备直通(有变通方法) | 命令行开发为主 |
| 双系统 | 性能最好 | 切换麻烦,不能同时用 | 有闲置硬盘或长期 Linux 开发 |
我个人最常用的是 WSL2。为什么?因为它启动只要1秒,而且可以直接访问 Windows 的 C 盘文件。但如果你需要图形界面,或者要调试 USB 设备,那还是虚拟机更靠谱。
3.3 虚拟机安装与配置(VMware/VirtualBox)
先说说虚拟机。我早期做项目时,就是靠虚拟机撑过来的。那时候公司配的电脑是 Windows,我就装了个 VirtualBox 跑 Ubuntu。
3.3.1 选 VMware 还是 VirtualBox?
这两个我都用过。简单说:
- VMware Workstation:性能更好,3D 加速强,但收费(有个人免费版)
- VirtualBox:完全免费开源,功能够用,就是偶尔有点小毛病
我的建议是:个人学习用 VirtualBox 就够了。公司项目如果预算允许,可以上 VMware。
3.3.2 安装步骤(以 VirtualBox 为例)
嗯,这里我直接说关键点:
- 下载 Ubuntu 22.04 LTS 镜像:去官网下 desktop 版,大约 4.7GB
- 新建虚拟机:内存至少给 4GB,硬盘 40GB 以上
- 安装增强功能:这个很重要!装完后才能自适应窗口、共享剪贴板
小技巧:我给虚拟机分配了 8GB 内存和 4 个 CPU 核心。编译大型项目时,速度能快不少。但别超过你物理机的一半,否则 Windows 会卡。
3.3.3 避坑指南
我曾经踩过的坑:
- 虚拟机硬盘选了动态分配,结果后来编译内核时空间不够。建议直接固定大小
- 没装增强功能,结果分辨率一直 800x600,眼睛都快瞎了
- 网络模式选了 NAT,结果板子和虚拟机 ping 不通。改成桥接模式就好了
3.4 WSL2 搭建(Windows Subsystem for Linux)
说实话,WSL2 是我现在最常用的方案。它不像虚拟机那样要占几 GB 内存,启动也快得多。
3.4.1 启用 WSL2
在 Windows 10/11 上,操作很简单:
# 以管理员身份打开 PowerShell,执行:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
# 重启后,设置 WSL2 为默认版本
wsl --set-default-version 2
# 安装 Ubuntu 22.04
wsl --install -d Ubuntu-22.04
装完后,第一次启动会让你设置用户名和密码。然后你就有了一个完整的 Ubuntu 终端。
3.4.2 WSL2 的配置优化
我个人习惯做几件事:
- 限制内存使用:默认 WSL2 会吃掉你一半的物理内存。在用户目录下建个
.wslconfig文件:
[wsl2]
memory=4GB
processors=4
localhostForwarding=true
- 换国内源:不然 apt update 慢得你想哭
- 安装常用工具:build-essential、gdb、git、vim、ssh 这些
一个实用技巧:WSL2 的文件系统在 \\wsl$\Ubuntu-22.04\。你可以在 Windows 资源管理器里直接访问。反过来,WSL2 里也能访问 Windows 的 C 盘(在 /mnt/c 下)。
3.4.3 WSL2 的局限性
说实话,WSL2 也不是万能的。我遇到过几个问题:
- USB 设备直连:默认不支持。需要装 usbipd-win 工具才能把 USB 设备共享给 WSL2
- 图形界面:虽然 WSL2 支持 GUI 应用,但偶尔会卡顿。复杂的 Qt 程序建议还是用虚拟机
- 实时性:WSL2 不是实时系统,不能做硬实时开发
但话说回来,对于 90% 的嵌入式开发场景——编译代码、调试、烧录——WSL2 完全够用。
3.5 我的最终建议
你想想看,其实选择很简单:
- 新手入门:直接装 Ubuntu 22.04 双系统,或者用 VirtualBox 装虚拟机
- 日常开发:Windows + WSL2 组合,兼顾办公和开发
- 团队协作:统一用 Ubuntu 22.04,避免环境不一致的问题
我个人现在的工作流是:Windows 上跑 WSL2 做编译和调试,VS Code 通过 Remote-WSL 插件连接。需要图形界面时,就开个 VirtualBox 虚拟机。这套组合用了两年多,没出过什么大问题。
好了,操作系统这块就聊到这。下一章我们开始搭建具体的开发环境——交叉编译链、文件系统、调试工具,一个都不能少。