3、开发环境搭建(上):Linux虚拟机安装、Ubuntu系统配置、基础开发工具安装

说实话,做嵌入式开发这么多年,我见过太多人在环境搭建这一步就卡住了。尤其是刚接触NuttX的朋友,一上来就被各种工具链、依赖库搞得晕头转向。别急,咱们一步步来。

这一章,我带你搞定三件事:装虚拟机、配Ubuntu、装工具。这三板斧抡好了,后面的编译工作才能顺风顺水。

3.1 为什么非要用Linux?

你可能想问:我Windows用得好好的,为啥非得折腾Linux?

嗯,这个问题我当年也问过。后来发现,NuttX的构建系统、Kconfig配置、GCC交叉编译链,这些东西在Windows上跑起来简直是一场噩梦。说白了,Linux才是嵌入式开发的「原生土壤」。

我个人习惯用Ubuntu 20.04 LTS,稳定、社区活跃、遇到问题随便一搜就有答案。你如果喜欢新版,22.04也行,但别用太激进的版本,比如非LTS的中间版本——我在项目里吃过亏,升级后某些库不兼容,折腾了两天才回滚。

3.2 虚拟机安装:VMware还是VirtualBox?

这两个我都用过。VMware功能强,但收费;VirtualBox免费,够用。对于咱们的学习场景,VirtualBox完全够用

下载地址我就不贴了,你搜一下「VirtualBox 官网」就行。安装过程一路Next,没什么好说的。唯一要注意的是:安装完成后,记得去设置里开启VT-x/AMD-V虚拟化。否则虚拟机跑起来会卡得像幻灯片。

⚠️ 我曾经遇到过:装好VirtualBox后,启动虚拟机直接蓝屏。查了半天,发现是BIOS里没开虚拟化。进BIOS把Intel VT-x打开,问题解决。所以,如果你遇到类似情况,先检查BIOS设置。

3.3 Ubuntu系统配置:从零开始

虚拟机装好后,创建新虚拟机,选择Ubuntu 20.04的ISO镜像。分配资源时,我建议:

  • 内存:至少4GB,推荐8GB
  • CPU:2核起步,4核更佳
  • 硬盘:40GB以上,建议60GB(后面要装很多工具链)

安装过程很简单,选中文、设用户名密码、等进度条走完就行。装好后第一件事:换软件源

为什么?因为默认的国外源慢得让人抓狂。换成阿里云或清华的源,速度能快10倍。

# 备份原源
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

# 编辑源列表
sudo vim /etc/apt/sources.list

# 把里面的内容全部替换为阿里云源(具体内容去阿里云镜像站复制)
# 然后更新
sudo apt update
sudo apt upgrade -y

更新完系统,重启一下。嗯,这一步别省,我见过有人不重启直接装工具,结果依赖冲突。

3.4 基础开发工具安装:Git、Make、GCC

系统准备好了,接下来装三件套:Git、Make、GCC。这三个是嵌入式开发的「铁三角」。

3.4.1 Git:版本控制

Git的重要性不用我多说。NuttX的源码就在GitHub上,你得用Git把它拉下来。

sudo apt install git -y

# 配置基本信息(不配也能用,但建议配)
git config --global user.name "你的名字"
git config --global user.email "你的邮箱"

配好之后,可以试试拉取NuttX源码(这一步比较耗时,建议先跳过,后面章节会专门讲):

git clone https://github.com/apache/nuttx.git
💡 小技巧:如果你在的公司网络限制严格,拉不下来GitHub,可以用Gitee的镜像。我个人习惯在Gitee上建一个私有镜像,同步速度飞快。

3.4.2 Make:构建工具

Make是Linux下最经典的构建工具。NuttX的构建系统虽然用了Kconfig和CMake,但底层还是离不开Make。

sudo apt install make -y

# 验证安装
make --version

看到版本号输出,就说明装好了。如果你用的是Ubuntu 20.04,默认装的是GNU Make 4.2.1,够用。

3.4.3 GCC:编译器

这里要注意:我们装的是ARM交叉编译链,不是本地GCC。因为我们要在x86的电脑上编译出ARM架构的代码。

# 安装ARM交叉编译链
sudo apt install gcc-arm-none-eabi -y

# 验证安装
arm-none-eabi-gcc --version

装好后,你会看到类似这样的输出:

arm-none-eabi-gcc (GNU Tools for Arm Embedded Processors 9-2020-q2-update) 9.3.1 20200408 (release)
Copyright (C) 2019 Free Software Foundation, Inc.

版本号9.3.1,够用。如果你需要更新的版本,可以去ARM官网下载,但apt安装的版本经过测试,稳定性有保障。

⚠️ 我曾经踩过的坑:有次我图新鲜,装了gcc-arm-none-eabi-10.3,结果编译NuttX时某些头文件路径不对,报了一堆错。后来换回9.3.1,一次通过。所以,别追新,稳定第一

3.5 知识体系总览

这一章的内容,说白了就是搭建一个「能编译NuttX」的环境。下面这张图帮你理清脉络:

开发环境搭建(上)知识体系 虚拟机安装 Ubuntu系统配置 基础工具安装 VirtualBox / VMware 开启VT-x虚拟化 分配4GB+内存 Ubuntu 20.04 LTS 更换阿里云源 sudo apt update && upgrade Git:版本控制 Make:构建工具 GCC ARM交叉编译链 最终目标:能在Linux上编译NuttX内核

3.6 验证环境是否就绪

装完上面这些,咱们做个快速验证。写个简单的C程序,用交叉编译链编译一下:

# 创建一个测试文件
echo '#include <stdio.h>
int main() {
    printf("Hello NuttX!\n");
    return 0;
}' > test.c

# 用ARM交叉编译链编译
arm-none-eabi-gcc -c test.c -o test.o

# 查看生成的目标文件
file test.o

如果输出显示 ELF 32-bit LSB relocatable, ARM,恭喜你,环境搭建成功!

✅ 到这里,你已经完成了:
  • VirtualBox虚拟机安装与配置
  • Ubuntu 20.04系统安装与源更换
  • Git、Make、ARM GCC交叉编译链安装

下一步,我们就可以正式开始NuttX的源码拉取和编译了。


专注资料整理