2. Ubuntu系统安装:双系统安装、虚拟机配置、基础软件包安装

好,咱们正式开始动手了。

做PX4驱动开发,第一件事就是把开发环境搭起来。说白了,你得先让Ubuntu跑起来。我见过太多新手卡在这一步,其实没那么复杂。今天我就把双系统安装、虚拟机配置、还有基础软件包安装这三块,掰开揉碎了讲清楚。

核心思路: 开发PX4驱动,Ubuntu 20.04 LTS是目前最稳的选择。我个人习惯用双系统,性能好、不折腾。但如果你只是入门学习,虚拟机完全够用。

2.1 双系统安装:给Ubuntu一个独立空间

双系统,就是一台电脑上同时有Windows和Ubuntu。开机时你选进哪个系统。我在项目中遇到过好几次,有人装完双系统后Windows进不去了。嗯,这里要注意,分区操作一定要小心。

准备工作

  • 一个8GB以上的U盘,用来做启动盘
  • Ubuntu 20.04 LTS镜像,去官网下载就行
  • Rufus工具(Windows下写盘用)
  • 磁盘空间:至少留出50GB空闲分区

安装步骤

  1. 压缩卷:在Windows磁盘管理里,右键C盘或D盘,选「压缩卷」,腾出50-100GB未分配空间
  2. 制作启动盘:用Rufus把Ubuntu镜像写入U盘,注意分区类型选GPT
  3. 关闭快速启动:Windows电源设置里关掉「快速启动」,否则Ubuntu可能认不到硬盘
  4. 重启进BIOS:按F2/F12/Del(不同品牌不一样),设置U盘为第一启动项
  5. 安装Ubuntu:选择「安装Ubuntu」,分区时选「其他选项」,把未分配空间挂载到根目录/

⚠️ 我曾经犯过的错: 安装时选了「清除整个磁盘并安装Ubuntu」,结果Windows全没了。切记,一定要选「其他选项」手动分区。

分区建议

挂载点 大小 说明
/ 30-50GB 系统根目录,放系统和软件
/home 剩余空间 用户数据,代码、文档都放这里
swap 8-16GB 交换分区,内存不够时用

你想想看,分区其实就像给房子隔房间。根目录是客厅,home目录是卧室,swap是储物间。别把客厅搞太大,卧室才是你真正待的地方。

2.2 虚拟机配置:不想折腾双系统的选择

如果你只是刚开始学PX4,或者电脑配置一般,虚拟机是个好选择。我用VirtualBox比较多,免费、稳定。

安装VirtualBox

  1. 去VirtualBox官网下载Windows版本
  2. 一路默认安装,注意安装时会短暂断网,正常现象
  3. 下载Ubuntu 20.04 LTS镜像

创建虚拟机

  1. 点击「新建」,名称填PX4-Dev,类型选Linux,版本选Ubuntu 64-bit
  2. 内存分配:至少4GB,我建议8GB。PX4编译挺吃内存的
  3. 硬盘:创建虚拟硬盘,大小给50GB以上,类型选VDI,动态分配
  4. 启动虚拟机,选择Ubuntu镜像,按提示安装

💡 小技巧: 安装完Ubuntu后,记得安装VirtualBox增强功能。在虚拟机菜单栏点「设备」→「安装增强功能」,然后终端里运行:

sudo ./VBoxLinuxAdditions.run

装完后,屏幕分辨率能自适应,还能共享剪贴板,方便很多。

虚拟机 vs 双系统,怎么选?

对比项 双系统 虚拟机
性能 满血运行 有损耗,约80-90%
USB设备直通 原生支持 需要设置,有时不稳定
切换成本 需要重启 随时切换
适合场景 长期开发、硬件调试 学习、测试、轻度开发

我个人建议:如果你要接飞控、调传感器,用双系统。如果只是写代码、编译固件,虚拟机完全够用。

2.3 基础软件包安装:把工具箱备齐

系统装好了,接下来就是装工具。PX4开发需要一堆依赖,别怕,一条命令搞定大部分。

更新系统

先让系统保持最新:

sudo apt update
sudo apt upgrade -y

安装基础开发工具

sudo apt install -y \
  git \
  cmake \
  ninja-build \
  python3-pip \
  python3-venv \
  build-essential \
  gcc-arm-none-eabi \
  gdb-multiarch

这里我解释一下每个工具是干嘛的:

  • git:版本管理,PX4代码都在GitHub上
  • cmake + ninja:编译系统,PX4用CMake管理构建
  • python3-pip:装Python工具,比如px4-tools
  • gcc-arm-none-eabi:ARM交叉编译器,编译飞控固件用
  • gdb-multiarch:调试器,排查驱动问题必备

⚠️ 注意版本: 我遇到过gcc-arm-none-eabi版本太旧,编译报错的情况。建议装最新版:

sudo apt install gcc-arm-none-eabi=15:10.3-2021.10-4

或者去ARM官网下载最新版手动安装。

安装PX4专用工具

pip3 install --user px4-tools
pip3 install --user kconfiglib
pip3 install --user jsonschema

px4-tools是PX4官方维护的工具集,里面包含了编译、上传、调试的脚本。说白了,有了它你就不用自己写一堆make命令了。

验证安装

装完后,跑几个命令确认一下:

arm-none-eabi-gcc --version
cmake --version
python3 --version
git --version

如果每个命令都能正常输出版本号,恭喜你,环境搭好了。

💡 我个人的习惯: 装完基础包后,我会顺手装一个tree命令和htop。tree看目录结构,htop看系统资源。虽然不必须,但开发时挺顺手。

sudo apt install tree htop -y

2.4 本章知识体系

下面这张图,把本章的核心逻辑串起来了。你一看就明白:

Ubuntu系统安装知识体系 双系统安装 虚拟机配置 基础软件包安装 制作启动盘(Rufus + ISO) 磁盘分区(/、/home、swap) BIOS设置与安装 VirtualBox安装与配置 内存/硬盘分配建议 增强功能安装 系统更新(apt update/upgrade) 基础工具(git/cmake/gcc等) PX4专用工具(px4-tools等) 选择建议 硬件调试 → 双系统 | 学习测试 → 虚拟机 | 两者都需要基础软件包

说白了,这三块是递进关系。先选好安装方式(双系统或虚拟机),装好系统后,再装基础软件包。基础软件包是所有开发工作的起点,缺了它,后面PX4固件编译根本跑不起来。

⚠️ 最后提醒一句: 装完系统后,记得把/etc/apt/sources.list里的源换成国内镜像(清华、阿里、中科大都可以)。不然下载依赖包慢到你怀疑人生。我当年第一次装Ubuntu,等apt upgrade等了两个小时...后来换了国内源,五分钟搞定。


公众号:蓝海资料掘金营,微信deep3321