物唯仓库-INAV固件-编译说明
本文编译环境:win11,wsl2,ubuntu22.04 1.1说明 物唯科技后续将会在INAV-9.0.1的基准上,逐步对INAV的飞控源码进行功能增减及优化! 部分功能需要在多个文件夹上新增.cpp文件或.h文件!因此物唯科技只能建一...
本文编译环境:win11,wsl2,ubuntu22.04
1.1说明
物唯科技后续将会在INAV-9.0.1的基准上,逐步对INAV的飞控源码进行功能增减及优化!
部分功能需要在多个文件夹上新增.cpp文件或.h文件!因此物唯科技只能建一个独立的 仓库进行源码管理,并开源!
另外在物唯的代码仓库中,也会默认增加物唯的WFG100、WFG001、WFG120这几个系列的飞控板卡配置文件,无需额外进行硬件配置文件夹的增加与配置!
编译INAV官方固件和物唯科技二次开发的INAV源码,其大体步骤基本是一样的,只是部分指令有所区别!如果要编译INAV官方的固件,请参考此页面的内容:《INAV官方固件编译说明》!
物唯科技INAV固件源码仓库如下:
https://github.com/WWKJ-FX/ww-inav/tree/ww-maintenance-9.x

1.2 下载INAV源码
git clone https://github.com/WWKJ-FX/ww-inav.git
1.3 切换到指定版本
cd ww-inav/
git checkout ww-maintenance-9.x注:截至到2026.4.20,INAV最新的固件版本已为9.0.1!

1.4 创建构建目录
在 ww-inav 根目录下创建一个 build 文件夹,并进入build 文件夹。
mkdir build
cd build1.5安装Ruby工具
在 ww-inav/build 目录下,安装,执行以下命令
sudo apt update
sudo apt-get upgrade -y
sudo apt install ruby ruby-dev rubygems -y
ruby -v #查看是否安装完成1.7 安装camake工具
在ww-inav/build 目录下,安装,执行以下命令
sudo apt install cmake -y1.8 配置项目
使用 CMake 配置 INAV 项目的构建环境。无需手动准备工具链,CMake 会自动下载并配置所需工具。
在 ww-inav/build 目录下,执行以下命令:
cmake ..这个过程会非常漫长!大家要耐心等待,等待download 100% complete

有些朋友的网络可能不太好,在下载过程中由于网络波动卡顿,可能会报错出现一些问题。
如果发生了报错只能先清除之前下载的所有东西,再重新下载了,执行以下命令:
cd ~
cd ww-inav/
rm -rf downloads/arm-gnu-toolchain-13.2.rel1-x86_64-arm-none-eabi.tar.xz
cd ~
cd ww-inav/build/
rm -rf * # 清除构建缓存清理完缓存文件后,再重新执行:
cmake ..最后执行成功的界面,如下图所示:

1.9 编译固件
使用 make 编译 INAV 固件,指定编译 WFG100 飞控的固件!
make WFG100 这将开始编译并生成适用于 WFG100 飞控的INAV固件文件。
注:
如果用户要编译的是WFG120飞控的固件,则输入命令:make WFG100
如果用户要编译的是WFG001A飞控的固件,则输入命令:make WFG001A
如果用户要编译的是WFG001B飞控的固件,则输入命令:make WFG001B
1.10 查找生成的.elf固件
以为WFG100为例,在固件编译完成后,生成的固件文件 WFG100.elf 会位于 ww-inav/build/bin 目录下。
如下图所示:

注:.elf的固件必须要stm32cubeprogrammer工具才能烧录!
1.11 通过.elf固件,生成.hex固件。
有些朋友可能需要.hex固件,通过地面站进行烧录,因此可以执行以下命令,通过已有的.elf,再生成.hex固件!
下面以WFG100.elf格式的固件为例,将其转换为WFG100.hex格式的固件!如果用户是其他飞控的固件,请修改对应的固件名称即可!
cd ~
cd ww-inav
sudo apt install binutils-arm-none-eabi
arm-none-eabi-objcopy -O ihex build/bin/WFG100.elf build/bin/WFG100.hex执行完上面 命令后,到ww-inav/build/bin 目录下,就会看到.hex 和.elf的 固件都生成了 !

其他注意事项
1)编译时间:首次编译可能需要较长时间,尤其是并行编译时,确保计算机性能良好。
2)问题排查:如果编译过程中出现问题,请检查补丁是否正确应用,或者 CMake 配置是否有误。
3)网速问题:执行cmake ..命令时,可能需要等待很久,这跟网速有关!电脑最好可以魔法出去!