安装Linux虚拟机或WSL:为什么推荐Linux环境
说实话,我第一次接触嵌入式开发时,也问过同样的问题:为什么非要用Linux? Windows用得好好的啊。
后来踩了不少坑才明白——NuttX的构建工具链、依赖库、编译脚本,几乎都是为Linux设计的。你在Windows上折腾半天,可能只是环境问题就耗掉一整天。我有个同事,光在Windows上配NuttX环境就花了三天,最后换到Linux,半小时搞定。
说白了,Linux是嵌入式开发的“标准战场”。大部分开源RTOS、交叉编译工具链、调试工具,原生支持Linux。你用Windows,反而要绕很多弯路。
Linux vs Windows:核心差异
| 对比项 | Linux | Windows |
|---|---|---|
| 包管理 | apt一键安装依赖 | 手动下载、配置路径 |
| 命令行 | 原生bash,强大高效 | cmd/PowerShell,兼容性差 |
| 编译工具链 | gcc/arm-none-eabi直接可用 | 需要额外配置MinGW或Cygwin |
| 文件系统 | 大小写敏感,符合POSIX标准 | 大小写不敏感,容易出问题 |
| 社区支持 | 嵌入式开发资料几乎都是Linux | 相对较少 |
你看,差距很明显。我个人习惯用Ubuntu 22.04 LTS,稳定、软件源丰富,社区活跃。遇到问题,搜一下基本都有答案。
安装VirtualBox或VMware
如果你不想完全切换系统,虚拟机是个好选择。我推荐VirtualBox,免费、轻量、够用。VMware Workstation功能更强,但收费。
VirtualBox安装步骤
- 去官网下载VirtualBox(Windows版)
- 双击安装,一路默认选项
- 安装完成后,下载Ubuntu 22.04 LTS的ISO镜像
- 新建虚拟机:分配2GB以上内存、20GB以上硬盘
- 启动虚拟机,选择ISO文件,开始安装
VMware Workstation(可选)
如果你需要更好的3D加速、USB设备直通,VMware是更好的选择。不过对于NuttX开发,VirtualBox完全够用。我个人觉得没必要花那个钱。
安装Ubuntu 22.04 LTS
Ubuntu 22.04 LTS是目前最稳定的长期支持版本。我一直在用,没出过什么大问题。
安装要点
- 语言选择: 建议选英文。中文环境下,终端有时会出现乱码或路径问题。
- 分区: 新手直接选“擦除磁盘并安装”就行。如果你熟悉分区,可以单独分一个/home。
- 用户名: 不要用中文,避免后续编译路径出问题。
- 更新: 安装时勾选“安装第三方软件”和“下载更新”。
安装后的基本配置
# 更新软件源
sudo apt update && sudo apt upgrade -y
# 安装常用开发工具
sudo apt install build-essential git vim curl wget -y
# 安装NuttX依赖
sudo apt install flex bison libncurses-dev libelf-dev -y
这几行命令,基本就把环境搭好了。你想想看,在Windows上要配这些,得下载多少个安装包?
配置WSL2(Windows用户)
如果你不想装虚拟机,又想在Windows上用Linux,WSL2是最佳选择。它比虚拟机更轻量,启动快,资源占用少。
WSL2安装步骤
- 启用WSL功能: 以管理员身份打开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: 在Microsoft Store搜索“Ubuntu 22.04 LTS”,点击安装
- 启动Ubuntu: 第一次启动会要求创建用户名和密码
WSL2与Windows文件互访
WSL2的Linux文件系统在:\\wsl$\Ubuntu-22.04\home\你的用户名\
Windows的C盘挂载在:/mnt/c/
WSL2的图形界面(可选)
如果你需要图形界面,可以安装VcXsrv或WSLg。不过对于NuttX开发,命令行就够了。我个人很少用图形界面,除非要调试GUI程序。
总结一下
三种方式,各有优劣:
- 虚拟机: 隔离性好,适合新手,资源占用高
- WSL2: 轻量、启动快,适合Windows重度用户
- 双系统: 性能最好,但切换麻烦
我个人推荐:Windows用户用WSL2,Mac用户用虚拟机或Docker。如果你有Linux基础,直接装双系统也行。
好了,环境搭好之后,下一章我们就开始正式安装NuttX工具链。到时候你会发现,前面这些准备工作,真的值得。